I’m trying to make nested groups within a group, but to do so I’d need to get the nesting group Guids in order to put them in the overarching group. How can I accomplish my goal?
Hi Ibrahim,
Rhino does not support nested groups. However, objects can belong to more than one group.
Does this help?
– Dale
Hello Dale,
This is interesting, I didn’t know that. Using this example, is this the process I need to get a nested group feel?
- Set List of Points 1 to Group A
- Set List of Points 2 to Group B
- Set both Lists of Points (1 and 2) to Group C
Thanks,
Ibrahim
How about this:
protected override Result RunCommand(RhinoDoc doc, RunMode mode)
{
var go0 = new GetObject();
go0.SetCommandPrompt("Select first set of points");
go0.GeometryFilter = ObjectType.Point;
go0.SubObjectSelect = false;
go0.GetMultiple(1, 0);
if (go0.CommandResult() != Result.Success)
return go0.CommandResult();
var go1 = new GetObject();
go1.SetCommandPrompt("Select second set of points");
go1.GeometryFilter = ObjectType.Point;
go1.SubObjectSelect = false;
go1.EnablePreSelect(false, true);
go1.DeselectAllBeforePostSelect = false;
go1.GetMultiple(1, 0);
if (go1.CommandResult() != Result.Success)
return go1.CommandResult();
// Group "a"
var points0 = new List<Guid>(go0.ObjectCount);
foreach (var objref in go0.Objects())
points0.Add(objref.ObjectId);
var group_index0 = doc.Groups.Add(points0);
// Group "b"
var points1 = new List<Guid>(go1.ObjectCount);
foreach (var objref in go1.Objects())
points1.Add(objref.ObjectId);
var group_index1 = doc.Groups.Add(points1);
// Group "c"
var points2 = new List<Guid>(points0.Count + points1.Count);
points2.AddRange(points0);
points2.AddRange(points1);
var group_index2 = doc.Groups.Add(points2);
return Result.Success;
}
Hello Dale,
I’m sorry for such a late response, I only got to fixing it until now. This worked like a charm, thank you very much!
-Ibrahim