algorithmic modeling for Rhino
Hi everyone -
I'm looking to generate a list of all object GUIDs in a 3dm file. The following script works for any object that's visible in my file:
Dim guid_set As New List(Of Guid)
Dim layer_idx_set As New List(Of Int32)
Dim obj_type_set As New List(Of String)
Dim obj_set As Rhino.DocObjects.RhinoObject
For Each obj_set In doc.Objects
guid_set.Add(obj_set.Id)
layer_idx_set.Add(obj_set.Attributes.LayerIndex)
obj_type_set.Add(obj_set.ObjectType.ToString)
Next
However, I'm looking to create a list of ALL the objects in my file for regular reference, not just the ones currently visible and on active layers. The idea is to dynamically reference objects in GH without necessarily having them be visible in rhino. Any help as to where I can access a list of all rhino objects in a 3dm file?
thanks!
Dave
Tags:
Hilarious. After looking for the last hour, just after posting I find in the SDK the right help:
Dim guid_set As New List(Of Guid)
Dim layer_idx_set As New List(Of Int32)
Dim obj_type_set As New List(Of String)
Dim settings As New Rhino.DocObjects.ObjectEnumeratorSettings()
settings.HiddenObjects = True
For Each obj_set As Rhino.DocObjects.RhinoObject In doc.Objects.GetObjectList(settings)
guid_set.Add(obj_set.Id)
layer_idx_set.Add(obj_set.Attributes.LayerIndex)
obj_type_set.Add(obj_set.ObjectType.ToString)
Next
guid_out = guid_set
layer_idx_out = layer_idx_set
obj_type_out = obj_type_set
All set here.
Hi Dave,
I agree that Objects should include hidden objects in addition to normal and locked objects. But it doesn't, so you'll need to use some EnumeratorSettings to specifically define the collection of objects you're interested in:
Dim enumerator As New Rhino.DocObjects.ObjectEnumeratorSettings ()
enumerator.ActiveObjects = True
enumerator.LockedObjects = True
enumerator.HiddenObjects = True
enumerator.NormalObjects = True
enumerator.DeletedObjects = False
enumerator.IncludeGrips = False
enumerator.IncludePhantoms = False
Dim ids As New List(Of Guid)
For Each obj As Rhino.DocObjects.RhinoObject in doc.Objects.GetObjectList(enumerator)
ids.Add(obj.Id)
Next
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by