Click or drag to resize

RhinoObject Class

Represents an object in the document.

RhinoObjects should only ever be creatable by the RhinoDoc.

Inheritance Hierarchy

Namespace:  Rhino.DocObjects
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
public class RhinoObject : ModelComponent

The RhinoObject type exposes the following members.

Properties
  NameDescription
Public propertyAttributes
Gets or sets the object attributes.
Public propertyComponentStatus
Gets or sets the component status of the model component.
(Inherited from ModelComponent.)
Public propertyComponentType
Returns ModelGeometry.
(Overrides ModelComponentComponentType.)
Public propertyDeletedName
Gets the name of a component that is deleted.
(Inherited from ModelComponent.)
Public propertyDisposed
Indicates if this object has been disposed or the document it originally belonged to has been disposed.
(Inherited from CommonObject.)
Public propertyDocument
Gets the document that owns this object.
Public propertyGeometry
Gets the underlying geometry for this object.

All rhino objects are composed of geometry and attributes.

Public propertyGripsOn
Gets or sets the activation state of object default editing grips.
Public propertyGripsSelected
true if grips are turned on and at least one is selected.
Public propertyGroupCount
Number of groups object belongs to.
Public propertyHasDynamicTransform
True if the object has a dynamic transformation
Public propertyHasId
Returns a value indicating whether the component has an ID.
(Inherited from ModelComponent.)
Public propertyHasIndex
Returns a value indicating whether the component has an Index.
(Inherited from ModelComponent.)
Public propertyHasName
Returns a value indicating whether the component has a Name.
(Inherited from ModelComponent.)
Public propertyHasSubobjectMaterials
Will be true if the object contains sub object meshes with materials that are different than the top level object.
Public propertyHasUserData
Gets true if this class has any custom information attached to it through UserData.
(Inherited from CommonObject.)
Public propertyId
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.

(Overrides ModelComponentId.)
Public propertyIdIsLocked
Returns a value indicating whether the component ID is already locked.
(Inherited from ModelComponent.)
Public propertyIndex
Gets or sets the model component index attribute.
(Inherited from ModelComponent.)
Public propertyIndexIsLocked
Returns a value indicating whether the component Index is already locked.
(Inherited from ModelComponent.)
Public propertyInstanceDefinitionModelSerialNumber
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.
(Overrides ModelComponentInstanceDefinitionModelSerialNumber.)
Public propertyIsComponentStatusLocked
The component status itself can be locked. This returns an indication.
(Inherited from ModelComponent.)
Public propertyIsDeletable
Some objects cannot be deleted, like grips on lights and annotation objects.
Public propertyIsDeleted
true if the object is deleted. Deleted objects are kept by the document for undo purposes. Call RhinoDoc.UndeleteObject to undelete an object.
(Overrides ModelComponentIsDeleted.)
Public propertyIsDocumentControlled
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 from CommonObject.)
Public propertyIsHidden
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.
Public propertyIsInstanceDefinitionGeometry
true if the object is used as part of an instance definition.
Public propertyIsLocked
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.
Public propertyIsNormal
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.
Public propertyIsPictureFrame
Returns true if the object is a picture frame. A picture frame object is an object that displays a texture map in all views.
Public propertyIsReference
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.
(Overrides ModelComponentIsReference.)
Public propertyIsSolid
Returns true if object is a closed solid, otherwise false.
Public propertyIsSystemComponent
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 from ModelComponent.)
Public propertyIsValid
Tests an object to see if it is valid.
(Inherited from CommonObject.)
Public propertyModelSerialNumber
A value identifying the model that manages this component.
(Inherited from ModelComponent.)
Public propertyName
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.
(Overrides ModelComponentName.)
Public propertyNameIsLocked
Returns a value indicating whether the component Name is already locked.
(Inherited from ModelComponent.)
Public propertyStatic memberNextRuntimeSerialNumber
Gets the runtime serial number that will be assigned to the next Rhino Object that is created.
Public propertyObjectType
Gets the Rhino-based object type.
Public propertyReferenceModelSerialNumber
When a component is in a model for reference, this value identifies the reference model.
(Overrides ModelComponentReferenceModelSerialNumber.)
Public propertyRenderMaterial
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.
Public propertyRuntimeSerialNumber
Gets the objects runtime serial number.
Public propertySubobjectMaterialComponents
Public propertyUserData
List of custom information that is attached to this class.
(Inherited from CommonObject.)
Public propertyUserDictionary
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 from CommonObject.)
Public propertyVisible
Gets the object visibility.
Top
Methods
  NameDescription
Public methodClearId
Resets the HasId property of the model component to false, if possible.
(Inherited from ModelComponent.)
Public methodClearIndex
Resets the HasIndex property of the model component to false, if possible.
(Inherited from ModelComponent.)
Public methodClearName
Resets the HasName property of the model component to false, if possible.
(Inherited from ModelComponent.)
Public methodCode exampleCommitChanges
Moves changes made to this RhinoObject into the RhinoDoc.
Protected methodConstructConstObject
Assigns a parent object and a sub-object index to this.
(Inherited from CommonObject.)
Public methodCopyHistoryOnReplace
Gets the setting of the CopyOnReplace field in this object's history
Public methodCreateMeshes
Create meshes used to render and analyze surface and polysurface objects.
Public methodCustomRenderMeshesBoundingBox
Returns the bounding box of custom render primitives for this object .
Public methodDataCRC
Increments the Cyclic Redundancy Check value by this instance.
(Inherited from ModelComponent.)
Public methodDescription
Get a brief description of a object, including it's attributes and geometry.
Public methodDispose
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.)
Protected methodDispose(Boolean)
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 from CommonObject.)
Public methodCode exampleDuplicateGeometry
Constructs a deep (full) copy of the geometry.
Public methodEnableCustomGrips
Turns on/off the object's editing grips.
Public methodEnableVisualAnalysisMode
Used to turn analysis modes on and off.
Public methodEnsurePrivateCopy
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 from CommonObject.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)
Public methodStatic memberFromRuntimeSerialNumber
Get a Rhino object for a unique runtime serial number
Public methodGetActiveVisualAnalysisModes
Gets a list of currently enabled analysis modes for this object.
Protected methodGetBoundingBox
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
Public methodGetCustomRenderMeshParameter
Query the object for the value of a given named custom render mesh parameter.
Public methodGetDynamicTransform
While an object is being dynamically transformed (dragged, rotated, ...), the current transformation can be retrieved and used for creating dynamic display.
Public methodStatic memberGetFillSurfaces(RhinoObject, ClippingPlaneObject)
Return list of fill surfaces if any for object and clipping plane.
Public methodStatic memberGetFillSurfaces(RhinoObject, IEnumerableClippingPlaneObject)
Return list of fill surfaces if any for object and clipping plane. Fills are trimmed by clipping planes that did not generate them.
Public methodStatic memberGetFillSurfaces(RhinoObject, IEnumerableClippingPlaneObject, Boolean)
Return list of fill surfaces if any for object and clipping plane.
Public methodGetGrips
Returns grips for this object If grips are enabled. If grips are not enabled, returns null.
Public methodGetGroupList
Allocates an array of group indices of length GroupCount. If GroupCount is 0, then this method returns null.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetHighlightedSubObjects
Gets a list of all highlighted sub-objects.
Public methodGetMaterial(Boolean)
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.
Public methodGetMaterial(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.
Public methodGetMaterial(ComponentIndex, Guid)
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.
Public methodGetMaterial(ComponentIndex, Guid, ObjectAttributes)
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.
Public methodGetMeshes
Get existing meshes used to render and analyze surface and polysurface objects.
Public methodGetObjectData
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)
Public methodGetRenderMaterial(Boolean)
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.
Public methodGetRenderMaterial(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.
Public methodGetRenderMaterial(ComponentIndex, Guid)
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.
Public methodGetRenderMaterial(ComponentIndex, Guid, ObjectAttributes)
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.
Public methodStatic memberGetRenderMeshes Obsolete.
Gets the render meshes of some objects.
Public methodStatic memberGetRenderMeshesWithUpdatedTCs Obsolete.
Gets the render meshes of some objects.
Public methodGetRenderMeshParameters
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.
Public methodGetRenderMeshParameters(Boolean)
Returns the meshing parameters that this object uses for generating render meshes.
Public methodGetRenderPrimitiveList(ViewportInfo, DisplayPipelineAttributes) Obsolete.
Build custom render mesh(es) for this object.
Public methodGetRenderPrimitiveList(ViewportInfo, Boolean) Obsolete.
Build custom render mesh(es) for this object.
Public methodGetSelectedSubObjects
Get a list of all selected sub-objects.
Public methodGetSubObjects
Explodes the object into sub-objects. It is up to the caller to add the returned objects to the document.
Public methodGetTextureChannels
Get a list of the texture mapping channel Id's associated with object.
Public methodGetTextureMapping(Int32)
Public methodGetTextureMapping(Int32, Transform)
Get objects texture mapping
Public methodStatic memberGetTightBoundingBox(IEnumerableRhinoObject, BoundingBox)
Gets a world XY-plane aligned tight bounding box from a collection of Rhino objects.
Protected methodGetTightBoundingBox(BoundingBox, Boolean, Transform)
Get tight bounding box of this Rhino object. The Rhino object is not modified.
Public methodStatic memberGetTightBoundingBox(IEnumerableRhinoObject, Plane, BoundingBox)
Gets a plane aligned tight bounding box from a collection of Rhino objects.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodHasCustomRenderMeshes
Returns true if the object will has a set of custom render primitives - ie, CustomRenderMeshes will return non-null.
Public methodHasHistoryRecord
Returns whether this object has a history record
Public methodHasTextureMapping
Returns true if this object has a texture mapping form any source (pluginId)
Public methodHighlight
Modifies the highlighting of the object.
Public methodHighlightSubObject
Highlights a sub-object.
Public methodHistoryChildren
Gets the ids of the child Rhino objects of this object.
Public methodHistoryParents
Gets the ids of the parent Rhino objects of this object.
Public methodInVisualAnalysisMode
Reports if any visual analysis mode is currently active for an object.
Public methodInVisualAnalysisMode(VisualAnalysisMode)
Reports if a visual analysis mode is currently active for an object.
Public methodIsActiveInViewport
Determine if this object is active in a particular viewport.
Public methodIsHighlighted
Check highlight state.
Public methodIsMeshable
Returns true if the object is capable of having a mesh of the specified type
Public methodIsSelectable
Reports if an object can be selected.
Public methodIsSelectable(Boolean, Boolean, Boolean, Boolean)
Reports if an object can be selected.
Public methodIsSelected
Check selection state.
Public methodIsSubObjectHighlighted
Determines if a sub-object is highlighted.
Public methodIsSubObjectSelectable
Reports if a sub-object can be selected.
Public methodIsSubObjectSelected
Check sub-object selection state.
Public methodIsValidWithLog
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
(Inherited from CommonObject.)
Public methodLockId
Locks the component Id property.
(Inherited from ModelComponent.)
Public methodLockIndex
Locks the component Index property.
(Inherited from ModelComponent.)
Public methodLockName
Locks the component Name property.
(Inherited from ModelComponent.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodMemoryEstimate
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.
Public methodMeshCount
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.
Public methodStatic memberMeshObjects(IEnumerableRhinoObject, MeshingParameters, Mesh, ObjectAttributes)
Meshes Rhino objects.
Public methodStatic memberMeshObjects(IEnumerableRhinoObject, MeshingParameters, Mesh, ObjectAttributes, Boolean)
Meshes Rhino objects.
Public methodStatic memberMeshObjects(IEnumerableRhinoObject, MeshingParameters, Boolean, Mesh, ObjectAttributes)
Meshes Rhino objects.
Public methodStatic memberMeshObjects(IEnumerableRhinoObject, MeshingParameters, Int32, Transform, Mesh, ObjectAttributes)
Meshes Rhino objects.
Protected methodNonConstOperation
For derived classes implementers.

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

(Inherited from CommonObject.)
Public methodObjectFrame
Public methodObjectFrame(RhinoObjectObjectFrameFlags)
Protected methodOnAddToDocument
This call informs an object it is about to be added to the list of active objects in the document.
Protected methodOnDeleteFromDocument
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.
Protected methodOnDraw
Called when Rhino wants to draw this object
Protected methodOnDuplicate
Called when this a new instance of this object is created and copied from an existing object
Protected methodOnPick
Called to determine if this object or some sub-portion of this object should be picked given a pick context.
Protected methodOnPicked
Called when this object has been picked
Protected methodOnSelectionChanged
Called when the selection state of this object has changed
Protected methodOnSpaceMorph
Called when a space morph has been applied to the geometry. Currently this only works for CustomMeshObject instances
Protected methodOnSwitchToNonConst
Is called when a non-constant operation first occurs.
(Inherited from CommonObject.)
Protected methodOnTransform
Called when a transformation has been applied to the geometry
Public methodRenderMeshes
Returns a set of custom render primitives for this object.
Public methodCode exampleSelect(Boolean)
Selects an object.
Public methodSelect(Boolean, Boolean)
Selects an object.
Public methodSelect(Boolean, Boolean, Boolean, Boolean, Boolean, Boolean)
Selects an object.
Public methodSelectSubObject(ComponentIndex, Boolean, Boolean)
Reports if an object can be selected.
Public methodSelectSubObject(ComponentIndex, Boolean, Boolean, Boolean)
Reports if an object can be selected.
Public methodSetCopyHistoryOnReplace
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.
Public methodSetCustomRenderMeshParameter
Set the named custom render mesh parameter value for this object.
Public methodSetHistory
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.
Public methodSetObjectFrame(Plane)
Public methodSetObjectFrame(Transform)
Public methodSetRenderMeshParameters
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.
Public methodSetTextureMapping(Int32, TextureMapping)
Public methodSetTextureMapping(Int32, TextureMapping, Transform)
Sets texture mapping and mapping object transform for a channel
Public methodShortDescription
Gets a localized short descriptive name of the object.
Public methodShortDescriptionWithClosedStatus
Gets a localized short descriptive name of the object, along with it's open/closed status.
Public methodSupportsRenderPrimitiveList(ViewportInfo, DisplayPipelineAttributes) Obsolete.
Determines if custom render meshes will be built for a particular object.
Public methodSupportsRenderPrimitiveList(ViewportInfo, Boolean) Obsolete.
Determines if custom render meshes will be built for a particular object.
Public methodToJSON
Create a JSON string representation of this object
(Inherited from CommonObject.)
Public methodToString
Returns the name of the model component type, and then its name and index.
(Inherited from ModelComponent.)
Public methodTryGetGumballFrame
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.
Public methodTryGetRenderPrimitiveBoundingBox(ViewportInfo, DisplayPipelineAttributes, BoundingBox) Obsolete.
Get the bounding box for the custom render meshes associated with this object.
Public methodTryGetRenderPrimitiveBoundingBox(ViewportInfo, Boolean, BoundingBox) Obsolete.
Get the bounding box for the custom render meshes associated with this object.
Public methodUnhighlightAllSubObjects
Removes highlighting from all sub-objects.
Public methodUnselectAllSubObjects
Removes selection from all sub-objects.
Top
See Also
Inheritance Hierarchy
SystemObject
  Rhino.RuntimeCommonObject
    Rhino.DocObjectsModelComponent
      Rhino.DocObjectsRhinoObject
        Rhino.DocObjectsAnnotationObjectBase
        Rhino.DocObjectsBrepObject
        Rhino.DocObjectsClippingPlaneObject
        Rhino.DocObjectsCurveObject
        Rhino.DocObjectsDetailViewObject
        Rhino.DocObjectsExtrusionObject
        Rhino.DocObjectsGripObject
        Rhino.DocObjectsHatchObject
        Rhino.DocObjectsInstanceObject
        Rhino.DocObjectsLightObject
        Rhino.DocObjectsMeshObject
        Rhino.DocObjectsMorphControlObject
        Rhino.DocObjectsNamedViewWidgetObject
        Rhino.DocObjectsPointCloudObject
        Rhino.DocObjectsPointObject
        Rhino.DocObjectsProxyObject
        Rhino.DocObjectsSubDObject
        Rhino.DocObjectsSurfaceObject
        Rhino.DocObjectsTextDotObject