public class ObjRef : IDisposable
Represents a reference to a Rhino object.

Constructors

ObjRef

#Since v7.0 Obsolete v7.6
Initializes a new object reference from a guid and component index. The component index is used to specify a "piece" of the geometry
public ObjRef(
id,
The object's Id
ci
a portion of the object
)
obsoleteUse version that takes a document.

ObjRef

#Since v5.0 Obsolete v7.6
Initializes a new object reference from a globally unique identifier (Guid).
public ObjRef(
id
The ID.
)
obsoleteUse version that takes a document.

ObjRef

#Since v7.0
Copy constructor
public ObjRef(
ObjRef
other
)

ObjRef

#Since v7.6
Initializes a new object reference from a guid and component index. The component index is used to specify a "piece" of the geometry
public ObjRef(
doc,
The Rhino document
id,
The object's Id
ci
a portion of the object
)

ObjRef

#Since v7.6
Initializes a new object reference from a globally unique identifier (Guid).
public ObjRef(
doc,
The Rhino document
id
The ID.
)

ObjRef

#Since v5.0
Initialized a new object reference from a Rhino object and pick context
public ObjRef(
rhinoObject,
pickContext
)

ObjRef

#Since v5.0
Initializes a new object reference from a Rhino object.
public ObjRef(
rhinoObject
The Rhino object.
)

Finalizer

~ObjRef

#
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
~ObjRef()

Properties

Document

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

GeometryComponentIndex

#Since v5.0
Gets the component index of the referenced (sub) geometry. Some objects have sub-objects that are valid pieces of geometry. For example, breps have edges and faces that are valid curves and surfaces. Each sub-object has a component index that is > 0. The parent geometry has a component index = -1.
public ComponentIndex GeometryComponentIndex { get; }

ObjectId

#Since v5.0
Returns the id of the referenced Rhino object.
public Guid ObjectId { get; }

RuntimeSerialNumber

#Since v5.0
If > 0, then this is the value of a Rhino object's serial number field. The serial number is used instead of the pointer to prevent crashes in cases when the RhinoObject is deleted but an ObjRef continues to reference the Rhino object. The value of RuntimeSerialNumber is not saved in archives because it generally changes if you save and reload an archive.
[CLSCompliant(false)] public uint RuntimeSerialNumber { get; }

Methods

Brep

#ExampleSince v5.0
Gets the brep if this reference geometry is one.
public Brep Brep()
A boundary representation; or null on error.

ClippingPlaneSurface

#Since v5.0
Gets the clipping plane surface if this reference targeted one.
public ClippingPlaneSurface ClippingPlaneSurface()
A clipping plane surface, or null if this reference targeted something else.

Curve

#ExampleSince v5.0
Gets the curve if this reference targeted one.
public Curve Curve()
A curve, or null if this reference targeted something else.

CurveParameter

#ExampleSince v5.0
If the reference geometry is a curve or edge with a selection point, then this gets the parameter of the selection point.
public Curve CurveParameter(
out double
parameter
The parameter of the selection point.
)
Remarks: If a curve was selected and CurveParameter is called and the SelectionMethod() is not 1 (point pick on object), the curve will be returned and parameter will be set to the start parameter of the picked curve. This can be misleading so it may be necessary to call SelectionMethod() first, before calling CurveParameter to get the desired information.
If the selection point was on a curve or edge, then the curve/edge is returned, otherwise null.

Dispose

#Since v5.0
Actively reclaims unmanaged resources that this instance uses.
public void Dispose()

Dispose

#
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.

protected virtual void Dispose(
disposing
true if the call comes from the Dispose() method; false if it comes from the Garbage Collector finalizer.
)

Edge

#Since v5.0
Gets the edge if this reference geometry is one.
public BrepEdge Edge()
A boundary representation edge; or null on error.

Face

#Since v5.0
If the referenced geometry is a brep face, a brep with one face, or a surface, this returns the brep face.
public BrepFace Face()
A boundary representation face; or null on error.

Geometry

#Since v5.0
Gets the geometry linked to the object targeted by this reference.
public GeometryBase Geometry()
The geometry.

Hatch

#Since v5.0
Gets the hatch if the referenced geometry is one.
public Hatch Hatch()
A hatch; or null if the referenced object is not a hatch

InstanceDefinitionPart

#Since v6.0
If sub-object selection is enabled and a piece of an instance reference is selected, this will return the selected piece.
public RhinoObject InstanceDefinitionPart()

Light

#Since v5.0
Gets the light if the referenced geometry is one.
public Light Light()
A light; or null if the referenced object is not a light, or on error.

Mesh

#Since v5.0
Gets the mesh if the referenced geometry is one.
public Mesh Mesh()
A mesh; or null if the referenced object is not a mesh, or on error.

Object

#ExampleSince v5.0
Returns the referenced Rhino object.
public RhinoObject Object()

Point

#Since v5.0
Gets the point if the referenced geometry is one.
public Point Point()
A point; or null if the referenced object is not a point, or on error.

PointCloud

#Since v5.0
Gets the point cloud if the referenced geometry is one.
public PointCloud PointCloud()
A point cloud; or null if the referenced object is not a point cloud, or on error.

SelectionMethod

#Since v5.0
Gets the method used to select this object.
public SelectionMethod SelectionMethod()
The method used to select this object.

SelectionPoint

#ExampleSince v5.0
If the object was selected by picking a point on it, then SelectionPoint() returns the point where the selection occurred, otherwise it returns Point3d.Unset.
public Point3d SelectionPoint()
The point where the selection occurred or Point3d.Unset on failure.

SelectionView

#Since v6.5
If the object was interactively selected in a particular viewport, then SelectionView() returns the view where the object was selected.
public RhinoView SelectionView()

SelectionViewDetailSerialNumber

#Since v6.5
If the object was interactively selected in a page space detail view, then SelectionViewDetailSerialNumber() returns the CRhinoObject serial number of the detail view object. Use SelectionView() to get the page view that contains the detail view object. If SelectionViewDetailSerialNumber() returns 0, then the selection did not happen in a detail view.
[CLSCompliant(false)] public uint SelectionViewDetailSerialNumber()

SetSelectionComponent

#Since v5.0
When an object is selected by picking a sub-object, SetSelectionComponent may be used to identify the sub-object.
public void SetSelectionComponent(
componentIndex
)

SubD

#Since v7.0
Gets the SubD if the referenced geometry is one.
public SubD SubD()
A SubD; or null if the referenced object is not a SubD, or on error.

SubDEdge

#Since v8.15
Gets the SubDEdge if the referenced geometry is one.
public SubDEdge SubDEdge()
A SubDEdge; or null if the referenced object is not a SubDEdge, or on error.

SubDFace

#Since v7.0
Gets the SubDFace if the referenced geometry is one.
public SubDFace SubDFace()
A SubDFace; or null if the referenced object is not a SubDFace, or on error.

SubDVertex

#Since v8.15
Gets the SubDVertex if the referenced geometry is one.
public SubDVertex SubDVertex()
A SubDVertex; or null if the referenced object is not a SubDVertex, or on error.

Surface

#ExampleSince v5.0
Gets the surface if the referenced geometry is one.
public Surface Surface()
A surface; or null if the referenced object is not a surface, or on error.

SurfaceParameter

#Since v5.0
If the reference geometry is a surface, brep with one face, or surface edge with a selection point, then this gets the surface parameters of the selection point.
public Surface SurfaceParameter(
out double
u,
The U value is assigned to this out parameter during the call.
out double
v
The V value is assigned to this out parameter during the call.
)
If the selection point was on a surface, then the surface is returned.

TextDot

#Since v5.0
Gets the text dot if the referenced geometry is one.
public TextDot TextDot()
A text dot; or null if the referenced object is not a text dot, or on error.

TextEntity

#Since v5.0
Gets the text entity if the referenced geometry is one.
public TextEntity TextEntity()
A text entity; or null if the referenced object is not a text entity, or on error.

Trim

#Since v5.8
If the referenced geometry is an edge of a surface, this returns the associated brep trim.
public BrepTrim Trim()
A boundary representation trim; or null on error

Vertex

#Since v9.0
If the referenced geometry is a brep vertex, this returns the brep vertex.
public BrepVertex Vertex()
A boundary representation vertex; or null if the referenced geometry is not a brep vertex, or on error.