Object Iterator

Demonstrates how to iterate (or enumerate) through Rhino's geometry table.

partial class Examples
{
  public static Result ObjectIterator(RhinoDoc doc)
  {
    var object_enumerator_settings = new ObjectEnumeratorSettings();
    object_enumerator_settings.IncludeLights = true;
    object_enumerator_settings.IncludeGrips = false;
    var rhino_objects = doc.Objects.GetObjectList(object_enumerator_settings);

    int count = 0;
    foreach (var rhino_object in rhino_objects)
    {
      if (rhino_object.IsSelectable() && rhino_object.IsSelected(false) == 0)
      {
        rhino_object.Select(true);
        count++;
      }
    }
    if (count > 0)
    {
      doc.Views.Redraw();
      RhinoApp.WriteLine("{0} object{1} selected", count,
        count == 1 ? "" : "s");
    }
    return Result.Success;
  }
}
Partial Friend Class Examples
  Public Shared Function ObjectIterator(ByVal doc As RhinoDoc) As Result
	Dim object_enumerator_settings = New ObjectEnumeratorSettings()
	object_enumerator_settings.IncludeLights = True
	object_enumerator_settings.IncludeGrips = False
	Dim rhino_objects = doc.Objects.GetObjectList(object_enumerator_settings)

	Dim count As Integer = 0
	For Each rhino_object In rhino_objects
	  If rhino_object.IsSelectable() AndAlso rhino_object.IsSelected(False) = 0 Then
		rhino_object.Select(True)
		count += 1
	  End If
	Next rhino_object
	If count > 0 Then
	  doc.Views.Redraw()
	  RhinoApp.WriteLine("{0} object{1} selected", count,If(count = 1, "", "s"))
	End If
	Return Result.Success
  End Function
End Class
from Rhino import *
from Rhino.DocObjects import *
from Rhino.Commands import *
from scriptcontext import doc

def RunCommand():
  object_enumerator_settings = ObjectEnumeratorSettings()
  object_enumerator_settings.IncludeLights = True
  object_enumerator_settings.IncludeGrips = False
  rhino_objects = doc.Objects.GetObjectList(object_enumerator_settings)

  count = 0
  for rhino_object in rhino_objects:
    if rhino_object.IsSelectable() and rhino_object.IsSelected(False) == 0:
      rhino_object.Select(True)
      count += 1;

  if count > 0:
    doc.Views.Redraw()
    RhinoApp.WriteLine("{0} object{1} selected", count,
      "" if count == 1 else "s")

  return Result.Success

if __name__ == "__main__":
  RunCommand()