# ViewportInfo class

Namespace: [Rhino.DocObjects](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.docobjects.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
[Serializable]
public sealed class ViewportInfo : CommonObject
```

Represents a viewing frustum.

## Constructors

- [ViewportInfo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/ctor.md): (3 overloads) Initializes a new instance.

## Properties

- [Camera35mmLensLength](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/camera35mmlenslength.md): This property assumes the camera is horizontal and crop the film rather than the image when the aspect of the frustum is not 36/24. (35mm film is 36mm wide and 24mm high.) Setting preserves camera location, changes the frustum, but maintains the frustum's aspect.
- [CameraAngle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/cameraangle.md): Gets or sets the 1/2 of smallest subtended view angle. See [ViewportInfo.GetCameraAngles(double, double, double)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getcameraangles.md) for more information.
- [CameraDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/cameradirection.md): Gets the direction that the camera faces.
- [CameraLocation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/cameralocation.md): Gets the camera location (position) point.
- [CameraUp](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/cameraup.md): Gets the camera up vector.
- [CameraX](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/camerax.md): Gets the unit "to the right" vector.
- [CameraY](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/cameray.md): Gets the unit "up" vector.
- [CameraZ](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/cameraz.md): Gets the unit vector in -CameraDirection.
- [DefaultCameraDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/defaultcameradirection.md): (static) Default z=up perspective camera direction
- [FrustumAspect](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumaspect.md): Setting FrustumAspect changes the larger of the frustum's width/height so that the resulting value of width/height matches the requested aspect. The camera angle is not changed. If you change the shape of the view port with a call SetScreenPort(), then you generally want to call SetFrustumAspect() with the value returned by GetScreenPortAspect().
- [FrustumBottom](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumbottom.md): Gets the frustum bottom value. This is -top if the frustum has a horizontal symmetry axis. This number is usually negative.
- [FrustumBottomPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumbottomplane.md): Gets the frustum bottom plane that separates visible from off-screen.
- [FrustumCenter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumcenter.md): Gets the frustum center point.
- [FrustumFar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumfar.md): Gets the frustum far-cutting value.
- [FrustumFarPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumfarplane.md): Gets far clipping plane if camera and frustum are valid. The plane's frame is the same as the camera's frame. The origin is located at the intersection of the camera direction ray and the far clipping plane. The plane's normal points into the frustum towards the camera location.
- [FrustumHeight](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumheight.md): Gets the frustum height. This is [ViewportInfo.FrustumTop](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumtop.md) - [ViewportInfo.FrustumBottom](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumbottom.md).
- [FrustumLeft](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumleft.md): Gets the frustum left value. This is -right if the frustum has a vertical symmetry axis. This number is usually negative.
- [FrustumLeftPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumleftplane.md): Gets the frustum left plane that separates visible from off-screen.
- [FrustumMaximumDiameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustummaximumdiameter.md): Gets the frustum maximum diameter, or the maximum between [ViewportInfo.FrustumWidth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumwidth.md) and [ViewportInfo.FrustumHeight](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumheight.md).
- [FrustumMinimumDiameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumminimumdiameter.md): Gets the frustum minimum diameter, or the minimum between [ViewportInfo.FrustumWidth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumwidth.md) and [ViewportInfo.FrustumHeight](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumheight.md).
- [FrustumNear](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumnear.md): Gets the frustum near-cutting value.
- [FrustumNearPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumnearplane.md): Gets near clipping plane if camera and frustum are valid. The plane's frame is the same as the camera's frame. The origin is located at the intersection of the camera direction ray and the near clipping plane. The plane's normal points out of the frustum towards the camera location.
- [FrustumRight](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumright.md): Gets the frustum right value. This is -left if the frustum has a vertical symmetry axis. This number is usually positive.
- [FrustumRightPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumrightplane.md): Gets the frustum right plane that separates visible from off-screen.
- [FrustumTop](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumtop.md): Gets the frustum top value. This is -bottom if the frustum has a horizontal symmetry axis. This number is usually positive.
- [FrustumTopPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumtopplane.md): Gets the frustum top plane that separates visible from off-screen.
- [FrustumWidth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumwidth.md): Gets the frustum width. This is [ViewportInfo.FrustumRight](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumright.md) - [ViewportInfo.FrustumLeft](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumleft.md).
- [Id](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/id.md): Sets the viewport's id to the value used to uniquely identify this viewport. There is no approved way to change the viewport id once it is set in order to maintain consistency across multiple viewports and those routines that manage them.
- [IsCameraDirectionLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/iscameradirectionlocked.md): Gets or sets a value that indicates whether the direction that the camera faces is unmodifiable.
- [IsCameraLocationLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/iscameralocationlocked.md): Gets or sets a value that indicates whether the camera location is unmodifiable.
- [IsCameraUpLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/iscamerauplocked.md): Gets or sets a value that indicates whether the camera up vector is unmodifiable.
- [IsFrustumLeftRightSymmetric](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/isfrustumleftrightsymmetric.md): Gets or sets a value that indicates whether the camera frustum has a vertical symmetry axis.
- [IsFrustumTopBottomSymmetric](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/isfrustumtopbottomsymmetric.md): Gets or sets a value that indicates whether the camera frustum has a horizontal symmetry axis.
- [IsParallelProjection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/isparallelprojection.md): Get or set whether this projection is parallel.
- [IsPerspectiveProjection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/isperspectiveprojection.md): Get or set whether this projection is perspective.
- [IsTwoPointPerspectiveProjection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/istwopointperspectiveprojection.md): Gets a value that indicates whether this projection is a two-point perspective.
- [IsValidCamera](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/isvalidcamera.md): Gets a value that indicates whether the camera is valid.
- [IsValidFrustum](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/isvalidfrustum.md): Gets a value that indicates whether the frustum is valid.
- [PerspectiveMinNearDist](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/perspectiveminneardist.md): Expert user function to control the minimum value of near when perspective projections are being used.
- [PerspectiveMinNearOverFar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/perspectiveminnearoverfar.md): Expert user function to control the minimum ratio of near/far when perspective projections are begin used.
- [ScreenPort](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/screenport.md): Get or set the screen port. [ViewportInfo.SetScreenPort(Rectangle)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setscreenport.md) and [ViewportInfo.GetScreenPort()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getscreenport.md)
- [ScreenPortAspect](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/screenportaspect.md): Gets the screen aspect ratio. This is width / height.
- [TargetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/targetpoint.md): The current value of the target point. This point does not play a role in the view projection calculations. It can be used as a fixed point when changing the camera so the visible regions of the before and after frustums both contain the region of interest. The default constructor sets this point on ON_3dPoint::UnsetPoint. You must explicitly call one SetTargetPoint() functions to set the target point.
- [ViewScale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/viewscale.md): Applies scaling factors to parallel projection clipping coordinates by setting the m_clip_mod transformation. If you want to compress the view projection across the viewing plane, then set x = 0.5, y = 1.0, and z = 1.0.

## Methods

- [CalculateCameraRotationAngle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/calculatecamerarotationangle.md): (static) Calculates the camera rotation angle.
- [CalculateCameraUpDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/calculatecameraupdirection.md): (static) Calculates the camera up direction.
- [ChangeToParallelProjection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/changetoparallelprojection.md): Use this function to change projections of valid viewports from parallel to perspective. It will make common additional adjustments to the frustum and camera location so the resulting views are similar. The camera direction and target point are not be changed. If the current projection is parallel and symmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and true is returned.
- [ChangeToParallelReflectedProjection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/changetoparallelreflectedprojection.md): When a viewport is set to Parallel Reflected projection, the geometry on the ceiling is shown as if it is mirrored to the floor below.
- [ChangeToPerspectiveProjection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/changetoperspectiveprojection.md): Use this function to change projections of valid viewports from parallel to perspective. It will make common additional adjustments to the frustum and camera location so the resulting views are similar. The camera direction and target point are not changed. If the current projection is perspective and symmetricFrustum, IsFrustumIsLeftRightSymmetric, and IsFrustumIsTopBottomSymmetric are all equal, then no changes are made and true is returned.
- [ChangeToSymmetricFrustum](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/changetosymmetricfrustum.md): If needed, adjusts the current frustum so it has the specified symmetries and adjust the camera location so the target plane remains visible.
- [ChangeToTwoPointPerspectiveProjection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/changetotwopointperspectiveprojection.md): Changes projections of valid viewports to a two point perspective. It will make common additional adjustments to the frustum and camera location and direction so the resulting views are similar. If the current projection is perspective and IsFrustumIsLeftRightSymmetric is true and IsFrustumIsTopBottomSymmetric is false, then no changes are made and true is returned.
- [DollyCamera](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/dollycamera.md): DollyCamera() does not update the frustum's clipping planes. To update the frustum's clipping planes call DollyFrustum(d) with d = dollyVector o cameraFrameZ. To convert screen locations into a dolly vector, use GetDollyCameraVector(). Does not update frustum. To update frustum use DollyFrustum(d) with d = dollyVector o cameraFrameZ.
- [DollyExtents](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/dollyextents.md): (2 overloads) Dolly the camera location and so that the view frustum contains all of the document objects that can be seen in view. If the projection is perspective, the camera angle is not changed.
- [DollyFrustum](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/dollyfrustum.md): Moves the frustum clipping planes.
- [Extents](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/extents.md): (2 overloads) Extends this viewport view to include a bounding box. Use Extents() as a quick way to set a viewport to so that bounding volume is inside of a viewports frustum. The view angle is used to determine the position of the camera.
- [FrustumCenterPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/frustumcenterpoint.md): Return a point on the central axis of the view frustum. This point is a good choice for a general purpose target point.
- [GetBoundingBoxDepth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getboundingboxdepth.md): Gets near and far clipping distances of a bounding box. This function ignores the current value of the viewport's near and far settings. If the viewport is a perspective projection, the it intersects the semi infinite frustum volume with the bounding box and returns the near and far distances of the intersection. If the viewport is a parallel projection, it intersects the infinite view region with the bounding box and returns the near and far distances of the projection.
- [GetCameraAngles](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getcameraangles.md): Gets the field of view angles.
- [GetCameraFrame](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getcameraframe.md): Gets location and vectors of this camera.
- [GetDollyCameraVector](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getdollycameravector.md): (2 overloads) Gets a world coordinate dolly vector that can be passed to DollyCamera().
- [GetFarPlaneCorners](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getfarplanecorners.md): Gets the corners of far clipping plane rectangle. 4 points are returned in the order of bottom left, bottom right, top left, top right.
- [GetFramePlaneCorners](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getframeplanecorners.md): Gets the corners of the frame plane rectangle at specified depth. 4 points are returned in the order of bottom left, bottom right, top left, top right.
- [GetFrustum](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getfrustum.md): Gets the view frustum.
- [GetFrustumLine](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getfrustumline.md): (3 overloads) Gets the world coordinate line in the view frustum that projects to a point on the screen.
- [GetNearPlaneCorners](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getnearplanecorners.md): Gets the corners of near clipping plane rectangle. 4 points are returned in the order of bottom left, bottom right, top left, top right.
- [GetPointDepth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getpointdepth.md): Gets the clipping distance of a point. This function ignores the current value of the viewport's near and far settings. If the viewport is a perspective projection, then it intersects the semi infinite frustum volume with the bounding box and returns the near and far distances of the intersection. If the viewport is a parallel projection, it intersects the infinite view region with the bounding box and returns the near and far distances of the projection.
- [GetScreenPort](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getscreenport.md): (2 overloads) Gets the location of viewport in pixels. See documentation for [SetScreenPort](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setscreenport.md).
- [GetScreenPortLocation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getscreenportlocation.md): Get the location of viewport in pixels (non System.Drawing version of GetScreenPort)
- [GetSphereDepth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getspheredepth.md): Gets near and far clipping distances of a bounding sphere.
- [GetViewScale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getviewscale.md): Get scaling applied to this viewport projection. Reflected ceiling projections will return the values 1,1,-1
- [GetWorldToScreenScale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getworldtoscreenscale.md): Gets the scale factor from point in frustum to screen scale.
- [GetXform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/getxform.md): Computes a transform from a coordinate system to another.
- [RotateCamera](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/rotatecamera.md): Rotates the view camera.
- [SetCameraDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setcameradirection.md): Sets the direction that the camera faces.
- [SetCameraLocation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setcameralocation.md): Sets the camera location (position) point.
- [SetCameraUp](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setcameraup.md): Sets the camera up vector.
- [SetFrustum](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setfrustum.md): Sets the view frustum. If FrustumSymmetryIsLocked() is true and left != -right or bottom != -top, then they will be adjusted so the resulting frustum is symmetric.
- [SetFrustumNearFar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setfrustumnearfar.md): (4 overloads) Sets the frustum near and far using a bounding box.
- [SetScreenPort](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setscreenport.md): (3 overloads) Location of viewport in pixels. These are provided so you can set the port you are using and get the appropriate transformations to and from screen space. // For a Windows window / int width = width of window client area in pixels; / int height = height of window client area in pixels; / port_left = 0; / port_right = width; / port_top = 0; / port_bottom = height; / port_near = 0; / port_far = 1; / SetScreenPort( port_left, port_right, / port_bottom, port_top, / port_near, port_far );
- [SetViewScale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/setviewscale.md): Set scaling applied for this viewport projection. For reflected projections, call with values 1,1,-1
- [TargetDistance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/targetdistance.md): Gets the distance from the target point to the camera plane. Note that if the frustum is not symmetric, then this distance is shorter than the distance from the target to the camera location.
- [TransformCamera](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/transformcamera.md): Transforms the view camera location, direction, and up.
- [UnlockCamera](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/unlockcamera.md): Unlocks the camera vectors and location.
- [UnlockFrustumSymmetry](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/unlockfrustumsymmetry.md): Unlocks frustum horizontal and vertical symmetries.
- [ZoomToScreenRect](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.viewportinfo/zoomtoscreenrect.md): (2 overloads) Zooms to a screen zone. View changing from screen input points. Handy for using a mouse to manipulate a view. ZoomToScreenRect() may change camera and frustum settings.

## Inherited Members

- From [CommonObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject.md): [Disposed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/disposed.md), [HasUserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/hasuserdata.md), [IsDocumentControlled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isdocumentcontrolled.md), [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalid.md), [UserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdata.md), [UserDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdictionary.md), [ConstructConstObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/constructconstobject.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/dispose.md), [EnsurePrivateCopy](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/ensureprivatecopy.md), [GetObjectData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/getobjectdata.md), [IsValidWithLog](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalidwithlog.md), [NonConstOperation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/nonconstoperation.md), [OnSwitchToNonConst](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/onswitchtononconst.md), [ToJSON](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/tojson.md)
