Hello
What is the event used when an object changes its layer?
Hi @anon39580149,
you might try ModifyObjectAttributes event and compare the object’s layer index, eg:
import Rhino
import scriptcontext
def MyLayerChangeEvent(sender, e):
if e.OldAttributes.LayerIndex != e.NewAttributes.LayerIndex:
layer = scriptcontext.doc.Layers[e.NewAttributes.LayerIndex]
print "{} changed layer to: {}".format(e.RhinoObject, layer.FullPath)
def MyToggleEvent():
my_event_name = "MyLayerChangeEvent"
if scriptcontext.sticky.has_key(my_event_name):
print "removing event"
func = scriptcontext.sticky[my_event_name]
scriptcontext.doc.ModifyObjectAttributes -= func
scriptcontext.sticky.Remove(my_event_name)
else:
print "adding event"
func = eval(my_event_name)
scriptcontext.sticky[my_event_name] = func
scriptcontext.doc.ModifyObjectAttributes += func
MyToggleEvent()
_
c.
2 Likes
Thank you @clement