RhinoCommon API
GroupTableAdd Method (IEnumerableGuid) |
Adds a new group to the group table with a set of objects.
Namespace: Rhino.DocObjects.Tables
Assembly: RhinoCommon (in RhinoCommon.dll)

public int Add( IEnumerable<Guid> objectIds )
Public Function Add ( objectIds As IEnumerable(Of Guid) ) As Integer
Parameters
- objectIds
- Type: System.Collections.GenericIEnumerableGuid
An array, a list or any enumerable set of object IDs.
Return Value
Type: Int32>=0 index of new group.
-1 group not added because a group with that name already exists.

In some cases, calling Add() can cause the group indices to become invalid.

using System; using System.Collections.Generic; partial class Examples { public static Rhino.Commands.Result AddObjectsToGroup(Rhino.RhinoDoc doc) { Rhino.Input.Custom.GetObject go = new Rhino.Input.Custom.GetObject(); go.SetCommandPrompt("Select objects to group"); go.GroupSelect = true; go.GetMultiple(1, 0); if (go.CommandResult() != Rhino.Commands.Result.Success) return go.CommandResult(); List<Guid> ids = new List<Guid>(); for (int i = 0; i < go.ObjectCount; i++) { ids.Add(go.Object(i).ObjectId); } int index = doc.Groups.Add(ids); doc.Views.Redraw(); if (index >= 0) return Rhino.Commands.Result.Success; return Rhino.Commands.Result.Failure; } }
Imports System.Collections.Generic Partial Class Examples Public Shared Function AddObjectsToGroup(ByVal doc As Rhino.RhinoDoc) As Rhino.Commands.Result Dim go As New Rhino.Input.Custom.GetObject() go.SetCommandPrompt("Select objects to group") go.GroupSelect = True go.GetMultiple(1, 0) If go.CommandResult() <> Rhino.Commands.Result.Success Then Return go.CommandResult() End If Dim ids As New List(Of Guid)() For i As Integer = 0 To go.ObjectCount - 1 ids.Add(go.[Object](i).ObjectId) Next Dim index As Integer = doc.Groups.Add(ids) doc.Views.Redraw() If index >= 0 Then Return Rhino.Commands.Result.Success End If Return Rhino.Commands.Result.Failure End Function End Class
import Rhino import scriptcontext def AddObjectsToGroup(): go = Rhino.Input.Custom.GetObject() go.SetCommandPrompt("Select objects to group") go.GroupSelect = True go.GetMultiple(1, 0) if go.CommandResult()!=Rhino.Commands.Result.Success: return go.CommandResult() ids = [go.Object(i).ObjectId for i in range(go.ObjectCount)] index = scriptcontext.doc.Groups.Add(ids) scriptcontext.doc.Views.Redraw() if index>=0: return Rhino.Commands.Result.Success return Rhino.Commands.Result.Failure if __name__ == "__main__": AddObjectsToGroup()

Rhino for Mac
Supported in: 5.4Rhino for Windows
Supported in: 6.8