RhinoCommon API
ObjectAttributesHasDisplayModeOverride Method |
Determines if an object has a display mode override for a given viewport.
Namespace: Rhino.DocObjects
Assembly: RhinoCommon (in RhinoCommon.dll)

public bool HasDisplayModeOverride( Guid viewportId )
Public Function HasDisplayModeOverride ( viewportId As Guid ) As Boolean
Parameters
- viewportId
- Type: SystemGuid
Id of a Rhino Viewport.
Return Value
Type: Booleantrue if the object has a display mode override for the viewport; otherwise, false.

using System; using Rhino; using Rhino.Commands; using Rhino.DocObjects; partial class Examples { public static Rhino.Commands.Result ObjectDisplayMode(Rhino.RhinoDoc doc) { const ObjectType filter = ObjectType.Mesh | ObjectType.Brep; ObjRef objref; Result rc = Rhino.Input.RhinoGet.GetOneObject("Select mesh or surface", true, filter, out objref); if (rc != Rhino.Commands.Result.Success) return rc; Guid viewportId = doc.Views.ActiveView.ActiveViewportID; ObjectAttributes attr = objref.Object().Attributes; if (attr.HasDisplayModeOverride(viewportId)) { RhinoApp.WriteLine("Removing display mode override from object"); attr.RemoveDisplayModeOverride(viewportId); } else { Rhino.Display.DisplayModeDescription[] modes = Rhino.Display.DisplayModeDescription.GetDisplayModes(); Rhino.Display.DisplayModeDescription mode = null; if (modes.Length == 1) mode = modes[0]; else { Rhino.Input.Custom.GetOption go = new Rhino.Input.Custom.GetOption(); go.SetCommandPrompt("Select display mode"); string[] str_modes = new string[modes.Length]; for (int i = 0; i < modes.Length; i++) str_modes[i] = modes[i].EnglishName.Replace(" ", "").Replace("-", ""); go.AddOptionList("DisplayMode", str_modes, 0); if (go.Get() == Rhino.Input.GetResult.Option) mode = modes[go.Option().CurrentListOptionIndex]; } if (mode == null) return Rhino.Commands.Result.Cancel; attr.SetDisplayModeOverride(mode, viewportId); } doc.Objects.ModifyAttributes(objref, attr, false); doc.Views.Redraw(); return Rhino.Commands.Result.Success; } }
Imports Rhino Imports Rhino.DocObjects Partial Class Examples Public Shared Function ObjectDisplayMode(ByVal doc As Rhino.RhinoDoc) As Rhino.Commands.Result Dim rc As Rhino.Commands.Result Const filter As ObjectType = ObjectType.Mesh Or ObjectType.Brep Dim objref As ObjRef = Nothing rc = Rhino.Input.RhinoGet.GetOneObject("Select mesh or surface", True, filter, objref) If rc <> Rhino.Commands.Result.Success Then Return rc End If Dim viewportId As Guid = doc.Views.ActiveView.ActiveViewportID Dim attr As ObjectAttributes = objref.[Object]().Attributes If attr.HasDisplayModeOverride(viewportId) Then RhinoApp.WriteLine("Removing display mode override from object") attr.RemoveDisplayModeOverride(viewportId) Else Dim modes As Rhino.Display.DisplayModeDescription() = Rhino.Display.DisplayModeDescription.GetDisplayModes() Dim mode As Rhino.Display.DisplayModeDescription = Nothing If modes.Length = 1 Then mode = modes(0) Else Dim go As New Rhino.Input.Custom.GetOption() go.SetCommandPrompt("Select display mode") Dim str_modes As String() = New String(modes.Length - 1) {} For i As Integer = 0 To modes.Length - 1 str_modes(i) = modes(i).EnglishName.Replace(" ", "").Replace("-", "") Next go.AddOptionList("DisplayMode", str_modes, 0) If go.[Get]() = Rhino.Input.GetResult.[Option] Then mode = modes(go.[Option]().CurrentListOptionIndex) End If End If If mode Is Nothing Then Return Rhino.Commands.Result.Cancel End If attr.SetDisplayModeOverride(mode, viewportId) End If doc.Objects.ModifyAttributes(objref, attr, False) doc.Views.Redraw() Return Rhino.Commands.Result.Success End Function End Class
import Rhino import scriptcontext def ObjectDisplayMode(): filter = Rhino.DocObjects.ObjectType.Brep | Rhino.DocObjects.ObjectType.Mesh rc, objref = Rhino.Input.RhinoGet.GetOneObject("Select mesh or surface", True, filter) if rc != Rhino.Commands.Result.Success: return rc; viewportId = scriptcontext.doc.Views.ActiveView.ActiveViewportID attr = objref.Object().Attributes if attr.HasDisplayModeOverride(viewportId): print "Removing display mode override from object" attr.RemoveDisplayModeOverride(viewportId) else: modes = Rhino.Display.DisplayModeDescription.GetDisplayModes() mode = None if len(modes) == 1: mode = modes[0] else: 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, 0) if go.Get()==Rhino.Input.GetResult.Option: mode = modes[go.Option().CurrentListOptionIndex] if not mode: return Rhino.Commands.Result.Cancel attr.SetDisplayModeOverride(mode, viewportId) scriptcontext.doc.Objects.ModifyAttributes(objref, attr, False) scriptcontext.doc.Views.Redraw() if __name__=="__main__": ObjectDisplayMode()

Rhino for Mac
Supported in: 5.4Rhino for Windows
Supported in: 6.8