Get the Next Object of doc.SearchObject() Method?
-
Hi,
Is there a way to get the "next" object of
doc.SearchObject()
method.
As I understand, if there are two objects namecube
. The method will retrieve firstcube
in the outliner.
Is there a way to get the nextcube
object?My use case is this:
- Check if there are objects with the same name
- If there are, throw an error. Every object must have a unique name.
I guess I can do this with the traversing objects hierarchy code provided by the plugincafe.
Storing each object name and comparing them with each other.But it would be nice if I can just do this with
doc.SearchObject
so I can shorten the logic.Regards,
Ben -
Hi unfortunately there is nothing built-in so you have to iterate over the scene.
import c4d def HierarchyIterator(obj): while obj: yield obj for opChild in HierarchyIterator(obj.GetDown()): yield opChild obj = obj.GetNext() def main(): names = set() for obj in HierarchyIterator(doc.GetFirstObject()): objName = obj.GetName() if objName not in names: names.add(objName) else: print("{0} Is already present".format(objName)) if __name__=='__main__': main()
Cheers,
Maxime. -
Ah gotcha. Thanks for the confirmation and the sample code.