This method has an overload -
either call it with a specific viewport ID as argument to remove a custom object display mode in the supplied viewport - RemoveDisplayModeOverride(viewportID)
or,
without an argument to (supposedly) remove any custom object display mode set in ALL viewports - RemoveDisplayModeOverride()
I cannot get the second to work… Must be doing something wrong.
This works here:
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
def RemObjDisplayModeAllViewports():
msg="Select objects to reset display mode to default"
objIDs=rs.GetObjects(msg,8+16+32,preselect=True)
if not objIDs: return
vIDs=[view.ActiveViewportID for view in sc.doc.Views]
for vID in vIDs:
for objID in objIDs:
objRef=sc.doc.Objects.Find(objID)
attr = objRef.Attributes
attr.RemoveDisplayModeOverride(vID)
sc.doc.Objects.ModifyAttributes(objID, attr, False)
sc.doc.Views.Redraw()
RemObjDisplayModeAllViewports()
This doesn’t:
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
def RemObjDisplayModeAllViewports():
msg="Select objects to reset display mode to default"
objIDs=rs.GetObjects(msg,8+16+32,preselect=True)
if not objIDs: return
for objID in objIDs:
objRef=sc.doc.Objects.Find(objID)
attr = objRef.Attributes
attr.RemoveDisplayModeOverride()
sc.doc.Objects.ModifyAttributes(objID, attr, False)
sc.doc.Views.Redraw()
RemObjDisplayModeAllViewports()
What did I miss here?
Thanks, --Mitch