Is there a reason why objects inside a group are reversed ?
private void RunScript(object x, object y, object z, object u, ref object A)
{
string[] names = Rhino.RhinoDoc.ActiveDoc.Groups.GroupNames(true);
DataTree<GeometryBase> dt = new DataTree<GeometryBase>();
foreach(var name in names){
if (name.Contains("nest_geo_")){
Rhino.DocObjects.Group g = Rhino.RhinoDoc.ActiveDoc.Groups.FindName(name);
Rhino.DocObjects.RhinoObject[] objects = Rhino.RhinoDoc.ActiveDoc.Groups.GroupMembers(g.Index);
//reverse here
objects = objects.Reverse().ToArray();
var path = new GH_Path(dt.Paths.Count);
foreach(var o in objects)
dt.Add(o.Geometry, path);
}
}
A = dt;
}
def get_geometry_dict_key(geom, key):
"""
retrieve stored objects from geometry
Args:
geom (Rhino.GeometryBase) : geometry t get data from
key (str) : key to read from geom
Returns:
object stored as key on geometry
or None when key not present
retrieving keys:
# for d_key in udict:
if d_key.Key == get_key:
result.append(d_key.Value)
# removing keys: udict.Remove(key)
"""
for KV in geom.UserDictionary:
if KV.Key == key:
# better to return (shallow) duplicate to prevent unintended altering of stored geometry or values
return KV.Value
def set_geometry_dict(container_geom, store_dict):
"""
store key-item pairs on container geometry
Args:
container_geom (Rhino.GeometryBase) : key,value pairs to store on geometry
store_dict (dict) : key,value pairs to store onto container_geom
Returns:
None
"""
udict = container_geom.UserDictionary
for key, value in store_dict.items():
# better to store (shallow) duplicate to prevent unintended altering of input geometry values
udict.Set(key, value)