# RhinoDoc class

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

```cs
public sealed class RhinoDoc : IDisposable
```

Represents an active model.

## Finalizer

- [~RhinoDoc](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/finalize.md)

## Properties

- [ActiveCommandId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/activecommandid.md): Get the ID of the active command.
- [ActiveDoc](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/activedoc.md): (static) WARNING!! Do not use the ActiveDoc if you don't have to. Under Mac Rhino the ActiveDoc can change while a command is running. Use the doc that is passed to you in your RunCommand function or continue to use the same doc after the first call to ActiveDoc.
- [ActiveSpace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/activespace.md): Get the space associated with the active viewport for this document
- [AnimationProperties](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/animationproperties.md)
- [Bitmaps](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/bitmaps.md): bitmaps used in textures, backgrounds, wallpapers, ...
- [CurrentEnvironment](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/currentenvironment.md): (obsolete) Access to the current environment for various uses
- [CurrentUndoRecordDescription](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/currentundorecorddescription.md): The description of the undo record currently being recorded, as shown in Undo, Redo, and UndoMultiple. If no description has been set, this is the name of the command that owns the record. Null if undo recording is not active.
- [CurrentUndoRecordSerialNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/currentundorecordserialnumber.md): >0: undo recording is active and being saved on the undo record with the specified serial number. 0: undo recording is not active. (Disabled or nothing is being recorded.)
- [CustomRenderSizes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/customrendersizes.md)
- [DateCreated](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/datecreated.md)
- [DateLastEdited](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/datelastedited.md): Returns the date the document was created in Coordinated Universal Time (UTC). Use DateTime.ToLocalTime to convert to local time.
- [DimStyles](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/dimstyles.md)
- [DistanceDisplayPrecision](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/distancedisplayprecision.md): (obsolete)
- [DocumentId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/documentid.md): (obsolete) Gets the Document Id.
- [EarthAnchorPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/earthanchorpoint.md)
- [Fonts](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/fonts.md): (obsolete)
- [GroundPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/groundplane.md): (obsolete) Gets the ground plane of this document.
- [Groups](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/groups.md)
- [HatchPatterns](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/hatchpatterns.md)
- [InGetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/ingetpoint.md): Returns true if currently in a GetPoint.Get().
- [InstanceDefinitions](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/instancedefinitions.md)
- [IsAvailable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/isavailable.md)
- [IsClosing](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/isclosing.md)
- [IsCommandRunning](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/iscommandrunning.md): Returns true if Rhino is currently running a command.
- [IsCreating](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/iscreating.md)
- [IsHeadless](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/isheadless.md)
- [IsInitializing](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/isinitializing.md)
- [IsLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/islocked.md): Check to see if the file associated with this document is locked. If it is locked then this is the only document that will be able to write the file. Other instances of Rhino will fail to write this document.
- [IsOpening](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/isopening.md)
- [IsReadOnly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/isreadonly.md): Current read-only mode for this document. true if the document can be viewed but NOT saved. false if document can be viewed and saved.
- [IsSendingMail](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/issendingmail.md): true if Rhino is in the process of sending this document as an email attachment.
- [Layers](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/layers.md): Layers in the document.
- [LayoutSpaceAnnotationScalingEnabled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/layoutspaceannotationscalingenabled.md): If LayoutSpaceAnnotationScaling is on, sizes in dimstyles are multiplied by dimscale when the annotation is displayed in a detail viewport not in a detail
- [Lights](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/lights.md)
- [Linetypes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/linetypes.md): Linetypes in the document.
- [LinkedInstanceDefinitionUpdate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/linkedinstancedefinitionupdate.md): Controls if, when, and how linked and linked and embedded instance definitions are updated when the source archive that was used to create the instance definition has changed.
- [Manifest](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/manifest.md)
- [MarkupMode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/markupmode.md): The markup mode this document is currently in: creating, viewing or editing a markup, or [MarkupMode.None](https://developer.rhino3d.com/api/rhinocommon/type/rhino.docobjects.tables.markupmode.md) when not in markup mode. [RhinoDoc.MarkupViewChanged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/markupviewchanged.md) reports changes to this value.
- [Markups](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/markups.md): Collection of markups in this document
- [Materials](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/materials.md): Materials in the document.
- [MeshingParameterStyle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/meshingparameterstyle.md): Type of MeshingParameters currently used by the document to mesh objects
- [ModelAbsoluteTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelabsolutetolerance.md): Model space absolute tolerance.
- [ModelAngleToleranceDegrees](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelangletolerancedegrees.md): Model space angle tolerance.
- [ModelAngleToleranceRadians](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelangletoleranceradians.md): Model space angle tolerance.
- [ModelBasepoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelbasepoint.md): The base point in the model that is used when inserting the model into another as a block definition. By default the base point in any model is 0,0,0.
- [ModelDistanceDisplayMode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modeldistancedisplaymode.md): Gets/Sets the distance display mode for model space.
- [ModelDistanceDisplayPrecision](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modeldistancedisplayprecision.md)
- [ModelRelativeTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelrelativetolerance.md): Model space relative tolerance.
- [ModelSpaceAnnotationScalingEnabled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelspaceannotationscalingenabled.md): If ModelSpaceAnnotationScaling is on, sizes in dimstyles are multiplied by dimscale when the annotation is displayed in a model space viewport not in a detail
- [ModelSpaceHatchScale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelspacehatchscale.md): The scale factor for hatches in model space when Hatch Scaling is enabled
- [ModelSpaceHatchScalingEnabled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelspacehatchscalingenabled.md): True if hatch scaling is enabled, false if not.
- [ModelSpaceTextScale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelspacetextscale.md): The scale factor for text in model space when Annotation Scaling is enabled
- [ModelUnits](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelunits.md): Length unit used on model space.
- [ModelUnitSystem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelunitsystem.md)
- [ModelUrl](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modelurl.md): Gets and sets the link address, or URL, for the model.
- [Modified](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modified.md): Returns or sets the document's modified flag.
- [Name](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/name.md): Returns the name of the currently loaded Rhino document (3DM file).
- [NamedConstructionPlanes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/namedconstructionplanes.md): Collection of named construction planes.
- [NamedLayerStates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/namedlayerstates.md): Collection of named layer states.
- [NamedPositions](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/namedpositions.md): Collection of named positions.
- [NamedViews](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/namedviews.md): Collection of named views.
- [NextUndoRecordSerialNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/nextundorecordserialnumber.md): The serial number that will be assigned to the next undo record that is constructed.
- [Notes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/notes.md): Returns or sets the document's notes.
- [NotesLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/noteslocked.md)
- [Objects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/objects.md)
- [PageAbsoluteTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pageabsolutetolerance.md): Page space absolute tolerance.
- [PageAngleToleranceDegrees](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pageangletolerancedegrees.md): Page space angle tolerance.
- [PageAngleToleranceRadians](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pageangletoleranceradians.md): Page space angle tolerance.
- [PageDistanceDisplayMode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pagedistancedisplaymode.md): Gets/Sets the distance display mode for page space.
- [PageDistanceDisplayPrecision](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pagedistancedisplayprecision.md)
- [PageRelativeTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pagerelativetolerance.md): Page space relative tolerance.
- [PageUnits](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pageunits.md): Length unit used on page space geometry.
- [PageUnitSystem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pageunitsystem.md)
- [PageViewGroups](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pageviewgroups.md): Collection of markups in this document
- [Path](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/path.md): Returns the path of the currently loaded Rhino document (3DM file).
- [PostEffects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/posteffects.md): (obsolete) Access to the post effects
- [RedoActive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/redoactive.md): Returns true if Redo is currently active.
- [RenderEnvironments](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/renderenvironments.md)
- [RenderMaterials](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/rendermaterials.md)
- [RenderSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/rendersettings.md)
- [RenderTextures](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/rendertextures.md)
- [RuntimeData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/runtimedata.md): Collection of document runtime data. This is a good place to put non-serializable, per document data, such as panel view models. Note well: This data will be dispose with the document and does not get serialized.
- [RuntimeSerialNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/runtimeserialnumber.md): Unique serialNumber for the document while the application is running. This is not a persistent value.
- [SectionStyles](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/sectionstyles.md): Collection of section styles in this document
- [Snapshots](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/snapshots.md): Collection of snapshots.
- [Strings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/strings.md): Collection of document user data strings in this document
- [SubDAppearance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/subdappearance.md): Returns or sets the appearance of all SubD objects in the document.
- [TemplateFileUsed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/templatefileused.md): name of the template file used to create this document. This is a runtime value only present if the document was newly created.
- [UndoActive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undoactive.md): Returns true if Undo is currently active.
- [UndoRecordingEnabled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undorecordingenabled.md)
- [UndoRecordingIsActive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undorecordingisactive.md): true if undo recording is actually happening now.
- [Views](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/views.md)
- [ViewUserInterface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/viewuserinterface.md)
- [Worksession](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/worksession.md): Provides access to the document's worksession.

## Methods

- [AddCustomUndoEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/addcustomundoevent.md): (2 overloads) Add a custom undo event so you can undo private plug-in data when the user performs an undo or redo
- [AdjustLengthUnits](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/adjustlengthunits.md)
- [AdjustModelUnitSystem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/adjustmodelunitsystem.md)
- [AdjustPageUnitSystem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/adjustpageunitsystem.md)
- [Audit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/audit.md): Audits the contents of the document.
- [BeginUndoRecord](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/beginundorecord.md): Instructs Rhino to begin recording undo information when the document is changed outside of a command. We use this, e.g., to save changes caused by the modeless layer or object properties dialogs when commands are not running.
- [ClearRedoRecords](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/clearredorecords.md)
- [ClearUndoRecords](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/clearundorecords.md): (2 overloads)
- [Create](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/create.md): (static) Creates a new RhinoDoc
- [CreateDefaultAttributes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/createdefaultattributes.md): Gets the default object attributes for this document. The attributes will be linked to the currently active layer and they will inherit the Document WireDensity setting.
- [CreateHeadless](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/createheadless.md): (static) Create a new headless RhinoDoc from a template file
- [CustomRenderMeshesBoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/customrendermeshesboundingbox.md): Returns the bounding box of custom render primitives for this object .
- [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/dispose.md)
- [EndUndoRecord](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endundorecord.md): Ends the undo record.
- [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/equals.md)
- [Export](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/export.md): (2 overloads) Export the entire document to a file. All file formats that Rhino can export to are supported by this function.
- [ExportSelected](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/exportselected.md): (2 overloads) Export selected geometry to a file. All file formats that Rhino can export to are supported by this function.
- [ExtractPreviewImage](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/extractpreviewimage.md): (static) Extracts the bitmap preview image from the specified .3dm file.
- [FindFile](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/findfile.md): Search for a file using Rhino's search path. Rhino will look in the following places:Current model folder; Path specified in options dialog/File tab; Rhino system folders; Rhino executable folder
- [FormatNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/formatnumber.md): (2 overloads) Call this method to get string representing the specified value using the documents display coordinate system and display precision.
- [FromFilePath](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/fromfilepath.md): (static) Search the open document list for a document with a Path equal to the specified file path.
- [FromId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/fromid.md): (static, obsolete)
- [FromRuntimeSerialNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/fromruntimeserialnumber.md): (static)
- [GetAnalysisMeshingParameters](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getanalysismeshingparameters.md): Get analysis meshing parameters currently used by the document
- [GetCurrentMeshingParameters](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getcurrentmeshingparameters.md): Get the custom meshing parameters that this document will use.
- [GetCustomUnitSystem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getcustomunitsystem.md): Get the custom unit system name and custom unit scale.
- [GetEmbeddedFilesList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getembeddedfileslist.md)
- [GetGridDefaults](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getgriddefaults.md)
- [GetGumballPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getgumballplane.md): Returns the active plane of Rhino's auto-gumball widget. Note, when calling from a Rhino command, make sure the command class has the Rhino.Commands.Style.Transparent command style attribute.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/gethashcode.md)
- [GetMeshingParameters](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getmeshingparameters.md): Get MeshingParameters currently used by the document
- [GetModelUrl](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getmodelurl.md): Gets the link address, or URL, for the model.
- [GetRedoRecords](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getredorecords.md): Gets this document's redo history, ordered from the action that the next call to [RhinoDoc.Redo()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/redo.md) repeats to the oldest action that can be redone.
- [GetRenderPrimitiveList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getrenderprimitivelist.md): (obsolete) Build custom render mesh(es) for this document (i.e. - GH meshes).
- [GetRenderPrimitives](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getrenderprimitives.md): (3 overloads, obsolete) Get a enumerable list of custom mesh primitives
- [GetUndoRecords](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getundorecords.md): Gets this document's undo history, ordered from the most recently recorded action to the oldest recorded action.
- [GetUnitSystemName](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/getunitsystemname.md)
- [HasCustomRenderMeshes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/hascustomrendermeshes.md): Returns true if the document has a set of custom render primitives - ie, CustomRenderMeshes will return non-null.
- [Import](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/import.md): (2 overloads) Import geometry into a RhinoDoc from a file. This can be any file format that Rhino can import
- [InCommand](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/incommand.md): This is a low level tool to determine if Rhino is currently running a command.
- [IsMetricUnitSystem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/ismetricunitsystem.md): Determines if a document unit system is a metric unit system.
- [Open](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/open.md): (static) Opens a 3dm file and makes it the active document. If called on windows the active document will be saved and closed and the new document will be opened and become the active document. If called on the Mac the file will be opened in a new document window.
- [OpenDocuments](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/opendocuments.md): (2 overloads, static) Returns a list of currently open Rhino documents
- [OpenFile](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/openfile.md): (static, obsolete)
- [OpenHeadless](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/openheadless.md): (2 overloads, static) Opens a 3DM file into a new headless RhinoDoc.
- [OpenInteractive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/openinteractive.md): (static) Opens a 3dm file and makes it the active document. If called on windows the active document will be saved and closed and the new document will be opened and become the active document. If called on the Mac the file will be opened in a new document window. This function is interactive in that it will ask you if you want to open a document as read only if it is already open in a different process
- [Purge](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/purge.md): (2 overloads) Purges unused table objects from this document, the same way the Purge command does.
- [PurgeObjectHistory](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/purgeobjecthistory.md): (3 overloads) Purges the history records of every object in this document.
- [ReadFile](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/readfile.md): (static)
- [ReadFileVersion](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/readfileversion.md): Returns the major version of Rhino that wrote the .3dm file this document was read from. Values from referenced or merged files are not reported.
- [Redo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/redo.md): Redo the last action that was "undone"
- [RenderMeshes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/rendermeshes.md): Returns a set of non-object custom render primitives for this document.
- [Save](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/save.md): Save doc to disk using the document's Path
- [SaveAs](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/saveas.md): (4 overloads) Save doc as a 3dm to a specified path
- [SaveAsTemplate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/saveastemplate.md): (2 overloads) Save this document as a template to a specific Rhino file version
- [SelectRenderContentInEditor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/selectrendercontentineditor.md): Selects a collection of contents in any editors they appear in.
- [SetCurrentUndoRecordDescription](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/setcurrentundorecorddescription.md): Sets the description of the undo record currently being recorded. Use this to give the undo record of a running command, such as RunPythonScript, a meaningful name in Undo, Redo, and UndoMultiple.
- [SetCustomMeshingParameters](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/setcustommeshingparameters.md): Set the custom meshing parameters that this document will use. You must also modify the MeshingParameterStyle property on the document to Custom if you want these meshing parameters to be used
- [SetCustomUnitSystem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/setcustomunitsystem.md): Changes the unit system to custom units and sets the custom unit scale.
- [SetGridDefaults](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/setgriddefaults.md)
- [SetModelUrl](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/setmodelurl.md): Sets the link address, or URL, for the model.
- [SupportsRenderPrimitiveList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/supportsrenderprimitivelist.md): (obsolete) Determines if custom render meshes will be built for this document (i.e. - GH meshes).
- [TimeoutActiveGet](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/timeoutactiveget.md): Exit the active get operation with a timeout
- [TryGetRenderPrimitiveBoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/trygetrenderprimitiveboundingbox.md): (obsolete) Get the bounding box for the custom render meshes associated with this document (i.e. - GH meshes).
- [Undo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undo.md): Undo the last action
- [Write3dmFile](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/write3dmfile.md): Write information in this document to a .3dm file. Note, the active document's name will not be changed.
- [WriteFile](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/writefile.md): Write information in this document to a file. Note, the active document's name will be changed to that of the path provided.

## Events

- [ActiveDocumentChanged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/activedocumentchanged.md): (static) This event is raised when the active document used by modeless user interface changes. On Mac Rhino this will get raised before the [RhinoDoc.NewDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/newdocument.md), [RhinoDoc.BeginOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/beginopendocument.md) and [RhinoDoc.EndOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endopendocument.md) events. Mac Rhino will also raise this event with 0 for the document Id and a null document pointer when the last document is closed. Windows Rhino will raise this event after the [RhinoDoc.NewDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/newdocument.md), [RhinoDoc.BeginOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/beginopendocument.md) and [RhinoDoc.EndOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endopendocument.md) events when a new or existing model is opened.
- [AddRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/addrhinoobject.md): (static) Called if a new object is added to the document.
- [AfterTransformObjects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/aftertransformobjects.md): (static) Called after objects are being transformed
- [BeforeTransformObjects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/beforetransformobjects.md): (static) Called before objects are being transformed
- [BeginOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/beginopendocument.md): (static) This event is raised when the document open operation begins. NOTE: On Windows, this event will be fired when a clipboard paste operation occurs, as Rhino opens a .tmp file in the User's Local folder with the contents of the pasted document.
- [BeginSaveDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/beginsavedocument.md): (static)
- [CloseDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/closedocument.md): (static)
- [DeleteRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/deleterhinoobject.md): (static) Called if an object is deleted. At some later point the object can be un-deleted.
- [DeselectAllObjects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/deselectallobjects.md): (static) Called when all objects are deselected.
- [DeselectObjects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/deselectobjects.md): (static) Called when object(s) are deselected.
- [DimensionStyleTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/dimensionstyletableevent.md): (static) Called when any modification happens to a document's dimension style table.
- [DocumentPropertiesChanged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/documentpropertieschanged.md): (static)
- [EndOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endopendocument.md): (static)
- [EndOpenDocumentInitialiViewUpdate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endopendocumentinitialiviewupdate.md): (static, obsolete) This event is raised after [RhinoDoc.EndOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endopendocument.md) when the documents initial views have been created and initialized.
- [EndOpenDocumentInitialViewUpdate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endopendocumentinitialviewupdate.md): (static) This event is raised after [RhinoDoc.EndOpenDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endopendocument.md) when the documents initial views have been created and initialized.
- [EndSaveDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/endsavedocument.md): (static)
- [GroupTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/grouptableevent.md): (static) Called when any modification happens to a document's group table.
- [HatchPatternTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/hatchpatterntableevent.md): (static) Called when any modification happens to a document's hatch pattern table.
- [InstanceDefinitionTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/instancedefinitiontableevent.md): (static) Called when any modification happens to a document's instance definition table.
- [LayerTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/layertableevent.md): (static) Called when any modification happens to a document's layer table.
- [LightTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/lighttableevent.md): (static) Called when any modification happens to a document's light table.
- [LinetypeTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/linetypetableevent.md): (static) Called when any modification happens to a document's linetype table.
- [MarkupTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/markuptableevent.md): (static) Called when any modification happens to a document's markup table.
- [MarkupViewChanged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/markupviewchanged.md): (static) Called when a document's markup view state changes, i.e. when the document enters or leaves markup viewing/editing, or switches which markup is being viewed or edited. Unlike [RhinoDoc.MarkupTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/markuptableevent.md) (which reports markup add/delete/modify), this reports which markup is currently active so UI can indicate it.
- [MaterialTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/materialtableevent.md): (static) Called when any modification happens to a document's material table.
- [ModifyObjectAttributes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/modifyobjectattributes.md): (static) Called when all object attributes are changed.
- [NewDocument](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/newdocument.md): (static)
- [PageViewGroupTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/pageviewgrouptableevent.md): (static) Called when any modification happens to a document's pageview group table.
- [PurgeRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/purgerhinoobject.md): (static) Called if an object is being purged from a document. The object will cease to exist forever.
- [RenderEnvironmentTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/renderenvironmenttableevent.md): (static)
- [RenderMaterialsTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/rendermaterialstableevent.md): (static)
- [RenderTextureTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/rendertexturetableevent.md): (static) Called when the [RenderTextureTable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.rendertexturetable.md) has been loaded, is about to be cleared or has been cleared. See [RhinoDoc.RenderContentTableEventType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc.rendercontenttableeventtype.md) for more information.
- [ReplaceRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/replacerhinoobject.md): (static) Called if an object is about to be replaced. If both [RhinoDoc.UndoActive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undoactive.md) and [RhinoDoc.RedoActive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/redoactive.md) return false, then immediately after the [RhinoDoc.ReplaceRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/replacerhinoobject.md) event, there will be a [RhinoDoc.DeleteRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/deleterhinoobject.md) event followed by a [RhinoDoc.AddRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/addrhinoobject.md) event. If either [RhinoDoc.UndoActive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undoactive.md) or [RhinoDoc.UndoActive](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undoactive.md) return true, then immediately after the [RhinoDoc.ReplaceRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/replacerhinoobject.md) event, there will be a [RhinoDoc.DeleteRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/deleterhinoobject.md) event followed by a [RhinoDoc.UndeleteRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undeleterhinoobject.md) event.
- [SectionStyleTableEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/sectionstyletableevent.md): (static) Called when any modification happens to a document's section style table.
- [SelectObjects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/selectobjects.md): (static) Called when object(s) are selected.
- [TextureMappingEvent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/texturemappingevent.md): (static) Called when any modification happens to a document objects texture mapping.
- [UndeleteRhinoObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/undeleterhinoobject.md): (static) Called if an object is un-deleted.
- [UnitsChangedWithScaling](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/unitschangedwithscaling.md): (static) Called when a change in the model units results in a scaling operation on all of the objects in the document. This call is made before any of the objects are scaled. A call to RhinoDoc.DocumentPropertiesChanged follows.
- [UserStringChanged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/userstringchanged.md): (static) This event is raised when document user text strings are changed
- [WorksessionFileChanged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.rhinodoc/worksessionfilechanged.md): (static) Raised after a worksession reference model has been attached to or detached from a document. The document state already reflects the change at the time the event fires.
