RhinoCommon ObjectAttributes.RemoveDisplayModeOverride method

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

You don’t miss anything, we did. I’ve fixed this in the WIP.

http://mcneel.myjetbrains.com/youtrack/issue/RH-31242