
# IDocument interface

The `IDocument` interface represents the existing document in Altium Designer. A document can be a Schematic, PCB, VHDL, PCB Library document etc.

```csharp
public interface IDocument : IDMObject
```

**Namespace:** EDP · **Assembly:** Altium.SDK.Interfaces

**Inherits:** [IDMObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md)

## Remarks

The [`DM_DocumentKind`](#dm_documentkind) method of the `IDocument` interface when invoked returns you the document type. A document can be part of a project or free documents project.

An existing document can be queried to return the project interface this document is associated with.

The `IDocument` interface is a standalone interface.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [DM_BlanketCount](#dm_blanketcount) | `int` |  |
| [DM_Blankets](#dm_blankets) | [IBlanket](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBlanket.md) |  |
| [DM_BusCount](#dm_buscount) | `int` | The method returns the number of bus objects from this document. |
| [DM_Buses](#dm_buses) | [IBus](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBus.md) | The method returns the indexed Bus instance from this document. |
| [DM_ChannelClassCount](#dm_channelclasscount) | `int` | The method denotes the number of Channel Classes from this document. |
| [DM_ChannelClasses](#dm_channelclasses) | [IChannelClass](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IChannelClass.md) | The method returns the indexed ChannelClass instance from this document. |
| [DM_ChannelIndex](#dm_channelindex) | `int` | The method returns the channel index of this document. |
| [DM_ChannelPrefix](#dm_channelprefix) | `string` | The method returns the channel prefix of this document. |
| [DM_ChannelRoomNamingStyle](#dm_channelroomnamingstyle) | [TChannelRoomNamingStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TChannelRoomNamingStyle.md) | The method returns the channel room naming style value. |
| [DM_ChildDocumentCount](#dm_childdocumentcount) | `int` | The method returns the number of child documents relative to this document. |
| [DM_ChildDocuments](#dm_childdocuments) | [IDocument](#) | The method returns the indexed child document. |
| [DM_Compile](#dm_compile) | `bool` | The method invokes the compiler to compile this document. |
| [DM_ComponentClassCount](#dm_componentclasscount) | `int` | The method denotes the number of component classes from this document. |
| [DM_ComponentClasses](#dm_componentclasses) | [IComponentClass](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponentClass.md) | The method returns the indexed ComponentClass instance from this document. |
| [DM_ComponentCount](#dm_componentcount) | `int` | The method returns the number of component instances on this document. |
| [DM_Components](#dm_components) | [IComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponent.md) | The method returns the indexed component instance from this document. |
| [DM_ConstraintGroupCount](#dm_constraintgroupcount) | `int` | The method denotes the number of constraint groups. |
| [DM_ConstraintGroups](#dm_constraintgroups) | [IConstraintGroup](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IConstraintGroup.md) | The method returns the indexed constraint group. |
| [DM_CreateViolation](#dm_createviolation) | [IViolation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IViolation.md) | The method creates a violation based on the error kind and error string upon an incorrect design. |
| [DM_CrossSheetConnectorCount](#dm_crosssheetconnectorcount) | `int` | The method returns the number of cross sheet connectors on this document. |
| [DM_CrossSheetConnectors](#dm_crosssheetconnectors) | [ICrossSheet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ICrossSheet.md) | The method returns the indexed cross sheet connector instance from this document. |
| [DM_CurrentInstanceNumber](#dm_currentinstancenumber) | `int` | The method returns the current instance number for this document (especially for multi-channel designs where a design document can be referenced multiple times). |
| [DM_DifferentialPairCount](#dm_differentialpaircount) | `int` | This method returns the number of differential pairs used in a document in the project. |
| [DM_DifferentialPairs](#dm_differentialpairs) | [IDifferentialPair](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDifferentialPair.md) | This method returns an indexed differential pair from a document in the project. |
| [DM_DocumentID](#dm_documentid) | `string` |  |
| [DM_DocumentIsLoaded](#dm_documentisloaded) | `bool` | This method returns a boolean value whether this document has been loaded in Altium Designer or not. |
| [DM_DocumentIsTextual](#dm_documentistextual) | `bool` | The method denotes whether the document is a text document. |
| [DM_DocumentKind](#dm_documentkind) | `string` | This method returns the document kind for the current document. |
| [DM_DocumentLoaded](#dm_documentloaded) | `void` |  |
| [DM_FileName](#dm_filename) | `string` | This method returns the file name string of this document. |
| [DM_FSMClockPort](#dm_fsmclockport) | [INetItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md) |  |
| [DM_FSMResetPort](#dm_fsmresetport) | [INetItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md) |  |
| [DM_FSMState](#dm_fsmstate) | [IDM_FSMState](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDM_FSMState.md) |  |
| [DM_FSMStateCount](#dm_fsmstatecount) | `int` |  |
| [DM_FSMTransition](#dm_fsmtransition) | [IDM_FSMTransition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDM_FSMTransition.md) |  |
| [DM_FSMTransitionCount](#dm_fsmtransitioncount) | `int` |  |
| [DM_FullPath](#dm_fullpath) | `string` | This method returns the full path of where this document lives. |
| [DM_GetItemRevisionGUID](#dm_getitemrevisionguid) | `string` |  |
| [DM_GetNetProperties](#dm_getnetproperties) | [INetProperties](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetProperties.md) |  |
| [DM_HarnessConnectorCount](#dm_harnessconnectorcount) | `int` |  |
| [DM_HarnessConnectors](#dm_harnessconnectors) | [ISheetSymbol](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISheetSymbol.md) |  |
| [DM_HarnessNetCount](#dm_harnessnetcount) | `int` |  |
| [DM_HarnessNets](#dm_harnessnets) | [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md) |  |
| [DM_IndentLevel](#dm_indentlevel) | `int` | The method returns the indent level for this current document with respect to the current project. |
| [DM_IsDeviceSheet](#dm_isdevicesheet) | `bool` |  |
| [DM_IsDocumentFileLessEditing](#dm_isdocumentfilelessediting) | `bool` |  |
| [DM_IsPhysicalDocument](#dm_isphysicaldocument) | `bool` | This method returns a Boolean value whether this document is a physical document or not. |
| [DM_IsPrimaryImplementationDocument](#dm_isprimaryimplementationdocument) | `bool` | This method returns a Boolean value whether this document is a primary implementation document (namely a PCB document for instance). |
| [DM_IsVirtualDocument](#dm_isvirtualdocument) | `bool` |  |
| [DM_LoadDocument](#dm_loaddocument) | `bool` | This method returns a Boolean value whether this document has been loaded or not. |
| [DM_LogicalDocument](#dm_logicaldocument) | [IDocument](#) | This method returns the logical document if valid. |
| [DM_ModelKind](#dm_modelkind) | `string` | The method returns the model kind string related to this document. |
| [DM_NeedsScrapCompile](#dm_needsscrapcompile) | `bool` |  |
| [DM_NetClassCount](#dm_netclasscount) | `int` | The method denotes the number of net classes on this document. |
| [DM_NetClasses](#dm_netclasses) | [INetClass](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetClass.md) | The method returns the indexed NetClass instance from this document. |
| [DM_NetCount](#dm_netcount) | `int` | The method returns the number of nets from this document. |
| [DM_Nets](#dm_nets) | [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md) | The method returns an indexed net associated with this document. |
| [DM_ParentDocumentCount](#dm_parentdocumentcount) | `int` | The method returns the number of parent documents relative to this document. |
| [DM_ParentDocuments](#dm_parentdocuments) | [IDocument](#) | The method returns the indexed parent document. |
| [DM_ParentSheetSymbolCount](#dm_parentsheetsymbolcount) | `int` |  |
| [DM_ParentSheetSymbols](#dm_parentsheetsymbols) | [ISheetSymbol](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISheetSymbol.md) |  |
| [DM_PartCount](#dm_partcount) | `int` | The method returns the number of part objects from this document. |
| [DM_Parts](#dm_parts) | [IPart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IPart.md) | The method returns an indexed part associated with this document. |
| [DM_PhysicalDocument](#dm_physicaldocument) | [IDocument](#) |  |
| [DM_PhysicalDocumentCount](#dm_physicaldocumentcount) | `int` | The method returns the number of physical documents associated with this document. |
| [DM_PhysicalDocumentParent](#dm_physicaldocumentparent) | [IDocument](#) | The method returns the `IDocument` interface for a parent physical document. |
| [DM_PhysicalInstanceName](#dm_physicalinstancename) | `string` | The method returns the name of this physical document if valid. |
| [DM_PhysicalInstancePath](#dm_physicalinstancepath) | `string` | The method returns the path to the physical document instance if valid. |
| [DM_PhysicalRoomName](#dm_physicalroomname) | `string` | The method returns the name of the room on this physical document if valid. |
| [DM_PortCount](#dm_portcount) | `int` | The method returns the number of port objects on this document. |
| [DM_Ports](#dm_ports) | [INetItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md) | The method returns the indexed port instance from this document. |
| [DM_Project](#dm_project) | [IProject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md) | This method returns the [`IProject`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md) object interface that this document is associated with. |
| [DM_RoomCount](#dm_roomcount) | `int` | The method denotes the number of rooms on this document. |
| [DM_Rooms](#dm_rooms) | [IRoom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IRoom.md) | The method returns the indexed room instance from this document. |
| [DM_RuleCount](#dm_rulecount) | `int` | The method returns the number of rules from this document. |
| [DM_Rules](#dm_rules) | [IRule](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IRule.md) | The method denotes the indexed rule from this document. |
| [DM_ScrapCompile](#dm_scrapcompile) | `bool` | The method invokes a scrap compile (by force or not). |
| [DM_ScrapCompileWithOptions](#dm_scrapcompilewithoptions) | `bool` |  |
| [DM_ServerDocument](#dm_serverdocument) | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) |  |
| [DM_SetItemRevisionGUID](#dm_setitemrevisionguid) | `void` |  |
| [DM_SheetSizeX](#dm_sheetsizex) | `int` |  |
| [DM_SheetSizey](#dm_sheetsizey) | `int` |  |
| [DM_SheetSymbolCount](#dm_sheetsymbolcount) | `int` | The method returns the number of sheet symbols from this document. |
| [DM_SheetSymbols](#dm_sheetsymbols) | [ISheetSymbol](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISheetSymbol.md) | The method returns an indexed sheet symbol associated with this document. |
| [DM_SignalManager](#dm_signalmanager) | [ISignalManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISignalManager.md) | The method returns the signal manager interface. |
| [DM_SmartLoad](#dm_smartload) | `bool` |  |
| [DM_SpatialAnalysis](#dm_spatialanalysis) | `bool` |  |
| [DM_SpatialAnalysisForTest](#dm_spatialanalysisfortest) | `int` |  |
| [DM_TextFrameCount](#dm_textframecount) | `int` | The method returns the number of text frame objects from this document. |
| [DM_TextFrames](#dm_textframes) | [ITextFrame](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ITextFrame.md) | The method returns an indexed textframe object associated with this document. |
| [DM_UniqueComponentCount](#dm_uniquecomponentcount) | `int` | The method returns the number of unique components according to the library (ies) they are placed from. |
| [DM_UniqueComponents](#dm_uniquecomponents) | [IComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponent.md) | The method returns the indexed unique component instance from this document. |
| [DM_UniquePartCount](#dm_uniquepartcount) | `int` | The method denotes the number of unique parts from this document. |
| [DM_UniqueParts](#dm_uniqueparts) | [IPart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IPart.md) | The method returns an indexed unique part associated with this document. |
| [DM_UpdateDateModified](#dm_updatedatemodified) | `void` | The method sets the modified date for this document. |
| [DM_VHDLEntities](#dm_vhdlentities) | [IVHDLEntity](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IVHDLEntity.md) | The method returns the indexed VHDL entity instance from this document. |
| [DM_VHDLEntityCount](#dm_vhdlentitycount) | `int` | The method denotes the number of VHDL entities from this document. |

### DM_BlanketCount

*No description yet.*

```csharp
int DM_BlanketCount();
```

**Returns:** `int`

### DM_Blankets

*No description yet.*

```csharp
IBlanket DM_Blankets(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IBlanket](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBlanket.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_BusCount

The method returns the number of bus objects from this document. Use this in conjunction with the [`DM_Buses`](#dm_buses)(Index) to go through each bus object.

```csharp
int DM_BusCount();
```

**Returns:** `int`

### DM_Buses

The method returns the indexed Bus instance from this document.

```csharp
IBus DM_Buses(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IBus](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBus.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_ChannelClassCount

The method denotes the number of Channel Classes from this document. Use this Channel Class count in conjunction with the [`DM_ChannelClasses`](#dm_channelclasses)(index) to go through each channel class.

```csharp
int DM_ChannelClassCount();
```

**Returns:** `int`

### DM_ChannelClasses

The method returns the indexed ChannelClass instance from this document. Use this in conjunction with the [`DM_ChannelClassCount`](#dm_channelclasscount) method

```csharp
IChannelClass DM_ChannelClasses(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IChannelClass](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IChannelClass.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_ChannelIndex

The method returns the channel index of this document. This is especially for multi-channel designs where a single source document can be referenced multiple times.

```csharp
int DM_ChannelIndex();
```

**Returns:** `int`

### DM_ChannelPrefix

The method returns the channel prefix of this document. This is especially for multi-channel designs where a single source document can be referenced multiple times.

```csharp
string DM_ChannelPrefix();
```

**Returns:** `string`

### DM_ChannelRoomNamingStyle

The method returns the channel room naming style value.

```csharp
TChannelRoomNamingStyle DM_ChannelRoomNamingStyle();
```

**Returns:** [TChannelRoomNamingStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TChannelRoomNamingStyle.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_ChildDocumentCount

The method returns the number of child documents relative to this document.

```csharp
int DM_ChildDocumentCount();
```

**Returns:** `int`

### DM_ChildDocuments

The method returns the indexed child document. A hierarchical design consists of multi layered parent-child documents.

```csharp
IDocument DM_ChildDocuments(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IDocument](#)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_Compile

The method invokes the compiler to compile this document. If the compile was successful, a true value is returned.

```csharp
bool DM_Compile();
```

**Returns:** `bool`

### DM_ComponentClassCount

The method denotes the number of component classes from this document. Use this Component class count in conjunction with the [`DM_ComponentClasses`](#dm_componentclasses)(index) to go through each component class.

```csharp
int DM_ComponentClassCount();
```

**Returns:** `int`

### DM_ComponentClasses

The method returns the indexed ComponentClass instance from this document. Use this in conjuniton with the [`DM_ComponentClassCount`](#dm_componentclasscount) method.

```csharp
IComponentClass DM_ComponentClasses(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IComponentClass](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponentClass.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_ComponentCount

The method returns the number of component instances on this document. Use this in conjunction with the [`DM_Components`](#dm_components)(Index) method to go through each component object.

```csharp
int DM_ComponentCount();
```

**Returns:** `int`

**Examples:** [Extension_AddVariant](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_AddVariant/Source%20Code/Commands.cs#L57), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/ProjectBom.cs#L42), [Extension_CreateVariantComponent](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateVariantComponent/Source%20Code/Commands.cs#L54), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L35)

### DM_Components

The method returns the indexed component instance from this document. This is to be used in conjunction with the [`DM_ComponentCount`](#dm_componentcount) method.

```csharp
IComponent DM_Components(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponent.md)

Extension method of `IDocumentHelper` (`using EDP;`).

**Examples:** [Extension_AddVariant](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_AddVariant/Source%20Code/Commands.cs#L59), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/ProjectBom.cs#L44), [Extension_CreateVariantComponent](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateVariantComponent/Source%20Code/Commands.cs#L56), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L38)

### DM_ConstraintGroupCount

The method denotes the number of constraint groups.

```csharp
int DM_ConstraintGroupCount();
```

**Returns:** `int`

### DM_ConstraintGroups

The method returns the indexed constraint group. Use the [`DM_ConstraintGroupCount`](#dm_constraintgroupcount) method to get the number of constraint groups.

```csharp
IConstraintGroup DM_ConstraintGroups(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IConstraintGroup](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IConstraintGroup.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_CreateViolation

The method creates a violation based on the error kind and error string upon an incorrect design.

```csharp
IViolation DM_CreateViolation(TErrorKind argErrorKind, string argErrorString);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argErrorKind` | [TErrorKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TErrorKind.md) | value |
| `argErrorString` | `string` | value |

**Returns:** [IViolation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IViolation.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_CrossSheetConnectorCount

The method returns the number of cross sheet connectors on this document. Use this in conjunction with the DM_CrossConnectors(index) to go through each cross connector object.

```csharp
int DM_CrossSheetConnectorCount();
```

**Returns:** `int`

### DM_CrossSheetConnectors

The method returns the indexed cross sheet connector instance from this document. This is to be used in conjunction with the [`DM_CrossSheetConnectorCount`](#dm_crosssheetconnectorcount) method.

```csharp
ICrossSheet DM_CrossSheetConnectors(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [ICrossSheet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ICrossSheet.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_CurrentInstanceNumber

The method returns the current instance number for this document (especially for multi-channel designs where a design document can be referenced multiple times).

```csharp
int DM_CurrentInstanceNumber();
```

**Returns:** `int`

### DM_DifferentialPairCount

This method returns the number of differential pairs used in a document in the project.

```csharp
int DM_DifferentialPairCount();
```

**Returns:** `int`

**See also:** [IDifferentialPair](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDifferentialPair.md)

### DM_DifferentialPairs

This method returns an indexed differential pair from a document in the project.

```csharp
IDifferentialPair DM_DifferentialPairs(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IDifferentialPair](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDifferentialPair.md)

Extension method of `IDocumentHelper` (`using EDP;`).

**See also:** [IDifferentialPair](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDifferentialPair.md)

### DM_DocumentID

*No description yet.*

```csharp
string DM_DocumentID();
```

**Returns:** `string`

### DM_DocumentIsLoaded

This method returns a boolean value whether this document has been loaded in Altium Designer or not.

```csharp
bool DM_DocumentIsLoaded();
```

**Returns:** `bool`

### DM_DocumentIsTextual

The method denotes whether the document is a text document.

```csharp
bool DM_DocumentIsTextual();
```

**Returns:** `bool`

### DM_DocumentKind

This method returns the document kind for the current document. A document could be a Schematic document and thus the string returned is 'SCH'. Check the installation file of each server for the Server Name.

```csharp
string DM_DocumentKind();
```

**Returns:** `string`

**Examples:** [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L74), [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/Commands.cs#L26), [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L42)

### DM_DocumentLoaded

*No description yet.*

```csharp
void DM_DocumentLoaded();
```

**Returns:** nothing (`void`)

### DM_FileName

This method returns the file name string of this document.

```csharp
string DM_FileName();
```

**Returns:** `string`

**Examples:** [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L80)

### DM_FSMClockPort

*No description yet.*

```csharp
INetItem DM_FSMClockPort();
```

**Returns:** [INetItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_FSMResetPort

*No description yet.*

```csharp
INetItem DM_FSMResetPort();
```

**Returns:** [INetItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_FSMState

*No description yet.*

```csharp
IDM_FSMState DM_FSMState(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IDM_FSMState](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDM_FSMState.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_FSMStateCount

*No description yet.*

```csharp
int DM_FSMStateCount();
```

**Returns:** `int`

### DM_FSMTransition

*No description yet.*

```csharp
IDM_FSMTransition DM_FSMTransition(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IDM_FSMTransition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDM_FSMTransition.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_FSMTransitionCount

*No description yet.*

```csharp
int DM_FSMTransitionCount();
```

**Returns:** `int`

### DM_FullPath

This method returns the full path of where this document lives.

```csharp
string DM_FullPath();
```

**Returns:** `string`

**Examples:** [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L76)

### DM_GetItemRevisionGUID

*No description yet.*

```csharp
string DM_GetItemRevisionGUID();
```

**Returns:** `string`

### DM_GetNetProperties

*No description yet.*

```csharp
INetProperties DM_GetNetProperties(string argObjectHandle);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argObjectHandle` | `string` | value |

**Returns:** [INetProperties](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetProperties.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_HarnessConnectorCount

*No description yet.*

```csharp
int DM_HarnessConnectorCount();
```

**Returns:** `int`

### DM_HarnessConnectors

*No description yet.*

```csharp
ISheetSymbol DM_HarnessConnectors(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [ISheetSymbol](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISheetSymbol.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_HarnessNetCount

*No description yet.*

```csharp
int DM_HarnessNetCount();
```

**Returns:** `int`

### DM_HarnessNets

*No description yet.*

```csharp
INet DM_HarnessNets(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_IndentLevel

The method returns the indent level for this current document with respect to the current project.

```csharp
int DM_IndentLevel();
```

**Returns:** `int`

### DM_IsDeviceSheet

*No description yet.*

```csharp
bool DM_IsDeviceSheet();
```

**Returns:** `bool`

### DM_IsDocumentFileLessEditing

*No description yet.*

```csharp
bool DM_IsDocumentFileLessEditing();
```

**Returns:** `bool`

### DM_IsPhysicalDocument

This method returns a Boolean value whether this document is a physical document or not. There are logical and physical documents; these terms are used to differentiate the documents in multi-channel projects. A multi channel design means that a single sheet is referenced repeatedly for a channel design. This sheet is called a logical document. A physical document (usually a PCB document) has components with unique names within a room which is mapped to a channel on a Schematic sheet. So a multi channel design translates to multiple rooms with components with unique physical designators on a PCB.

```csharp
bool DM_IsPhysicalDocument();
```

**Returns:** `bool`

A physical designator of a PCB component is calculated to have the hierarchy path of a schematic project as well as the logical designator of the associated Schematic component to ensure that this designator for the PCB component is unique.

### DM_IsPrimaryImplementationDocument

This method returns a Boolean value whether this document is a primary implementation document (namely a PCB document for instance). A schematic document is a source document and is centric to a design project.

```csharp
bool DM_IsPrimaryImplementationDocument();
```

**Returns:** `bool`

### DM_IsVirtualDocument

*No description yet.*

```csharp
bool DM_IsVirtualDocument();
```

**Returns:** `bool`

### DM_LoadDocument

This method returns a Boolean value whether this document has been loaded or not.

```csharp
bool DM_LoadDocument();
```

**Returns:** `bool`

### DM_LogicalDocument

This method returns the logical document if valid. Otherwise a nil value is returned. There are logical and physical documents; these terms are used to differentiate the documents in multi-channel projects. A multi channel design means that a single sheet is referenced repeatedly for a channel design. This sheet is called a logical document. A physical document (usually a PCB document) has components with unique names within a room which is mapped to a channel on a Schematic sheet. So a multi channel design translates to multiple rooms with components with unique physical designators on a PCB.

```csharp
IDocument DM_LogicalDocument();
```

**Returns:** [IDocument](#)

Extension method of `IDocumentHelper` (`using EDP;`).

A physical designator of a PCB component is calculated to have the hierarchy path of a schematic project as well as the logical designator of the associated Schematic component to ensure that this designator for the PCB component is unique.

### DM_ModelKind

The method returns the model kind string related to this document.

```csharp
string DM_ModelKind();
```

**Returns:** `string`

### DM_NeedsScrapCompile

*No description yet.*

```csharp
bool DM_NeedsScrapCompile();
```

**Returns:** `bool`

### DM_NetClassCount

The method denotes the number of net classes on this document. Use this NetClass count in conjunction with the [`DM_NetClasses`](#dm_netclasses)(Index) method to go through each net class.

```csharp
int DM_NetClassCount();
```

**Returns:** `int`

### DM_NetClasses

The method returns the indexed NetClass instance from this document. Use this in conjunction with the [`DM_NetClassCount`](#dm_netclasscount) method.

```csharp
INetClass DM_NetClasses(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [INetClass](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetClass.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_NetCount

The method returns the number of nets from this document. Use this Net count in conjunction with the [`DM_Nets`](#dm_nets)(Index) to go through each sheet symbol object

```csharp
int DM_NetCount();
```

**Returns:** `int`

### DM_Nets

The method returns an indexed net associated with this document.

```csharp
INet DM_Nets(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [INet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INet.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_ParentDocumentCount

The method returns the number of parent documents relative to this document.

```csharp
int DM_ParentDocumentCount();
```

**Returns:** `int`

### DM_ParentDocuments

The method returns the indexed parent document. A hierarchical design consists of multi layered parent-child documents.

```csharp
IDocument DM_ParentDocuments(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IDocument](#)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_ParentSheetSymbolCount

*No description yet.*

```csharp
int DM_ParentSheetSymbolCount();
```

**Returns:** `int`

### DM_ParentSheetSymbols

*No description yet.*

```csharp
ISheetSymbol DM_ParentSheetSymbols(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [ISheetSymbol](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISheetSymbol.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_PartCount

The method returns the number of part objects from this document. Use this PartCount in conjunction with the [`DM_Parts`](#dm_parts)(Index) to go through each part object.

```csharp
int DM_PartCount();
```

**Returns:** `int`

**Examples:** [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L48)

### DM_Parts

The method returns an indexed part associated with this document.

```csharp
IPart DM_Parts(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IPart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IPart.md)

Extension method of `IDocumentHelper` (`using EDP;`).

**Examples:** [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L65)

### DM_PhysicalDocument

*No description yet.*

```csharp
IDocument DM_PhysicalDocument(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IDocument](#)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_PhysicalDocumentCount

The method returns the number of physical documents associated with this document.

```csharp
int DM_PhysicalDocumentCount();
```

**Returns:** `int`

### DM_PhysicalDocumentParent

The method returns the `IDocument` interface for a parent physical document. Could be a VHDL or a PCB document for example.

```csharp
IDocument DM_PhysicalDocumentParent();
```

**Returns:** [IDocument](#)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_PhysicalInstanceName

The method returns the name of this physical document if valid. Otherwise an empty string is returned.

```csharp
string DM_PhysicalInstanceName();
```

**Returns:** `string`

### DM_PhysicalInstancePath

The method returns the path to the physical document instance if valid. Otherwise an empty string is returned.

```csharp
string DM_PhysicalInstancePath();
```

**Returns:** `string`

### DM_PhysicalRoomName

The method returns the name of the room on this physical document if valid. Otherwise a nil value is returned.

```csharp
string DM_PhysicalRoomName();
```

**Returns:** `string`

### DM_PortCount

The method returns the number of port objects on this document. Use this in conjunction with the [`DM_Ports`](#dm_ports)(index) to go through each port object.

```csharp
int DM_PortCount();
```

**Returns:** `int`

**Examples:** [Extension_TestPortHarnessDev](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_TestPortHarnessDev/Source%20Code/Commands.cs#L53)

### DM_Ports

The method returns the indexed port instance from this document. This is to be used in conjunction with the [`DM_PortCount`](#dm_portcount) method

```csharp
INetItem DM_Ports(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [INetItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md)

Extension method of `IDocumentHelper` (`using EDP;`).

**Examples:** [Extension_TestPortHarnessDev](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_TestPortHarnessDev/Source%20Code/Commands.cs#L55)

### DM_Project

This method returns the [`IProject`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md) object interface that this document is associated with.

```csharp
IProject DM_Project();
```

**Returns:** [IProject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md)

Extension method of `IDocumentHelper` (`using EDP;`).

**Examples:** [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L59)

### DM_RoomCount

The method denotes the number of rooms on this document. Use this RoomCount in conjunction with the [`DM_Rooms`](#dm_rooms)(Index) to go through each room object.

```csharp
int DM_RoomCount();
```

**Returns:** `int`

### DM_Rooms

The method returns the indexed room instance from this document. Use this in conjunction with the [`DM_RoomCount`](#dm_roomcount) method.

```csharp
IRoom DM_Rooms(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IRoom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IRoom.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_RuleCount

The method returns the number of rules from this document. Use this Rule count in conjunction with the [`DM_Rules`](#dm_rules)(Index) to go through each sheet symbol object

```csharp
int DM_RuleCount();
```

**Returns:** `int`

### DM_Rules

The method denotes the indexed rule from this document. Use this [`DM_RuleCount`](#dm_rulecount) in conjunction with the `DM_Rules` to go through each rule found from this document..

```csharp
IRule DM_Rules(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IRule](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IRule.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_ScrapCompile

The method invokes a scrap compile (by force or not). A scrap compile is the background compile in Altium Designer on a design document and does all the auto - junctions for bus and wire objects. Also the scrap compile does the online rule checks in schematics. It is totally separate from the main compile which compile projects.

```csharp
bool DM_ScrapCompile(bool argForceCompile);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argForceCompile` | `bool` | value |

**Returns:** `bool`

### DM_ScrapCompileWithOptions

*No description yet.*

```csharp
bool DM_ScrapCompileWithOptions(bool argForceCompile, string argOptions);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argForceCompile` | `bool` | value |
| `argOptions` | `string` | value |

**Returns:** `bool`

### DM_ServerDocument

*No description yet.*

```csharp
IServerDocument DM_ServerDocument();
```

**Returns:** [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_SetItemRevisionGUID

*No description yet.*

```csharp
void DM_SetItemRevisionGUID(string argS);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argS` | `string` | value |

**Returns:** nothing (`void`)

### DM_SheetSizeX

*No description yet.*

```csharp
int DM_SheetSizeX();
```

**Returns:** `int`

### DM_SheetSizey

*No description yet.*

```csharp
int DM_SheetSizey();
```

**Returns:** `int`

### DM_SheetSymbolCount

The method returns the number of sheet symbols from this document. Use this SheetSymbol count in conjunction with the [`DM_SheetSymbols`](#dm_sheetsymbols)(Index) to go through each sheet symbol object.

```csharp
int DM_SheetSymbolCount();
```

**Returns:** `int`

### DM_SheetSymbols

The method returns an indexed sheet symbol associated with this document.

```csharp
ISheetSymbol DM_SheetSymbols(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [ISheetSymbol](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISheetSymbol.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_SignalManager

The method returns the signal manager interface.

```csharp
ISignalManager DM_SignalManager();
```

**Returns:** [ISignalManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISignalManager.md)

Extension method of `IDocumentHelper` (`using EDP;`).

**See also:** [ISignalManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISignalManager.md)

### DM_SmartLoad

*No description yet.*

```csharp
bool DM_SmartLoad();
```

**Returns:** `bool`

### DM_SpatialAnalysis

*No description yet.*

```csharp
bool DM_SpatialAnalysis(bool argForce, bool argllowAbort, bool argbortOnMouseMove);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argForce` | `bool` | value |
| `argllowAbort` | `bool` | value |
| `argbortOnMouseMove` | `bool` | value |

**Returns:** `bool`

### DM_SpatialAnalysisForTest

*No description yet.*

```csharp
int DM_SpatialAnalysisForTest();
```

**Returns:** `int`

### DM_TextFrameCount

The method returns the number of text frame objects from this document. Use this TextFrame count in conjunction with the [`DM_TextFrames`](#dm_textframes)(Index) to go through each sheet symbol object

```csharp
int DM_TextFrameCount();
```

**Returns:** `int`

### DM_TextFrames

The method returns an indexed textframe object associated with this document.

```csharp
ITextFrame DM_TextFrames(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [ITextFrame](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ITextFrame.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_UniqueComponentCount

The method returns the number of unique components according to the library (ies) they are placed from. A duplicate of components of the same component kind is counted as one (1). Use this in conjunction with the [`DM_UniqueComponents`](#dm_uniquecomponents)(Index) method to go through each unique component object.

```csharp
int DM_UniqueComponentCount();
```

**Returns:** `int`

### DM_UniqueComponents

The method returns the indexed unique component instance from this document. This method is to be used in conjunction with the [`DM_UniqueComponentCount`](#dm_uniquecomponentcount) method.

```csharp
IComponent DM_UniqueComponents(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponent.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_UniquePartCount

The method denotes the number of unique parts from this document. Duplicates of the same part kind are only returned as a count of one (1).

```csharp
int DM_UniquePartCount();
```

**Returns:** `int`

### DM_UniqueParts

The method returns an indexed unique part associated with this document. Note, if multiple instances of the same part exist, then only one of these parts will be recognized.

```csharp
IPart DM_UniqueParts(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IPart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IPart.md)

Extension method of `IDocumentHelper` (`using EDP;`).

### DM_UpdateDateModified

The method sets the modified date for this document.

```csharp
void DM_UpdateDateModified();
```

**Returns:** nothing (`void`)

### DM_VHDLEntities

The method returns the indexed VHDL entity instance from this document. Use this in conjunction with the [`DM_VHDLEntityCount`](#dm_vhdlentitycount) method.

```csharp
IVHDLEntity DM_VHDLEntities(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IVHDLEntity](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IVHDLEntity.md)

Extension method of `IDocumentHelper` (`using EDP;`).

**See also:** [IDocument.DM_VHDLEntityCount](#dm_vhdlentitycount)

### DM_VHDLEntityCount

The method denotes the number of VHDL entities from this document. Use this VHDL Entity count in conjunction with the [`DM_VHDLEntities`](#dm_vhdlentities)(Index) to go through each VHDL entity.

```csharp
int DM_VHDLEntityCount();
```

**Returns:** `int`

**See also:** [IDocument.DM_VHDLEntities](#dm_vhdlentities)

## Inherited members

- From [IDMObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md): [DM_CalculateParameterValue](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_calculateparametervalue), [DM_CurrentSheetInstanceNumber](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_currentsheetinstancenumber), [DM_FullCrossProbeString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_fullcrossprobestring), [DM_GeneralField](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_generalfield), [DM_GetVCSProject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_getvcsproject), [DM_ImageIndex](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_imageindex), [DM_IsFormulaString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_isformulastring), [DM_IsInferredObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_isinferredobject), [DM_LocationString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_locationstring), [DM_LocationX](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_locationx), [DM_LocationY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_locationy), [DM_LongDescriptorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_longdescriptorstring), [DM_NetIndex_Flat](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_netindex_flat), [DM_NetIndex_Sheet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_netindex_sheet), [DM_NetIndex_SubNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_netindex_subnet), [DM_ObjectKindString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_objectkindstring), [DM_ObjectKindStringForCrossProbe](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_objectkindstringforcrossprobe), [DM_OwnerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_ownerdocument), [DM_OwnerDocumentFullPath](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_ownerdocumentfullpath), [DM_OwnerDocumentName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_ownerdocumentname), [DM_ParameterCount](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_parametercount), [DM_Parameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_parameters), [DM_PcbHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_pcbhandle), [DM_PCBObjectHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_pcbobjecthandle), [DM_PCBObjectInterface](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_pcbobjectinterface), [DM_PrimaryCrossProbeString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_primarycrossprobestring), [DM_SchHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_schhandle), [DM_SCHObjectHandle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_schobjecthandle), [DM_SCHObjectInterface](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_schobjectinterface), [DM_SecondaryCrossProbeString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_secondarycrossprobestring), [DM_SetVCSProject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_setvcsproject), [DM_SheetIndex_Logical](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_sheetindex_logical), [DM_SheetIndex_Physical](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_sheetindex_physical), [DM_ShortDescriptorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_shortdescriptorstring), [DM_ValidForNavigation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_validfornavigation), [DM_VHDLEntity](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_vhdlentity)

## Returned by

[IDMObject.DM_OwnerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDMObject.md#dm_ownerdocument), [IDocumentStructure.DM_GetDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocumentStructure.md#dm_getdocument), [IDocumentStructure.DM_GetSourceDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocumentStructure.md#dm_getsourcedocument), [IPart.DM_ChildProjectSheet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IPart.md#dm_childprojectsheet), [IPart.DM_LogicalOwnerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IPart.md#dm_logicalownerdocument), [IProject.DM_DocumentFlattened](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_documentflattened), [IProject.DM_GeneratedDocuments](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_generateddocuments), [IProject.DM_GetDocumentByDocumentId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_getdocumentbydocumentid), [IProject.DM_GetDocumentFromPath](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_getdocumentfrompath), [IProject.DM_GetScrapDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_getscrapdocument), [IProject.DM_LogicalDocuments](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_logicaldocuments), [IProject.DM_PhysicalDocuments](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_physicaldocuments), [IProject.DM_PrimaryImplementationDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_primaryimplementationdocument), [IProject.DM_TopLevelLogicalDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_toplevellogicaldocument), [IProject.DM_TopLevelPhysicalDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_toplevelphysicaldocument), [IProjectProperties.DM_DeviceSheets](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProjectProperties.md#dm_devicesheets), [IProjectProperties.DM_ProjectDocuments](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProjectProperties.md#dm_projectdocuments), [ISheetSymbol.DM_ChildSheet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ISheetSymbol.md#dm_childsheet), [IWorkspace.DM_FocusedDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IWorkspace.md#dm_focuseddocument), [IWorkspace.DM_GetDocumentFromPath](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IWorkspace.md#dm_getdocumentfrompath), [IWorkspace.DM_InstalledLibraries](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IWorkspace.md#dm_installedlibraries)

## Accepted by

[IBomManagerFactory.GetManagerForCompareDocuments](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBomManagerFactory.md#getmanagerforcomparedocuments), [IBomManagerFactory.GetManagerForDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBomManagerFactory.md#getmanagerfordocument), [IBomManagerFactory.GetManagerForDocumentPcb](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBomManagerFactory.md#getmanagerfordocumentpcb), [IBomManagerFactory.GetManagerForProjectPcb](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBomManagerFactory.md#getmanagerforprojectpcb), [ICMP_DocumentComparer.Compare](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ICMP_DocumentComparer.md#compare), [ICMP_PCBChangesApplier.ApplyChanges](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ICMP_PCBChangesApplier.md#applychanges), [ICMP_PCBChangesApplier.ApplyChangesWithCallback](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ICMP_PCBChangesApplier.md#applychangeswithcallback), [ICMP_PCBObjectModelImporter.ImportFromPCBDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/ICMP_PCBObjectModelImporter.md#importfrompcbdocument), [IChangeManager.DM_CreateECO_SwapPin](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IChangeManager.md#dm_createeco_swappin)

## Examples

Used in the SDK examples: [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L52), [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/Commands.cs#L25), [Extension_AddVariant](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_AddVariant/Source%20Code/Commands.cs#L56), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/BomManager.cs#L31), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/Commands.cs#L66), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/IBomManager.cs#L16), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/SchemaBom.cs#L27), [Extension_CreateVariantComponent](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateVariantComponent/Source%20Code/Commands.cs#L53), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L34), [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L41), [Extension_TestPortHarnessDev](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_TestPortHarnessDev/Source%20Code/Commands.cs#L52).
