Hi,
I am using GetObjectList
to collect Rhino Objects with ObjectEnumeratorSettings
.
I need to collect objects with few names.
Currently I am using NameFilter
property for passing one name I am looking for.
That means the following: if i have 10 names to look - I need to run GetObjectList
10 times.
Is it possible to add option to use array of names for NameFilter
property, so that GetObjectList is executed only once?
Thanks,
Dmitriy
That would be nice, also to use an array of layer indices. To look up multiple names i used this as a replacement, it requires only 1 run of GetObjectList
:
import Rhino
import scriptcontext
def FindObjectsByNames(search_names):
settings = Rhino.DocObjects.ObjectEnumeratorSettings()
settings.HiddenObjects = False
settings.DeletedObjects = False
rc = []
for obj in scriptcontext.doc.Objects.GetObjectList(settings):
if obj.Name in search_names:
rc.append(obj)
return rc
if __name__ == "__main__":
search_names = ["A","B","C"]
rc = FindObjectsByNames(search_names)
print "Found", len(rc), "objects"
note that it is a case sensitive search by names.
_
c.