Find Objects by Name

Demonstrates how to find objects by their name or label.

partial class Examples
{
  public static Rhino.Commands.Result FindObjectsByName(Rhino.RhinoDoc doc)
  {
    const string name = "abc";
    Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings();
    settings.NameFilter = name;
    System.Collections.Generic.List<Guid> ids = new System.Collections.Generic.List<Guid>();
    foreach (Rhino.DocObjects.RhinoObject rhObj in doc.Objects.GetObjectList(settings))
      ids.Add(rhObj.Id);

    if (ids.Count == 0)
    {
      Rhino.RhinoApp.WriteLine("No objects with the name " + name);
      return Rhino.Commands.Result.Failure;
    }

    Rhino.RhinoApp.WriteLine("Found {0} objects", ids.Count);
    foreach (Guid id in ids)
      Rhino.RhinoApp.WriteLine("  {0}", id);

    return Rhino.Commands.Result.Success;
  }
}
Partial Friend Class Examples
  Public Shared Function FindObjectsByName(ByVal doc As Rhino.RhinoDoc) As Rhino.Commands.Result
	Const name As String = "abc"
	Dim settings As New Rhino.DocObjects.ObjectEnumeratorSettings()
	settings.NameFilter = name
	Dim ids As New System.Collections.Generic.List(Of Guid)()
	For Each rhObj As Rhino.DocObjects.RhinoObject In doc.Objects.GetObjectList(settings)
	  ids.Add(rhObj.Id)
	Next rhObj

	If ids.Count = 0 Then
	  Rhino.RhinoApp.WriteLine("No objects with the name " & name)
	  Return Rhino.Commands.Result.Failure
	End If

	Rhino.RhinoApp.WriteLine("Found {0} objects", ids.Count)
	For Each id As Guid In ids
	  Rhino.RhinoApp.WriteLine("  {0}", id)
	Next id

	Return Rhino.Commands.Result.Success
  End Function
End Class
import Rhino
import scriptcontext
import System.Guid

def FindObjectsByName():
    name = "abc"
    settings = Rhino.DocObjects.ObjectEnumeratorSettings()
    settings.NameFilter = name
    ids = [rhobj.Id for rhobj in scriptcontext.doc.Objects.GetObjectList(settings)]
    if not ids:
        print "No objects with the name", name
        return Rhino.Commands.Result.Failure
    else:
        print "Found", len(ids), "objects"
        for id in ids: print "  ", id
    return Rhino.Commands.Result.Success

if __name__ == "__main__":
    FindObjectsByName()