RhinoCommon API
ObjectAttributesColorSource Property |
The color used to display an object is specified in one of three ways.
If ColorSource is ON::color_from_layer, then the object's layer ON_Layer::Color() is used.
If ColorSource is ON::color_from_object, then value of m_color is used.
If ColorSource is ON::color_from_material, then the diffuse color of the object's
render material is used. See ON_3dmObjectAttributes::MaterialSource() to
determine where to get the definition of the object's render material.
Namespace: Rhino.DocObjects
Assembly: RhinoCommon (in RhinoCommon.dll)

public ObjectColorSource ColorSource { get; set; }
Public Property ColorSource As ObjectColorSource Get Set
Property Value
Type: ObjectColorSource
using System.Drawing; using Rhino; using Rhino.DocObjects; using Rhino.Geometry; using Rhino.Input; using Rhino.Commands; namespace examples_cs { public class ModifyObjectColorCommand : Command { public override string EnglishName { get { return "csModifyObjectColor"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select object", false, ObjectType.AnyObject, out obj_ref); if (rc != Result.Success) return rc; var rhino_object = obj_ref.Object(); var color = rhino_object.Attributes.ObjectColor; bool b = Rhino.UI.Dialogs.ShowColorDialog(ref color); if (!b) return Result.Cancel; rhino_object.Attributes.ObjectColor = color; rhino_object.Attributes.ColorSource = ObjectColorSource.ColorFromObject; rhino_object.CommitChanges(); // an object's color attributes can also be specified // when the object is added to Rhino var sphere = new Sphere(Point3d.Origin, 5.0); var attributes = new ObjectAttributes(); attributes.ObjectColor = Color.CadetBlue; attributes.ColorSource = ObjectColorSource.ColorFromObject; doc.Objects.AddSphere(sphere, attributes); doc.Views.Redraw(); return Result.Success; } } }
Imports System.Drawing Imports Rhino Imports Rhino.DocObjects Imports Rhino.Geometry Imports Rhino.Input Imports Rhino.Commands Namespace examples_vb Public Class ModifyObjectColorCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbModifyObjectColor" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim obj_ref As ObjRef = Nothing Dim rc = RhinoGet.GetOneObject("Select object", False, ObjectType.AnyObject, obj_ref) If rc <> Result.Success Then Return rc End If Dim rhino_object = obj_ref.[Object]() Dim color__1 = rhino_object.Attributes.ObjectColor Dim b As Boolean = Rhino.UI.Dialogs.ShowColorDialog(color__1) If Not b Then Return Result.Cancel End If rhino_object.Attributes.ObjectColor = color__1 rhino_object.Attributes.ColorSource = ObjectColorSource.ColorFromObject rhino_object.CommitChanges() ' an object's color attributes can also be specified ' when the object is added to Rhino Dim sphere = New Sphere(Point3d.Origin, 5.0) Dim attributes = New ObjectAttributes() attributes.ObjectColor = Color.CadetBlue attributes.ColorSource = ObjectColorSource.ColorFromObject doc.Objects.AddSphere(sphere, attributes) doc.Views.Redraw() Return Result.Success End Function End Class End Namespace
from System.Drawing import * from Rhino import * from Rhino.DocObjects import * from Rhino.Geometry import * from Rhino.Input import * from Rhino.Commands import * from Rhino.UI.Dialogs import ShowColorDialog from scriptcontext import doc def RunCommand(): rc, obj_ref = RhinoGet.GetOneObject("Select object", False, ObjectType.AnyObject) if rc <> Result.Success: return rc rhino_object = obj_ref.Object() color = rhino_object.Attributes.ObjectColor b, color = ShowColorDialog(color) if not b: return Result.Cancel rhino_object.Attributes.ObjectColor = color rhino_object.Attributes.ColorSource = ObjectColorSource.ColorFromObject rhino_object.CommitChanges() # an object's color attributes can also be specified # when the object is added to Rhino sphere = Sphere(Point3d.Origin, 5.0) attributes = ObjectAttributes() attributes.ObjectColor = Color.CadetBlue attributes.ColorSource = ObjectColorSource.ColorFromObject doc.Objects.AddSphere(sphere, attributes) doc.Views.Redraw() return Result.Success if __name__ == "__main__": RunCommand()

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