Properties

Attributes

#Since v5.0
public virtual ObjectAttributes Attributes { get; set; }
Gets or sets the object attributes.

ComponentStatus

public virtual ComponentStatus ComponentStatus { get; set; }
Gets or sets the component status of the model component.
inherited fromModelComponent

ComponentType

#Since v6.0
public override ModelComponentType ComponentType { get; }

DeletedName

public string DeletedName { get; }
Gets the name of a component that is deleted.
inherited fromModelComponent

Disposed

public bool Disposed { get; }
Indicates if this object has been disposed or the document it originally belonged to has been disposed.
inherited fromCommonObject

Document

#Since v5.0
public RhinoDoc Document { get; }
Gets the document that owns this object.

EditPointGripsOn

#
public bool EditPointGripsOn { get; }
true when the grips this object has on are edit points, of either kind.
Remarks: The read-side companion of EnableEditPointGrips(). EnabledGripsId answers the same question for a plug-in's own kind, by comparing the id it registered.

EnabledGripsId

#
public Guid EnabledGripsId { get; }
Which kind of grips this object currently has on.
Remarks: Guid.Empty both for default grips and for no grips at all. GripsOn tells those two apart. Record it to replay a grip selection later: handing it back to EnableGrips(Guid) restores the same kind. From a grip, reach it as GripObject.Owner.EnabledGripsId.

Geometry

#Since v5.0
public virtual GeometryBase Geometry { get; }
Gets the underlying geometry for this object.

All rhino objects are composed of geometry and attributes.

GripsOn

#Since v5.0
public bool GripsOn { get; set; }
Gets or sets the activation state of object default editing grips.

GripsSelected

#Since v5.0
public bool GripsSelected { get; }
true if grips are turned on and at least one is selected.

GroupCount

#Since v5.0
public int GroupCount { get; }
Number of groups object belongs to.

HasDynamicTransform

#Since v5.0
public bool HasDynamicTransform { get; }
True if the object has a dynamic transformation

HasId

public bool HasId { get; }
Returns a value indicating whether the component has an ID.
inherited fromModelComponent

HasIndex

public bool HasIndex { get; }
Returns a value indicating whether the component has an Index.
inherited fromModelComponent

HasName

public bool HasName { get; }
Returns a value indicating whether the component has a Name.
inherited fromModelComponent

HasSubobjectMaterials

#Since v6.0
public bool HasSubobjectMaterials { get; }
Will be true if the object contains sub object meshes with materials that are different than the top level object.

HasUserData

public bool HasUserData { get; }
Gets true if this class has any custom information attached to it through UserData.
inherited fromCommonObject

Id

#Since v5.0
public override Guid Id { get; set; }
Every object has a Guid (globally unique identifier, also known as UUID, or universally unique identifier). The default value is Guid.Empty.

When an object is added to a model, the value is checked. If the value is Guid.Empty, a new Guid is created. If the value is not null but it is already used by another object in the model, a new Guid is created. If the value is not Guid.Empty and it is not used by another object in the model, then that value persists. When an object is updated, by a move for example, the value of ObjectId persists.

This value is the same as the one returned by this.Attributes.ObjectId.

IdIsLocked

public bool IdIsLocked { get; }
Returns a value indicating whether the component ID is already locked.
inherited fromModelComponent

Index

public virtual int Index { get; set; }
Gets or sets the model component index attribute.
inherited fromModelComponent
InvalidOperationExceptionWhen setting the Index failed. This usually happens because the instance Index is already locked.

IndexIsLocked

public bool IndexIsLocked { get; }
Returns a value indicating whether the component Index is already locked.
inherited fromModelComponent

InstanceDefinitionModelSerialNumber

#Since v6.12
[CLSCompliant(false)] public override uint InstanceDefinitionModelSerialNumber { get; }
When a component is in a model as part of the information required for a linked instance definition, this value identifies the linked instance definition reference model.
Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

IsComponentStatusLocked

public bool IsComponentStatusLocked { get; }
The component status itself can be locked. This returns an indication.
inherited fromModelComponent

IsDeletable

#Since v5.0
public bool IsDeletable { get; protected set; }
Some objects cannot be deleted, like grips on lights and annotation objects.

IsDeleted

#Since v5.0
public override bool IsDeleted { get; }
true if the object is deleted. Deleted objects are kept by the document for undo purposes. Call RhinoDoc.UndeleteObject to undelete an object.

IsDocumentControlled

public virtual bool IsDocumentControlled { get; }
If true this object may not be modified. Any properties or functions that attempt to modify this object when it is set to "IsReadOnly" will throw a NotSupportedException.
inherited fromCommonObject

IsHidden

#Since v5.0
public bool IsHidden { get; }
An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.

IsInstanceDefinitionGeometry

#Since v5.0
public bool IsInstanceDefinitionGeometry { get; }
true if the object is used as part of an instance definition.

IsLocked

#Since v5.0
public bool IsLocked { get; }
An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.

IsNormal

#Since v5.0
public bool IsNormal { get; }
An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.

IsPictureFrame

#Since v7.9
public bool IsPictureFrame { get; }
Returns true if the object is a picture frame. A picture frame object is an object that displays a texture map in all views.

IsReference

#Since v5.0
public override bool IsReference { get; }
Gets a value indicating if an object is a reference object. An object from a work session reference model is a reference object and cannot be modified. An object is a reference object if, and only if, it is on a reference layer.

IsSolid

#Since v7.6
public bool IsSolid { get; }
Returns true if object is a closed solid, otherwise false.

IsSystemComponent

public bool IsSystemComponent { get; }
True if this model component is a system constant.

An incomplete list of system constant model components is below:

  • ON_ModelComponent::Unset

  • ON_InstanceDefinition::Empty

  • ON_Linetype::Unset
  • ON_Linetype::Continuous
  • ON_Linetype::ByLayer
  • ON_Linetype::ByParent

  • ON_Layer::Unset
  • ON_Layer::Default

  • ON_TextStyle::Unset
  • ON_TextStyle::Default
  • ON_TextStyle::ByLayer
  • ON_TextStyle::ByParent

  • ON_DimStyle::Unset
  • ON_DimStyle::Default
  • ON_DimStyle::DefaultInchDecimal
  • ON_DimStyle::DefaultInchFractional
  • ON_DimStyle::DefaultFootInchArchitecture
  • ON_DimStyle::DefaultMillimeterSmall
  • ON_DimStyle::DefaultMillimeterLarge
  • ON_DimStyle::DefaultMillimeterArchitecture
inherited fromModelComponent

IsValid

public virtual bool IsValid { get; }
Tests an object to see if it is valid.
inherited fromCommonObject

ModelSerialNumber

[CLSCompliant(false)] public virtual uint ModelSerialNumber { get; }
A value identifying the model that manages this component.
inherited fromModelComponent
Remarks: If the component is being managed by a model, this value identifies the model. In Rhino, this value is the document runtime serial number. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

Name

#Since v5.0
public override string Name { get; set; }
Rhino objects have optional text names. More than one object in a model can have the same name and some objects may have no name.

NameIsLocked

public bool NameIsLocked { get; }
Returns a value indicating whether the component Name is already locked.
inherited fromModelComponent

NextRuntimeSerialNumber

#Since v5.0
[CLSCompliant(false)] public static uint NextRuntimeSerialNumber { get; }
Gets the runtime serial number that will be assigned to the next Rhino Object that is created.

ObjectType

#Since v5.0
[CLSCompliant(false)] public ObjectType ObjectType { get; }
Gets the Rhino-based object type.

ReferenceModelSerialNumber

#Since v6.12
[CLSCompliant(false)] public override uint ReferenceModelSerialNumber { get; }
When a component is in a model for reference, this value identifies the reference model.
Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is not saved in .3dm archives.

RenderMaterial

#Since v5.7
public RenderMaterial RenderMaterial { get; set; }
Gets the render material associated with this object or null if there is none. This does not pay attention to the material source and will not check parent objects or layers for a RenderMaterial.

RuntimeSerialNumber

#Since v5.0
[CLSCompliant(false)] public uint RuntimeSerialNumber { get; }
Gets the objects runtime serial number.

SubobjectMaterialComponents

#Since v6.0
public ComponentIndex[] SubobjectMaterialComponents { get; }

UsePreviewMesh

#Since v9.0
public bool UsePreviewMesh { get; }
True when the display should draw this object's preview mesh instead of its render or analysis mesh.
Remarks: Only meaningful while drawing: the meshing worker thread raises this for the objects it is previewing and it is false the rest of the time. A texture or false colour VisualAnalysisMode reads it from SetUpDisplayAttributes to decide whether to show mesh wires, which is what the built-in analysis modes do.

UserData

public UserDataList UserData { get; }
List of custom information that is attached to this class.
inherited fromCommonObject

UserDictionary

public ArchivableDictionary UserDictionary { get; }
Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.
inherited fromCommonObject

Visible

#Since v5.0
public bool Visible { get; }
Gets the object visibility.

WorksessionReferenceSerialNumber

#Since v6.3
[EditorBrowsable(EditorBrowsableState.Never)] [CLSCompliant(false)] public uint WorksessionReferenceSerialNumber { get; }
Obsolete - use ReferenceModelSerialNumber

Methods

ClearId

public void ClearId()
Resets the HasId property of the model component to false, if possible.
inherited fromModelComponent
InvalidOperationExceptionIf the ID is locked.

ClearIndex

public void ClearIndex()
Resets the HasIndex property of the model component to false, if possible.
inherited fromModelComponent
InvalidOperationExceptionIf the index is locked.

ClearName

public void ClearName()
Resets the HasName property of the model component to false, if possible.
inherited fromModelComponent
InvalidOperationExceptionIf the name is locked.

CommitChanges

#ExampleSince v5.0
public bool CommitChanges()
Moves changes made to this RhinoObject into the RhinoDoc.
true if changes were made.

ConstructConstObject

protected void ConstructConstObject(object parentObject, int subobjectIndex)
Assigns a parent object and a sub-object index to this.
inherited fromCommonObject
parentObject (object)The parent object.
subobjectIndex (int)The sub-object index.

CopyHistoryOnReplace

#Since v7.1
public bool CopyHistoryOnReplace()
Gets the setting of the CopyOnReplace field in this object's history
true if this object has history and the field is set false otherwise

CreateMeshes

#Since v5.0
public virtual int CreateMeshes(MeshType meshType, MeshingParameters parameters, bool ignoreCustomParameters)
Create meshes used to render and analyze surface and polysurface objects.
meshType (MeshType)type of meshes to create
parameters (MeshingParameters)in parameters that control the quality of the meshes that are created
ignoreCustomParameters (bool)Default should be false. Should the object ignore any custom meshing parameters on the object's attributes
number of meshes created

CreateSections

#Since v9.0
public GeometryBase[] CreateSections(Plane plane, string name, double tolerance, out ObjectAttributes[] objectAttributes)
Generate section curves by intersecting a plane with an object of type Brep, Extrusion, SubD ,Mesh or Block Instance.
plane (Plane)Intersecting plane.
name (string)Name for section of objects.
tolerance (double)The intersection tolerance. When in doubt, use the document's model absolute tolerance.
objectAttributes (out ObjectAttributes[])Object attributes, one for each returned geometry item.
Section geometry in the form of Breps, Extrusions, Meshes, and Curves if successful. An empty array if unsuccessful.

CreateSlices

#Since v9.0
public GeometryBase[] CreateSlices(Plane centerPlane, string name, double thickness, double tolerance, out ObjectAttributes[] objectAttributes)
Generate slices by intersecting a plane with an object of type Brep, Extrusion, SubD , Mesh, or Block Instance.
centerPlane (Plane)Intesecting plane.
name (string)Name for section of objects.
thickness (double)Thickness of the slice. If thickness is less than tolerance, a surface will be created instead of a solid slice.
tolerance (double)The intersection tolerance. When in doubt, use the document's model absolute tolerance.
objectAttributes (out ObjectAttributes[])Object attributes, one for each returned geometry item.
Slice geometry in the form of Breps, Extrusions, Meshes, and Curves if successful. An empty array if unsuccessful.

CustomRenderMeshesBoundingBox

#Since v8.0
public bool CustomRenderMeshesBoundingBox(MeshType mt, ViewportInfo vp, ref Flags flags, PlugIn plugin, DisplayPipelineAttributes attrs, out BoundingBox boundingBox)
Returns the bounding box of custom render primitives for this object .
mt (MeshType)The mesh type requested (render or analysis).
vp (ViewportInfo)The viewport being rendered
flags (ref RenderMeshProvider.Flags)See RenderMeshProvider.Flags. This is an in/out parameter: on return it also carries any status flags, so reset it before each call. See RenderMeshes(MeshType, ViewportInfo, List<InstanceObject>, RenderMeshProvider.Flags, PlugIn, DisplayPipelineAttributes) for how to wait for an asynchronous provider.
plugin (PlugIn)The requesting plug-in (typically the calling plugin)
attrs (DisplayPipelineAttributes)Display attributes for the caller - null if this is a full rendering.
boundingBox (out BoundingBox)The requested bounding box
True if the process was a success

DataCRC

[CLSCompliant(false)] public uint DataCRC(uint currentRemainder)
Increments the Cyclic Redundancy Check value by this instance.
inherited fromModelComponent
currentRemainder (uint)The current remainder value.
The updated remainder value.

DeleteHistoryRecord

#Since v9.0
public bool DeleteHistoryRecord()
For expert use only. Deletes existing history record
true if history record was purged

Description

#Since v6.0
public void Description(TextLog textLog)
Get a brief description of a object, including it's attributes and geometry.
textLog (TextLog)A text log for collecting the description.

DestroyMeshes

#Since v9.0
public virtual void DestroyMeshes(MeshType meshType)
Destroys cached meshes of type meshType
meshType (MeshType)type of meshes to create
number of meshes created

Dispose

public void Dispose()
Actively reclaims unmanaged resources that this instance uses.
inherited fromCommonObject

Dispose

protected virtual void Dispose(bool disposing)
For derived class implementers.

This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method.

You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.

Also, you must call the base virtual method within your overriding method.

inherited fromCommonObject
disposing (bool)true if the call comes from the Dispose() method; false if it comes from the Garbage Collector finalizer.

DuplicateGeometry

#ExampleSince v5.0
public GeometryBase DuplicateGeometry()
Constructs a deep (full) copy of the geometry.
A copy of the internal geometry.

EnableCustomGrips

#Since v5.0
public bool EnableCustomGrips(CustomObjectGrips customGrips)
Turns on/off the object's editing grips.
customGrips (CustomObjectGrips)The custom object grips.
true if the call succeeded. If you attempt to add custom grips to an object that does not support custom grips, then false is returned.

EnableEditPointGrips

#
public bool EnableEditPointGrips()
Turns on edit point grips, the ones the EditPtOn command turns on.
Remarks: Curves and SubDs carry separate kinds of edit point grips. This picks the one that suits the object, as EditPtOn does, so a caller does not have to. An object that is neither is left exactly as it was. For a curve or a SubD, what happens to grips already on is described by EnableGrips(Guid).
true if the object has edit point grips when this returns. false for an object that has none: anything that is not a curve or a SubD, a curve with more than 1000 edit points or too few control points to have any, an empty SubD, and the cases EnableGrips(Guid) returns false for.

EnableGrips

#Since v9.0
public bool EnableGrips(Guid gripsId)
Turns on grips of one particular kind, replacing grips of any other kind.
Remarks:

Grips that were on are put back when the requested kind cannot be made, so a false return leaves the object with the grips it had.

Except when the requested kind is already on, the grips are new objects afterwards and a GripObject held across this call is stale.

Grips this turns on are not subject to Automatic Points On. They stay on until something turns them off, as with PointsOn and EditPtOn.

gripsId (Guid)Id of a grips enabler registered with CustomObjectGrips.RegisterGripsEnabler(TurnOnGripsEventHandler, Type). Guid.Empty means no custom grips: the object's own default grips, which is what the PointsOn command turns on. For edit points call EnableEditPointGrips() rather than naming a kind here; curves and SubDs use different ones and it picks between them.
true if the object has grips of the requested kind when this returns. false if nothing is registered for gripsId, if the object has no grips of that kind (a polysurface has no default grips), or if the grips already on refused to turn off, which they do while they are being dragged.

EnableVisualAnalysisMode

#Since v5.0
public bool EnableVisualAnalysisMode(VisualAnalysisMode mode, bool enable)
Used to turn analysis modes on and off.
mode (VisualAnalysisMode)A visual analysis mode.
enable (bool)true if the mode should be activated; false otherwise.
true if this object supports the analysis mode.

EnsurePrivateCopy

public void EnsurePrivateCopy()
If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.
inherited fromCommonObject

FromRuntimeSerialNumber

#Since v6.0
[CLSCompliant(false)] public static RhinoObject FromRuntimeSerialNumber(uint serialNumber)
Get a Rhino object for a unique runtime serial number
serialNumber (uint)

GetActiveVisualAnalysisModes

#Since v5.0
public VisualAnalysisMode[] GetActiveVisualAnalysisModes()
Gets a list of currently enabled analysis modes for this object.
An array of visual analysis modes. The array can be empty, but not null.

GetBoundingBox

#
protected virtual BoundingBox GetBoundingBox(RhinoViewport viewport)
Called when Rhino wants the bounding box of this object. Viewpoert can be null. This is the default base class version that will go through to the C++ base class if it is called from the custom object
viewport (RhinoViewport)For objects like labels or lights, the viewport in which the bounding box should be calculated. Otherwise null.
The bounding box.

GetCustomRenderMeshParameter

#Since v6.0
[CLSCompliant(false)] public virtual IConvertible GetCustomRenderMeshParameter(Guid providerId, string parameterName)
Query the object for the value of a given named custom render mesh parameter.
providerId (Guid)Id of the custom render mesh provider
parameterName (string)Name of the parameter
IConvertible. Note that you can't directly cast from object, instead you have to use the Convert mechanism.

GetDynamicTransform

#Since v5.0
public bool GetDynamicTransform(out Transform transform)
While an object is being dynamically transformed (dragged, rotated, ...), the current transformation can be retrieved and used for creating dynamic display.
transform (out Transform)
True if the object is being edited and its transformation is available. False if the object is not being edited, in which case the identity transform is returned.

GetFillSurfaces

#Since v6.7
public static Brep[] GetFillSurfaces(RhinoObject rhinoObject, ClippingPlaneObject clippingPlaneObject)
Return list of fill surfaces if any for object and clipping plane.
rhinoObject (RhinoObject)Object to clip
clippingPlaneObject (ClippingPlaneObject)Clipping plane to use

GetFillSurfaces

#Since v6.7
public static Brep[] GetFillSurfaces(RhinoObject rhinoObject, IEnumerable<ClippingPlaneObject> clippingPlaneObjects, bool unclippedFills)
Return list of fill surfaces if any for object and clipping plane.
rhinoObject (RhinoObject)Object to clip
clippingPlaneObjects (IEnumerable<ClippingPlaneObject>)Enumeration of clipping plane objects
unclippedFills (bool)Use true to get fills that are not trimmed by all clipping planes
Array of Brep containing fills if there were any generated, trimmed if unclippedFills was false

GetFillSurfaces

#Since v6.7
public static Brep[] GetFillSurfaces(RhinoObject rhinoObject, IEnumerable<ClippingPlaneObject> clippingPlaneObjects)
Return list of fill surfaces if any for object and clipping plane. Fills are trimmed by clipping planes that did not generate them.
rhinoObject (RhinoObject)Object to clip
clippingPlaneObjects (IEnumerable<ClippingPlaneObject>)Enumeration of clipping plane objects
Array of Brep containing fully trimmed fills if there were any generated.

GetGrips

#Since v5.0
public GripObject[] GetGrips()
Returns grips for this object If grips are enabled. If grips are not enabled, returns null.
An array of grip objects; or null if there are no grips.

GetGroupList

#Since v5.0
public int[] GetGroupList()
Allocates an array of group indices of length GroupCount. If GroupCount is 0, then this method returns null.
An array of group indices, or null if GroupCount is 0.

GetHighlightedSubObjects

#Since v5.0
public ComponentIndex[] GetHighlightedSubObjects()
Gets a list of all highlighted sub-objects.
An array of all highlighted sub-objects; or null is there are none.

GetMaterial

#Since v5.0
public Material GetMaterial(bool frontMaterial)
Gets material that this object uses based on it's attributes and the document that the object is associated with. In the rare case that a document is not associated with this object, null will be returned.
frontMaterial (bool)If true, gets the material used to render the object's front side

GetMaterial

#Since v6.0
public Material GetMaterial(ComponentIndex componentIndex, Guid plugInId, ObjectAttributes attributes)
Get the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.
componentIndex (ComponentIndex)Returns the material associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset
plugInId (Guid)The plug-in specific material to look for.
attributes (ObjectAttributes)Optional object attributes used to determine the material source, if null the objects attributes are used.
Returns the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.

GetMaterial

#Since v6.0
public Material GetMaterial(ComponentIndex componentIndex, Guid plugInId)
Get the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.
componentIndex (ComponentIndex)Returns the material associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset
plugInId (Guid)The plug-in specific material to look for.
Returns the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.

GetMaterial

#Since v6.0
public Material GetMaterial(ComponentIndex componentIndex)
Get the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.
componentIndex (ComponentIndex)Returns the material associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset
Returns the Material associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level material is returned.

GetMeshes

#Since v5.0
public virtual Mesh[] GetMeshes(MeshType meshType)
Get existing meshes used to render and analyze surface and polysurface objects.
meshType (MeshType)
An array of meshes.

GetObjectData

[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
inherited fromCommonObject
info (SerializationInfo)The System.Runtime.Serialization.SerializationInfo to populate with data.
context (StreamingContext)The destination (see System.Runtime.Serialization.StreamingContext) for this serialization.

GetRenderMaterial

#Since v5.10
public RenderMaterial GetRenderMaterial(bool frontMaterial)
Gets the RenderMaterial that this object uses based on it's attributes and the document that the object is associated with. If there is no RenderMaterial associated with this object then null is returned. If null is returned you should call GetMaterial to get the material used to render this object.
frontMaterial (bool)If true, gets the material used to render the object's front side otherwise; gets the material used to render the back side of the object.
If there is a RenderMaterial associated with this objects' associated Material then it is returned otherwise; null is returned.

GetRenderMaterial

#Since v6.0
public RenderMaterial GetRenderMaterial(ComponentIndex componentIndex, Guid plugInId, ObjectAttributes attributes)
Gets the RenderMaterial associated with this object if there is one. If there is no RenderMaterial associated with this object then null is returned. If null is returned you should call GetMaterial to get the material used to render this object.
componentIndex (ComponentIndex)Returns the RenderMaterial associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset
plugInId (Guid)The plug-in specific material to look for.
attributes (ObjectAttributes)Optional object attributes used to determine the material source, if null the objects attributes are used.
Returns the RenderMaterial associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level RenderMaterail is returned. If this method returns null it means there is no RenderMaterial associated with the object or sub object so you should may GetMaterial get the objects generic material.

GetRenderMaterial

#Since v6.0
public RenderMaterial GetRenderMaterial(ComponentIndex componentIndex, Guid plugInId)
Gets the RenderMaterial associated with this object if there is one. If there is no RenderMaterial associated with this object then null is returned. If null is returned you should call GetMaterial to get the material used to render this object.
componentIndex (ComponentIndex)Returns the RenderMaterial associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset
plugInId (Guid)The plug-in specific material to look for.
Returns the RenderMaterial associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level RenderMaterail is returned. If this method returns null it means there is no RenderMaterial associated with the object or sub object so you should may GetMaterial get the objects generic material.

GetRenderMaterial

#Since v6.0
public RenderMaterial GetRenderMaterial(ComponentIndex componentIndex)
Gets the RenderMaterial associated with this object if there is one. If there is no RenderMaterial associated with this object then null is returned. If null is returned you should call GetMaterial to get the material used to render this object.
componentIndex (ComponentIndex)Returns the RenderMaterial associated with the specified sub object or the objects top level material if it is set to ComponentIndex.Unset
Returns the RenderMaterial associated with the sub object identified by componentIndex if the component index is set to ComponentIndex.Unset then the top level RenderMaterail is returned. If this method returns null it means there is no RenderMaterial associated with the object or sub object so you should may GetMaterial get the objects generic material.

GetRenderMeshes

#Since v5.0 Obsolete v8.0
public static ObjRef[] GetRenderMeshes(IEnumerable<RhinoObject> rhinoObjects, bool okToCreate, bool returnAllObjects)
obsoleteDoes not support custom render meshes, per-face materials or delivery of the shared pointer meshes. Prefer RhinoObject.RenderMeshes.
Gets the render meshes of some objects.
rhinoObjects (IEnumerable<RhinoObject>)An array, a list, or any enumerable set of Rhino objects.
okToCreate (bool)true if the method is allowed to instantiate new meshes if they do not exist.
returnAllObjects (bool)true if all objects should be returned.
An array of object references.

GetRenderMeshesWithUpdatedTCs

#Since v7.3 Obsolete v8.0
public static ObjRef[] GetRenderMeshesWithUpdatedTCs(IEnumerable<RhinoObject> rhinoObjects, bool okToCreate, bool returnAllObjects, bool skipHiddenObjects, bool updateMeshTCs)
obsoleteDoes not support custom render meshes, per-face materials or delivery of the shared pointer meshes. Prefer RhinoObject.RenderMeshes.
Gets the render meshes of some objects.
rhinoObjects (IEnumerable<RhinoObject>)An array, a list, or any enumerable set of Rhino objects.
okToCreate (bool)true if the method is allowed to instantiate new meshes if they do not exist.
returnAllObjects (bool)true if all objects should be returned.
skipHiddenObjects (bool)true if hidden objects should be ignored.
updateMeshTCs (bool)true if the TCs should be updated with a texture mapping.
An array of object references.

GetRenderMeshParameters

#Since v5.0
public MeshingParameters GetRenderMeshParameters()
Returns the meshing parameters that this object uses for generating render meshes. If this object does not have per-object meshing parameters, then the document's meshing parameters are returned.
The render meshing parameters.

GetRenderMeshParameters

#Since v7.0
public MeshingParameters GetRenderMeshParameters(bool returnDocumentParametersIfUnset)
Returns the meshing parameters that this object uses for generating render meshes.
returnDocumentParametersIfUnset (bool)If true, then return the per-object meshing parameters for this object. If this object does not have per-object meshing parameters, then the document's meshing parameters are returned. If false, then return the per-object meshing parameters for this object. If this object does not have per-object meshing parameters, then null is returned.
The render meshing parameters if successful, null otherwise.

GetRenderPrimitiveList

#Since v5.7 Obsolete v6.0
public RenderPrimitiveList GetRenderPrimitiveList(ViewportInfo viewport, bool preview)
obsoleteThis version is obsolete because it returns the obsolete RenderPrimitiveList - ie, the old school custom render meshes. Use CustomRenderMeshes instead.
Build custom render mesh(es) for this object.
viewport (ViewportInfo)The viewport being rendered.
preview (bool)Type of mesh to build, if preview is true then a smaller mesh may be generated in less time, false is meant when actually rendering.
Returns a RenderPrimitiveList if successful otherwise returns null.

GetRenderPrimitiveList

#Since v6.0 Obsolete v8.0
public RenderPrimitiveList GetRenderPrimitiveList(ViewportInfo viewport, DisplayPipelineAttributes attrs)
obsoleteThis version is obsolete because it returns the obsolete RenderPrimitiveList - ie, the old school custom render meshes. Use CustomRenderMeshes instead.
Build custom render mesh(es) for this object.
viewport (ViewportInfo)The viewport being rendered.
attrs (DisplayPipelineAttributes)Attributes for the view mode you are supplying meshes for. Will be null if this is a modal rendering.
Returns a RenderPrimitiveList if successful otherwise returns null.

GetSelectedSubObjects

#Since v5.0
public ComponentIndex[] GetSelectedSubObjects()
Get a list of all selected sub-objects.
An array of sub-object indices, or null if there are none.

GetSubObjects

#Since v5.0
public RhinoObject[] GetSubObjects()
Explodes the object into sub-objects. It is up to the caller to add the returned objects to the document.
An array of Rhino objects, or null if this object cannot be exploded.

GetTextureChannels

#Since v5.7
public int[] GetTextureChannels()
Get a list of the texture mapping channel Id's associated with object.
Returns an array of channel Id's or an empty list if there are not mappings.

GetTextureMapping

#Since v5.7
public TextureMapping GetTextureMapping(int channel, out Transform objectTransform)
Get objects texture mapping
channel (int)
objectTransform (out Transform)

GetTextureMapping

#Since v5.7
public TextureMapping GetTextureMapping(int channel)
channel (int)

GetTightBoundingBox

#Since v7.0
public static bool GetTightBoundingBox(IEnumerable<RhinoObject> rhinoObjects, out BoundingBox boundingBox)
Gets a world XY-plane aligned tight bounding box from a collection of Rhino objects.
rhinoObjects (IEnumerable<RhinoObject>)A collection of Rhino objects.
boundingBox (out BoundingBox)A tight bounding box.

GetTightBoundingBox

#Since v7.0
public static bool GetTightBoundingBox(IEnumerable<RhinoObject> rhinoObjects, Plane plane, out BoundingBox boundingBox)
Gets a plane aligned tight bounding box from a collection of Rhino objects.
rhinoObjects (IEnumerable<RhinoObject>)A collection of Rhino objects.
plane (Plane)A valid alignment plane.
boundingBox (out BoundingBox)A tight bounding box.

GetTightBoundingBox

#
protected virtual bool GetTightBoundingBox(ref BoundingBox tightBox, bool growBox, Transform xform)
Get tight bounding box of this Rhino object. The Rhino object is not modified.
tightBox (ref BoundingBox)Beginning and resulting tight box
growBox (bool)If true and the input tight_bbox is valid, then returned tight_bbox is the union of the input tight_bbox and the tight bounding box of this Rhino object.
xform (Transform)If useXform==true, the tight bounding box of the transformed Rhino object is calculated.
true if the returned tight_bbox is set to a valid bounding box.

HasCustomRenderMeshes

#Since v8.0
public bool HasCustomRenderMeshes(MeshType mt, ViewportInfo vp, ref Flags flags, PlugIn plugin, DisplayPipelineAttributes attrs)
Returns true if the object will has a set of custom render primitives - ie, CustomRenderMeshes will return non-null.
mt (MeshType)The mesh type requested (render or analysis).
vp (ViewportInfo)The viewport being rendered.
flags (ref RenderMeshProvider.Flags)See RenderMeshProvider.Flags. This is an in/out parameter: on return it also carries any status flags, so reset it before each call. See RenderMeshes(MeshType, ViewportInfo, List<InstanceObject>, RenderMeshProvider.Flags, PlugIn, DisplayPipelineAttributes) for how to wait for an asynchronous provider.
plugin (PlugIn)The requesting plug-in (typically the calling plugin)
attrs (DisplayPipelineAttributes)Display attributes for the caller - null if this is a full rendering.
Returns true if the object will has a set of custom render primitives

HasHistoryRecord

#Since v7.1
public bool HasHistoryRecord()
Returns whether this object has a history record

HasTextureMapping

#Since v6.0
public bool HasTextureMapping()
Returns true if this object has a texture mapping form any source (pluginId)

Highlight

#Since v5.0
public bool Highlight(bool enable)
Modifies the highlighting of the object.
enable (bool)true if highlighting should be enabled.
true if the object is now highlighted.

HighlightSubObject

#Since v5.0
public bool HighlightSubObject(ComponentIndex componentIndex, bool highlight)
Highlights a sub-object.
componentIndex (ComponentIndex)A sub-object component index.
highlight (bool)true if the sub-object should be highlighted.
true if the sub-object is now highlighted.

HistoryChildren

#Since v8.13
public Guid[] HistoryChildren()
Gets the ids of the child Rhino objects of this object.
An array of Rhino object ids if successful, an empty array if the object has no children or on error.

HistoryParents

#Since v8.13
public Guid[] HistoryParents()
Gets the ids of the parent Rhino objects of this object.
An array of Rhino object ids if successful, an empty array if the object has no parents or on error.

InVisualAnalysisMode

#Since v5.0
public bool InVisualAnalysisMode()
Reports if any visual analysis mode is currently active for an object.
true if an analysis mode is active; otherwise false.

InVisualAnalysisMode

#Since v5.0
public bool InVisualAnalysisMode(VisualAnalysisMode mode)
Reports if a visual analysis mode is currently active for an object.
mode (VisualAnalysisMode)The mode to check for.

Use null if you want to see if any mode is active.

true if the specified analysis mode is active; otherwise false.

IsActiveInViewport

#Since v5.0
public virtual bool IsActiveInViewport(RhinoViewport viewport)
Determine if this object is active in a particular viewport.
Remarks: The default implementation tests for space and viewport id. This handles things like testing if a page space object is visible in a modeling view.
viewport (RhinoViewport)
True if the object is active in viewport

IsHighlighted

#Since v5.0
public int IsHighlighted(bool checkSubObjects)
Check highlight state.
checkSubObjects (bool)If true and the entire object is not highlighted, and some subset of the object is highlighted, like some edges of a surface, then 3 is returned. If false and the entire object is not highlighted, then zero is returned.

0: object is not highlighted.

1: entire object is highlighted.

3: one or more proper sub-objects are highlighted.

IsMeshable

#Since v5.0
public virtual bool IsMeshable(MeshType meshType)
Returns true if the object is capable of having a mesh of the specified type
meshType (MeshType)

IsSelectable

#Since v5.0
public bool IsSelectable()
Reports if an object can be selected.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.
true if object is capable of being selected.

IsSelectable

#Since v5.0
public bool IsSelectable(bool ignoreSelectionState, bool ignoreGripsState, bool ignoreLayerLocking, bool ignoreLayerVisibility)
Reports if an object can be selected.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.
ignoreSelectionState (bool)If true, then selected objects are selectable. If false, then selected objects are not selectable.
ignoreGripsState (bool)If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected.
ignoreLayerLocking (bool)If true, then objects on locked layers are selectable. If false, then objects on locked layers are not selectable.
ignoreLayerVisibility (bool)If true, then objects on hidden layers are selectable. If false, then objects on hidden layers are not selectable.
true if object is capable of being selected.

IsSelected

#Since v5.0
public int IsSelected(bool checkSubObjects)
Check selection state.
checkSubObjects (bool)(false is good default) If true and the entire object is not selected, and some subset of the object is selected, like some edges of a surface, then 3 is returned. If false and the entire object is not selected, then zero is returned.
0 = object is not selected. 1 = object is selected. 2 = entire object is selected persistently. 3 = one or more proper sub-objects are selected.

IsSubObjectHighlighted

#Since v5.0
public bool IsSubObjectHighlighted(ComponentIndex componentIndex)
Determines if a sub-object is highlighted.
componentIndex (ComponentIndex)A sub-object component index.
true if the sub-object is highlighted.

IsSubObjectSelectable

#Since v5.0
public bool IsSubObjectSelectable(ComponentIndex componentIndex, bool ignoreSelectionState)
Reports if a sub-object can be selected.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then that object is not selectable if it has grips turned on.
componentIndex (ComponentIndex)index of sub-object to check.
ignoreSelectionState (bool)If true, then selected objects are selectable. If false, then selected objects are not selectable.
true if the specified sub-object can be selected.

IsSubObjectSelected

#Since v5.0
public bool IsSubObjectSelected(ComponentIndex componentIndex)
Check sub-object selection state.
Remarks: A sub-object cannot be persistently selected.
componentIndex (ComponentIndex)Index of sub-object to check.
true if the sub-object is selected.

IsValidWithLog

public bool IsValidWithLog(out string log)
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
inherited fromCommonObject
log (out string)A textual log. This out parameter is assigned during this call.
true if this object is valid; false otherwise.

LockId

public void LockId()
Locks the component Id property.
inherited fromModelComponent

LockIndex

public void LockIndex()
Locks the component Index property.
inherited fromModelComponent

LockName

public void LockName()
Locks the component Name property.
inherited fromModelComponent

MemoryEstimate

#Since v5.0
[CLSCompliant(false)] public uint MemoryEstimate()
Computes an estimate of the number of bytes that this object is using in memory. Note that this is a runtime memory estimate and does not directly compare to the amount of space take up by the object when saved to a file.
The estimated number of bytes this object occupies in memory.

MeshCount

#Since v5.0
public virtual int MeshCount(MeshType meshType, MeshingParameters parameters)
RhinoObjects can have several different types of meshes and different numbers of meshes. A b-rep can have a render and an analysis mesh on each face. A mesh object has a single render mesh and no analysis mesh. Curve, point, and annotation objects have no meshes.
meshType (MeshType)type of mesh to count
parameters (MeshingParameters)if not null and if the object can change its mesh (like a brep), then only meshes that were created with these mesh parameters are counted.
number of meshes

MeshObjects

#Since v8.4
public static Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, MeshingParameters parameters, out Mesh[] meshes, out ObjectAttributes[] attributes, bool useWorkerThread)
Meshes Rhino objects.
rhinoObjects (IEnumerable<RhinoObject>)The Rhino objects to mesh.
parameters (MeshingParameters)The parameters used to create the meshes.
meshes (out Mesh[])The created meshes are appended to this array.
attributes (out ObjectAttributes[])The object attributes that coincide with each created mesh are appended to this array.
useWorkerThread (bool)Set true to compute meshes in a worker thread.
The results of the calculation.

MeshObjects

#Since v5.9
public static Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, MeshingParameters parameters, out Mesh[] meshes, out ObjectAttributes[] attributes)
Meshes Rhino objects.
rhinoObjects (IEnumerable<RhinoObject>)The Rhino objects to mesh.
parameters (MeshingParameters)The parameters used to create the meshes.
meshes (out Mesh[])The created meshes are appended to this array.
attributes (out ObjectAttributes[])The object attributes that coincide with each created mesh are appended to this array.
The results of the calculation.

MeshObjects

#Since v5.9
public static Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, ref MeshingParameters parameters, ref bool simpleDialog, out Mesh[] meshes, out ObjectAttributes[] attributes)
Meshes Rhino objects.
rhinoObjects (IEnumerable<RhinoObject>)The Rhino objects to mesh.
parameters (ref MeshingParameters)The parameters used to create the meshes. The meshing parameters may change.
simpleDialog (ref bool)true to display the simple mesh parameters dialog, false to display the detailed mesh parameters dialog.
meshes (out Mesh[])The created meshes are appended to this array.
attributes (out ObjectAttributes[])The object attributes that coincide with each created mesh are appended to this array.
The results of the calculation.

MeshObjects

#Since v6.0
public static Result MeshObjects(IEnumerable<RhinoObject> rhinoObjects, ref MeshingParameters parameters, ref int uiStyle, Transform xform, out Mesh[] meshes, out ObjectAttributes[] attributes)
Meshes Rhino objects.
rhinoObjects (IEnumerable<RhinoObject>)The Rhino objects to mesh.
parameters (ref MeshingParameters)The parameters used to create the meshes. The meshing parameters may change.
uiStyle (ref int)The user interface style, where: -1 = no interface, 0 = simple dialog, 1 = details dialog, 2 = script or batch mode
xform (Transform)Transform to be used for export with origin, or Z to Y up, etc.
meshes (out Mesh[])The created meshes are appended to this array.
attributes (out ObjectAttributes[])The object attributes that coincide with each created mesh are appended to this array.
The results of the calculation.

NonConstOperation

protected virtual void NonConstOperation()
For derived classes implementers.

Defines the necessary implementation to free the instance from being constant.

inherited fromCommonObject

ObjectFrame

#Since v8.0
public Plane ObjectFrame()

ObjectFrame

#Since v8.0
public Plane ObjectFrame(ObjectFrameFlags flags)
flags (RhinoObject.ObjectFrameFlags)

OnAddToDocument

#
protected virtual void OnAddToDocument(RhinoDoc doc)
This call informs an object it is about to be added to the list of active objects in the document.
doc (RhinoDoc)

OnDeleteFromDocument

#
protected virtual void OnDeleteFromDocument(RhinoDoc doc)
This call informs an object it is about to be deleted. Some objects, like clipping planes, need to do a little extra cleanup before they are deleted.
doc (RhinoDoc)

OnDraw

#
protected virtual void OnDraw(DrawEventArgs e)
Called when Rhino wants to draw this object
e (DrawEventArgs)

OnDuplicate

#
protected virtual void OnDuplicate(RhinoObject source)
Called when this a new instance of this object is created and copied from an existing object
source (RhinoObject)

OnPick

#
protected virtual IEnumerable<ObjRef> OnPick(PickContext context)
Called to determine if this object or some sub-portion of this object should be picked given a pick context.
context (PickContext)

OnPicked

#
protected virtual void OnPicked(PickContext context, IEnumerable<ObjRef> pickedItems)
Called when this object has been picked
context (PickContext)
pickedItems (IEnumerable<ObjRef>)Items that were picked. This parameter is enumerable because there may have been multiple sub-objects picked

OnSelectionChanged

#
protected virtual void OnSelectionChanged()
Called when the selection state of this object has changed

OnSpaceMorph

#
protected virtual void OnSpaceMorph(SpaceMorph morph)
Called when a space morph has been applied to the geometry. Currently this only works for CustomMeshObject instances
morph (SpaceMorph)

OnSwitchToNonConst

protected virtual void OnSwitchToNonConst()
Is called when a non-constant operation first occurs.
inherited fromCommonObject

OnTransform

#
protected virtual void OnTransform(Transform transform)
Called when a transformation has been applied to the geometry
transform (Transform)

RenderMeshes

#Since v8.0
public RenderMeshes RenderMeshes(MeshType mt, ViewportInfo vp, List<InstanceObject> ancestry, ref Flags flags, PlugIn plugin, DisplayPipelineAttributes attrs)
Returns a set of custom render primitives for this object.

Some providers - Displacement in particular - compute their meshes asynchronously. Until that work finishes, this method returns the object's ordinary render mesh instead of the custom one and reports that by setting RenderMeshProvider.Flags.Incomplete in flags. That mesh is valid geometry but does not yet reflect the provider, so a caller that measures it will see the object as it was beforehand. Test for the flag rather than trusting the first result.

mt (MeshType)The mesh type requested (render or analysis).
vp (ViewportInfo)The viewport being rendered
ancestry (List<InstanceObject>)The ancestry tree - only used for by-parent object properties assignments.
flags (ref RenderMeshProvider.Flags)On input, the options to apply; on return, the same value with any status flags added. Reset it before each call rather than passing the returned value back in. To wait for an asynchronous provider, call again while RenderMeshProvider.Flags.Incomplete remains set, calling RhinoApp.Wait() in between: the provider needs the main thread's message queue pumped before it can publish its result, so a retry loop that does not pump will never see the flag clear.
plugin (PlugIn)The requesting plug-in (typically the calling plugin)
attrs (DisplayPipelineAttributes)Display attributes for the caller - null if this is a full rendering.
A set of custom render primitives for this object, or the object's ordinary render mesh if an asynchronous provider has not finished - see flags. Null if the object is not in a document.

Select

#Since v5.0
public int Select(bool on, bool syncHighlight, bool persistentSelect, bool ignoreGripsState, bool ignoreLayerLocking, bool ignoreLayerVisibility)
Selects an object.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.
on (bool)The new selection state; true activates selection.
syncHighlight (bool)If true, then the object is highlighted if it is selected and unhighlighted if is not selected.

Highlighting can be and stay out of sync, as its specification is independent.

persistentSelect (bool)Objects that are persistently selected stay selected when a command terminates.
ignoreGripsState (bool)If true, then objects with grips on can be selected. If false, then the value returned by the object's IsSelectableWithGripsOn() function decides if the object can be selected when it has grips turned on.
ignoreLayerLocking (bool)If true, then objects on locked layers can be selected. If false, then objects on locked layers cannot be selected.
ignoreLayerVisibility (bool)If true, then objects on hidden layers can be selectable. If false, then objects on hidden layers cannot be selected.

0: object is not selected.

1: object is selected.

2: object is selected persistently.

Select

#Since v5.0
public int Select(bool on, bool syncHighlight)
Selects an object.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.
on (bool)The new selection state; true activates selection.
syncHighlight (bool)If true, then the object is highlighted if it is selected and not highlighted if is not selected.

Highlighting can be and stay out of sync, as its specification is independent.

0: object is not selected.

1: object is selected.

2: object is selected persistently.

Select

#ExampleSince v5.0
public int Select(bool on)
Selects an object.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.
on (bool)The new selection state; true activates selection.

0: object is not selected.

1: object is selected.

2: object is selected persistently.

SelectSubObject

#Since v6.0
public int SelectSubObject(ComponentIndex componentIndex, bool select, bool syncHighlight, bool persistentSelect)
Reports if an object can be selected.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.
componentIndex (ComponentIndex)Index of sub-object to check.
select (bool)The new selection state; true activates selection.
syncHighlight (bool)(default=true) If true, then the object is highlighted if it is selected and unhighlighted if is not selected.
persistentSelect (bool)When true, selection persists even after the current command terminates.

0: object is not selected

1: object is selected

2: object is selected persistently.

SelectSubObject

#Since v5.0
public int SelectSubObject(ComponentIndex componentIndex, bool select, bool syncHighlight)
Reports if an object can be selected.
Remarks: Objects that are locked, hidden, or on locked or hidden layers cannot be selected. If IsSelectableWithGripsOn() returns false, then an that object is not selectable if it has grips turned on.
componentIndex (ComponentIndex)Index of sub-object to check.
select (bool)The new selection state; true activates selection.
syncHighlight (bool)(default=true) If true, then the object is highlighted if it is selected and unhighlighted if is not selected.
0: object is not selected 1: object is selected 2: object is selected persistently.

SetCopyHistoryOnReplace

#Since v7.1
public void SetCopyHistoryOnReplace(bool bCopy)
If this object has a history record, the CopyOnReplace field is set When an object is replaced in a document and the old object has a history record with this field set, the history record is copied and attached to the new object. That allows a descendant object to continue the history linkage after it is edited.
bCopy (bool)

SetCustomRenderMeshParameter

#Since v6.0
public virtual void SetCustomRenderMeshParameter(Guid providerId, string parameterName, object value)
Set the named custom render mesh parameter value for this object.
providerId (Guid)Id of the custom render mesh provider
parameterName (string)
value (object)

SetHistory

#Since v8.0
public bool SetHistory(HistoryRecord history)
For expert use only. Sets the history record that describes how this object was created. This information is used to update this object when Rhino history is enabled and an input object changes.
history (HistoryRecord)The history record.
true if successful, otherwise false.

SetObjectFrame

#Since v8.0 Obsolete v8.31
public void SetObjectFrame(Plane plane)
obsoleteUse Attributes.SetObjectFrame instead
plane (Plane)

SetObjectFrame

#Since v8.0 Obsolete v8.31
public void SetObjectFrame(Transform xform)
obsoleteUse Attributes.SetObjectFrame instead
xform (Transform)

SetRenderMeshParameters

#Since v7.0
public bool SetRenderMeshParameters(MeshingParameters mp)
Sets the per-object meshing parameters for this object. When set, this object will use these meshing parameters when generating a render mesh, instead of those provided by the document.
mp (MeshingParameters)The per-object meshing parameters. Note: if null, then the per-object meshing parameters will be removed, and this object will revert to using the meshing parameters provided by the document.
True if successful, false otherwise.

SetTextureMapping

#Since v6.26
public int SetTextureMapping(int channel, TextureMapping tm, Transform objectTransform)
Sets texture mapping and mapping object transform for a channel
channel (int)
tm (TextureMapping)The TextureMapping to set into this channel, or null to remove a texture mapping from a channel.
objectTransform (Transform)Mapping channel object transform

SetTextureMapping

#Since v6.0
public int SetTextureMapping(int channel, TextureMapping tm)
channel (int)
tm (TextureMapping)

ShortDescription

#Since v5.0
public virtual string ShortDescription(bool plural)
Gets a localized short descriptive name of the object.
plural (bool)true if the descriptive name should in plural.
A string with the short localized descriptive name.

ShortDescriptionWithClosedStatus

#Since v8.0
public string ShortDescriptionWithClosedStatus(bool prepend, bool plural, out int status)
Gets a localized short descriptive name of the object, along with it's open/closed status.
prepend (bool)true if "open" or "closed" should be prepended to the descriptive name.
plural (bool)true if the descriptive name should in plural.
status (out int)The open/closed status, where: 0 = undefined, 1 = open, 2 = closed.
A string with the short localized descriptive name.

SupportsRenderPrimitiveList

#Since v5.7 Obsolete v6.0
public bool SupportsRenderPrimitiveList(ViewportInfo viewport, bool preview)
obsoleteUse HasCustomRenderPrimitives instead
Determines if custom render meshes will be built for a particular object.
viewport (ViewportInfo)The viewport being rendered.
preview (bool)Type of mesh to build. If attributes is non-null then a smaller mesh may be generated in less time, false is meant when actually rendering.
Returns true if custom render mesh(es) will get built for this object.

SupportsRenderPrimitiveList

#Since v6.0 Obsolete v8.0
public bool SupportsRenderPrimitiveList(ViewportInfo viewport, DisplayPipelineAttributes attrs)
obsoleteUse HasCustomRenderPrimitives instead
Determines if custom render meshes will be built for a particular object.
viewport (ViewportInfo)The viewport being rendered.
attrs (DisplayPipelineAttributes)Type of mesh to build. If attributes is non-null then a smaller mesh may be generated in less time, false is meant when actually rendering.
Returns true if custom render mesh(es) will get built for this object.

ToJSON

public string ToJSON(SerializationOptions options)
Create a JSON string representation of this object
inherited fromCommonObject
options (SerializationOptions)

ToString

public override string ToString()
Returns the name of the model component type, and then its name and index.
inherited fromModelComponent
Remarks: This is provided as a visual aid. Do not rely on this for serialization.
Object.ToString

TryGetGumballFrame

#Since v7.0
public bool TryGetGumballFrame(out GumballFrame frame)
If a Rhino object has been manipulated by Rhino's gumball, and the gumball is not in its default position, then the object's repositioned gumball frame is returned.
frame (out GumballFrame)The gumball frame.
true if the object has a gumball frame, otherwise false.

TryGetGumballFrameForCurrentAlignment

#Since v9.0
public bool TryGetGumballFrameForCurrentAlignment(out GumballFrame frame)
Gets the gumball frame for this object under the current gumball alignment mode (Object / World / CPlane). For Object mode the frame always reflects the object's orientation (including any user relocation in that mode). For World and CPlane mode the frame is only returned when the user has manually repositioned the gumball for this object; if it has never been moved in that mode, the method returns false. Sub-object selections are not taken into account; this is a whole-object helper.
frame (out GumballFrame)The gumball frame for the current alignment mode.
true if a frame is available for the current alignment mode; false when the gumball has not been repositioned in the active World or CPlane mode.

TryGetRenderPrimitiveBoundingBox

#Since v5.7 Obsolete v6.0
public bool TryGetRenderPrimitiveBoundingBox(ViewportInfo viewport, bool preview, out BoundingBox boundingBox)
obsoleteUse CustomRenderMeshesBoundingBox instead
Get the bounding box for the custom render meshes associated with this object.
viewport (ViewportInfo)The viewport being rendered.
preview (bool)Type of mesh to build, if preview is true then a smaller mesh may be generated in less time, false is meant when actually rendering.
boundingBox (out BoundingBox)This will be set to BoundingBox.Unset on failure otherwise it will be the bounding box for the custom render meshes associated with this object.
Returns true if the bounding box was successfully calculated otherwise returns false on error.

TryGetRenderPrimitiveBoundingBox

#Since v6.0 Obsolete v8.0
public bool TryGetRenderPrimitiveBoundingBox(ViewportInfo viewport, DisplayPipelineAttributes attrs, out BoundingBox boundingBox)
obsoleteUse CustomRenderMeshesBoundingBox instead
Get the bounding box for the custom render meshes associated with this object.
viewport (ViewportInfo)The viewport being rendered.
attrs (DisplayPipelineAttributes)Attributes for the view mode you are supplying meshes for. Will be null if this is a modal rendering.
boundingBox (out BoundingBox)This will be set to BoundingBox.Unset on failure otherwise it will be the bounding box for the custom render meshes associated with this object.
Returns true if the bounding box was successfully calculated otherwise returns false on error.

UnhighlightAllSubObjects

#Since v5.0
public int UnhighlightAllSubObjects()
Removes highlighting from all sub-objects.
The number of changed sub-objects.

UnselectAllSubObjects

#Since v5.0
public int UnselectAllSubObjects()
Removes selection from all sub-objects.
The number of unselected sub-objects.

Events

AnalysisModeChanged

#Since v9.0
public static event EventHandler<RhinoObjectAnalysisModeChangedEventArgs> AnalysisModeChanged
Called when the visual analysis mode of a RhinoObject changes.