Description
Set the display mode of all detail view (on a layout). Useful to quickly set all detail views to “Hidden” display mode when using VisualArq.
See also
SetDetailDisplayModeAllLayouts script.
Author and license
Script by MLAV.LAND, licensed under the GNU GPL 3 License.
Code
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
def SetDetailDisplayModes():
modes = Rhino.Display.DisplayModeDescription.GetDisplayModes()
mode = None
modeNum = 0
if sc.sticky.has_key('DETAIL_MODE'):
modeNum = sc.sticky['DETAIL_MODE']
if len(modes) == 1:
mode = modes[0]
else:
mode = modes[modeNum]
go = Rhino.Input.Custom.GetOption()
go.SetCommandPrompt("Select display mode")
str_modes = []
for m in modes:
s = m.EnglishName.replace(" ","").replace("-","")
str_modes.append(s)
go.AddOptionList("DisplayMode", str_modes, modeNum)
if go.Get()==Rhino.Input.GetResult.Option:
mode = modes[go.Option().CurrentListOptionIndex]
modeNum = list(modes).index(mode)
sc.sticky['DETAIL_MODE'] = modeNum
if not mode: return
view = sc.doc.Views.ActiveView
if isinstance(view, Rhino.Display.RhinoPageView):
dets = view.GetDetailViews()
if not dets: return
for det in dets:
view.SetActiveDetail(det.Id)
rs.ViewDisplayMode( mode = mode.EnglishName)
#det.Viewport.DisplayMode = mode
pass
view.SetPageAsActive()
sc.doc.Views.Redraw()
pass
print("Display mode applied to layout :)")
if __name__ == '__main__':SetDetailDisplayModes()