There appears to be a problem in 6.0.15118.10591 with the objects we get from RhinoCommon’s GetSubObjects method; here is a quick repro in python:
from Rhino import *
def stackoverflow():
for o in RhinoDoc.ActiveDoc.Objects.GetSelectedObjects(False, False):
for s in o.GetSubObjects():
# The Attributes exist, and we can touch them:
print('attrs: %s' % s.Attributes.GetType().Name)
# But, calls like these will cause a stack overflow:
#print('id: %s' % s.Id)
#print('type: %s' % s.ObjectType)
#print('str: %s' % s.Attributes.GetUserString('k'))
# In the VS debugger, you can reproduce it just by hovering over
# the sub-object and trying to look at its properties. The stack
# looks like this:
#
# ObjectAttributes.get_ObjectId()+0x26
# ObjectAttributes._InternalGetConstPointer()+0x136
# ObjectAttributes.get_ObjectId()+0x26
# ObjectAttributes._InternalGetConstPointer()+0x136
if __name__ == '__main__':
stackoverflow()
Checking in V5, rather than an overflow, I get an error printed in the python output window: Message: This object cannot be modified because it is controlled by a document. I have been testing with a simple extrusion, and the same extrusion exploded and joined.