
# IPart interface

The `IPart` interface is the interface of an existing schematic part on a Schematic sheet. A part object is "part" of a component, that is, a multi-part component consists of part objects. For example a multiple gate integrated circuit has duplicate gates, and that a component represents the multi-part gate and a part represents the gate itself.

```csharp
public interface IPart : IDMObject
```

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

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

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

## Remarks

An equivalent component object representation is the [`ISch_Component`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md) class in Schematic API. The [`ISch_Component`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md) interface represents a component that can contain links to different model implementations such as PCB, Signal Integrity and Simulation models. Only one model of a particular model type (PCB footprint, SIM, SI, EDIF Macro and VHDL) can be enabled as the currently linked model, at any one time.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [DM_AddConfigurationParameters](#dm_addconfigurationparameters) | `void` | The method adds configuration parameters to this part object. |
| [DM_AssignedDesignator](#dm_assigneddesignator) | `string` | The method denotes the assigned designator for this part which is equivalent to the [`DM_CalculatedDesignator`](#dm_calculateddesignator) method. |
| [DM_CalculatedDesignator](#dm_calculateddesignator) | `string` | The method denotes the system compiled designator for this part. |
| [DM_CenterLocationX](#dm_centerlocationx) | `int` | The method returns the central location X of the designator associated with this component. |
| [DM_CenterLocationY](#dm_centerlocationy) | `int` | The method returns the central location Y of the designator associated with this component. |
| [DM_ChannelOffset](#dm_channeloffset) | `int` | The offset represents which part is offset in relation to the reference channel and the associated channels are also affected. |
| [DM_ChildProjectSheet](#dm_childprojectsheet) | [IDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md) | The method denotes the [`IDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md) interface representing the child project sheet associated with this part. |
| [DM_ChildVHDLEntity](#dm_childvhdlentity) | `string` | The method returns the Child VHDL entity string representing the VHDL document that the part (component) is linked to. |
| [DM_Comment](#dm_comment) | `string` | The method denotes the comment string for this part. |
| [DM_ComponentKind](#dm_componentkind) | [TComponentKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/TComponentKind.md) | The method denotes the component kind that this part is represented as. |
| [DM_ConfigurationParameters](#dm_configurationparameters) | `string` |  |
| [DM_ConfiguratorName](#dm_configuratorname) | `string` |  |
| [DM_CurrentImplementation](#dm_currentimplementation) | [IComponentImplementation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponentImplementation.md) | The method returns the current implementation which is usually a PCB footprint. |
| [DM_Description](#dm_description) | `string` | The method denotes the description of the reference link to a source component or as a device name. |
| [DM_DesignatorLocationX](#dm_designatorlocationx) | `int` | The method returns the location X of the designator associated with this component. |
| [DM_DesignatorLocationY](#dm_designatorlocationy) | `int` | The method returns the location Y of the designator associated with this component. |
| [DM_DesignatorLocked](#dm_designatorlocked) | `bool` | The method denotes whether or not the designator string is locked (unmoveable). |
| [DM_DisplayMode](#dm_displaymode) | `byte` | The method Denotes one of the 255 display modes. |
| [DM_FirstPinLocationX](#dm_firstpinlocationx) | `int` | The method denotes the reference X location of the first pin of a part object. |
| [DM_FirstPinLocationY](#dm_firstpinlocationy) | `int` | The method denotes the reference Y location of the first pin of a part object. |
| [DM_Footprint](#dm_footprint) | `string` | The method denotes the footprint string that this part is associated with. |
| [DM_FullLogicalDesignator](#dm_fulllogicaldesignator) | `string` | The method denotes the full logical designator which includes the part designator and part id information. |
| [DM_FullLogicalDesignatorForDisplay](#dm_fulllogicaldesignatorfordisplay) | `string` |  |
| [DM_FullPhysicalDesignator](#dm_fullphysicaldesignator) | `string` | The method denotes the full physical designator of a part which includes the calculated designator and the part id information on compiled schematic sheets. |
| [DM_FullPhysicalDesignatorForDisplay](#dm_fullphysicaldesignatorfordisplay) | `string` |  |
| [DM_Height](#dm_height) | `int` | The method denotes the height property of the part object. |
| [DM_ImplementationCount](#dm_implementationcount) | `int` | The method returns the number of implementations of this schematic component. |
| [DM_Implementations](#dm_implementations) | [IComponentImplementation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponentImplementation.md) | The method returns the particular [`IComponentImplementation`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponentImplementation.md) for the specified indexed implementations of a Schematic component. |
| [DM_InstanceCount](#dm_instancecount) | `int` | The method returns the number of instances of this part. |
| [DM_Layer](#dm_layer) | `string` | The method denotes which layer this part is on. |
| [DM_LibraryReference](#dm_libraryreference) | `string` | The method denotes the name of the component from the library |
| [DM_LogicalDesignator](#dm_logicaldesignator) | `string` | The method denotes the logical designator of this part on a schematic sheet. |
| [DM_LogicalOwnerDocument](#dm_logicalownerdocument) | [IDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md) | The method denotes the [`IDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md) representing the logical owner document that this part is associated to a schematic component. |
| [DM_MaxPartCount](#dm_maxpartcount) | `int` | The method returns the maximum part count for this part object. |
| [DM_NewDesignator](#dm_newdesignator) | `string` | The method denotes the new designator for this part. |
| [DM_NewPartId](#dm_newpartid) | `int` | The method denotes the new part id for this part. |
| [DM_PartID](#dm_partid) | `int` | The method denotes the PartID for this part. |
| [DM_PartIdLocked](#dm_partidlocked) | `bool` | The method denotes whether or not the part id string is locked (unmoveable). |
| [DM_PartType](#dm_parttype) | `string` | The method denotes the part type for this part. |
| [DM_PhysicalDesignator](#dm_physicaldesignator) | `string` | The method denotes the physical designator string of a part. |
| [DM_PinCount](#dm_pincount) | `int` | The method returns the number of pins for this schematic component. |
| [DM_Pins](#dm_pins) | [INetItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md) | The method returns the [`INetItem`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md) interface for the specified indexed Pin of a Schematic Component. |
| [DM_ReferenceLocationX](#dm_referencelocationx) | `int` | The method returns the reference location X of the designator associated with this component. |
| [DM_ReferenceLocationY](#dm_referencelocationy) | `int` | The method returns the reference location Y of the designator associated with this component. |
| [DM_Rotation](#dm_rotation) | `double` | The method denotes the rotation property of a part (orientation) in degrees. |
| [DM_SetExternalPartHandle](#dm_setexternalparthandle) | `void` |  |
| [DM_SourceDesignator](#dm_sourcedesignator) | `string` | The method denotes the current designator of the source component from the corresponding schematic. |
| [DM_SourceHierarchicalPath](#dm_sourcehierarchicalpath) | `string` | The method denotes the source reference path to the PCB component. |
| [DM_SourceLibraryName](#dm_sourcelibraryname) | `string` | The method denotes the name of the source library where the schematic component and its associated part come from. |
| [DM_SourceUniqueId](#dm_sourceuniqueid) | `string` | Unique IDs (UIDs) are used to match each schematic component to the corresponding PCB component. |
| [DM_SubProject](#dm_subproject) | `string` | The method returns the sub project string of this part. |
| [DM_UniqueId](#dm_uniqueid) | `string` | The method returns the Unique ID string for this component so this component can be synchronized on the source document and the primary implementation document (PCB). |
| [DM_UniqueIdName](#dm_uniqueidname) | `string` | The method returns the unique name portion of the Unique ID for this component. |
| [DM_UniqueIdPath](#dm_uniqueidpath) | `string` | The method returns the unique path portion of the Unique ID for this component. |

### DM_AddConfigurationParameters

The method adds configuration parameters to this part object.

```csharp
void DM_AddConfigurationParameters();
```

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

### DM_AssignedDesignator

The method denotes the assigned designator for this part which is equivalent to the [`DM_CalculatedDesignator`](#dm_calculateddesignator) method. The `DM_AssignedDesignator` method returns a string that contains the designator and multi channel information but does not include multi part id information.

```csharp
string DM_AssignedDesignator();
```

**Returns:** `string`

This method returns the calculated designator string which contains the hierarchical path and the logical designator strings. Only when a project is compiled and up to date, designators of parts are calculated based on the compiled documents they are on.

**See also:** [IPart.DM_CalculatedDesignator](#dm_calculateddesignator)

### DM_CalculatedDesignator

The method denotes the system compiled designator for this part. The assigned designator for this part is equivalent to the `DM_CalculatedDesignator` method. A `DM_CalculatedDesignator` method returns a string that contains the designator and multi channel information but does not include multi part information.

```csharp
string DM_CalculatedDesignator();
```

**Returns:** `string`

This method returns the calculated designator string which contains the hierarchical path and the logical designator strings. Only when a project is compiled and up to date, designators of parts are calculated based on the compiled documents they are on.

### DM_CenterLocationX

The method returns the central location X of the designator associated with this component.

```csharp
int DM_CenterLocationX();
```

**Returns:** `int`

### DM_CenterLocationY

The method returns the central location Y of the designator associated with this component.

```csharp
int DM_CenterLocationY();
```

**Returns:** `int`

### DM_ChannelOffset

The offset represents which part is offset in relation to the reference channel and the associated channels are also affected. The method returns the ChannelOffset value.

```csharp
int DM_ChannelOffset();
```

**Returns:** `int`

### DM_ChildProjectSheet

The method denotes the [`IDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md) interface representing the child project sheet associated with this part.

```csharp
IDocument DM_ChildProjectSheet();
```

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

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

### DM_ChildVHDLEntity

The method returns the Child VHDL entity string representing the VHDL document that the part (component) is linked to.

```csharp
string DM_ChildVHDLEntity();
```

**Returns:** `string`

### DM_Comment

The method denotes the comment string for this part.

```csharp
string DM_Comment();
```

**Returns:** `string`

### DM_ComponentKind

The method denotes the component kind that this part is represented as. in the BOM and are maintained during synchronization.

```csharp
TComponentKind DM_ComponentKind();
```

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

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

A component kind can be one of the following:

eComponentKind_Standard : These components possess standard electrical properties, are always synchronized and are the type most commonly used on a board.

eComponentKind_Mechanical: These components do not have electrical properties and will appear in the BOM. They are synchronized if the same components exist on both the Schematic and PCB documents. An example is a heatsink.

eComponentKind_Graphical: These components are not used during synchronization or checked for electrical errors. These components are used, for example, when adding company logos to documents.

eComponentKind_NetTie_BOM: These components short two or more different nets for routing and these components will appear.

eComponentKind_NetTie_NoBOM: These components short two or more different nets for routing and these components will NOT appear in the BOM and are maintained during synchronization.

unit.

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

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

### DM_ConfigurationParameters

*No description yet.*

```csharp
string DM_ConfigurationParameters();
```

**Returns:** `string`

### DM_ConfiguratorName

*No description yet.*

```csharp
string DM_ConfiguratorName();
```

**Returns:** `string`

### DM_CurrentImplementation

The method returns the current implementation which is usually a PCB footprint.

```csharp
IComponentImplementation DM_CurrentImplementation(string argType);
```

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

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

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

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

### DM_Description

The method denotes the description of the reference link to a source component or as a device name.

```csharp
string DM_Description();
```

**Returns:** `string`

### DM_DesignatorLocationX

The method returns the location X of the designator associated with this component.

```csharp
int DM_DesignatorLocationX();
```

**Returns:** `int`

### DM_DesignatorLocationY

The method returns the location Y of the designator associated with this component.

```csharp
int DM_DesignatorLocationY();
```

**Returns:** `int`

### DM_DesignatorLocked

The method denotes whether or not the designator string is locked (unmoveable).

```csharp
bool DM_DesignatorLocked();
```

**Returns:** `bool`

### DM_DisplayMode

The method Denotes one of the 255 display modes. The mode 0 is the normal graphical display for this part object. The other 254 modes are alternative graphical displays of this same part object.

```csharp
byte DM_DisplayMode();
```

**Returns:** `byte`

### DM_FirstPinLocationX

The method denotes the reference X location of the first pin of a part object.

```csharp
int DM_FirstPinLocationX();
```

**Returns:** `int`

### DM_FirstPinLocationY

The method denotes the reference Y location of the first pin of a part object.

```csharp
int DM_FirstPinLocationY();
```

**Returns:** `int`

### DM_Footprint

The method denotes the footprint string that this part is associated with.

```csharp
string DM_Footprint();
```

**Returns:** `string`

### DM_FullLogicalDesignator

The method denotes the full logical designator which includes the part designator and part id information.

```csharp
string DM_FullLogicalDesignator();
```

**Returns:** `string`

### DM_FullLogicalDesignatorForDisplay

*No description yet.*

```csharp
string DM_FullLogicalDesignatorForDisplay();
```

**Returns:** `string`

### DM_FullPhysicalDesignator

The method denotes the full physical designator of a part which includes the calculated designator and the part id information on compiled schematic sheets.

```csharp
string DM_FullPhysicalDesignator();
```

**Returns:** `string`

### DM_FullPhysicalDesignatorForDisplay

*No description yet.*

```csharp
string DM_FullPhysicalDesignatorForDisplay();
```

**Returns:** `string`

### DM_Height

The method denotes the height property of the part object. A part object is "part" of a multi-part component.

```csharp
int DM_Height();
```

**Returns:** `int`

### DM_ImplementationCount

The method returns the number of implementations of this schematic component.

```csharp
int DM_ImplementationCount();
```

**Returns:** `int`

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

### DM_Implementations

The method returns the particular [`IComponentImplementation`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponentImplementation.md) for the specified indexed implementations of a Schematic component.

```csharp
IComponentImplementation DM_Implementations(int argIndex);
```

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

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

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

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

### DM_InstanceCount

The method returns the number of instances of this part.

```csharp
int DM_InstanceCount();
```

**Returns:** `int`

### DM_Layer

The method denotes which layer this part is on.

```csharp
string DM_Layer();
```

**Returns:** `string`

### DM_LibraryReference

The method denotes the name of the component from the library

```csharp
string DM_LibraryReference();
```

**Returns:** `string`

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

### DM_LogicalDesignator

The method denotes the logical designator of this part on a schematic sheet.

```csharp
string DM_LogicalDesignator();
```

**Returns:** `string`

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

### DM_LogicalOwnerDocument

The method denotes the [`IDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md) representing the logical owner document that this part is associated to a schematic component.

```csharp
IDocument DM_LogicalOwnerDocument();
```

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

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

### DM_MaxPartCount

The method returns the maximum part count for this part object.

```csharp
int DM_MaxPartCount();
```

**Returns:** `int`

### DM_NewDesignator

The method denotes the new designator for this part.

```csharp
string DM_NewDesignator();
```

**Returns:** `string`

### DM_NewPartId

The method denotes the new part id for this part.

```csharp
int DM_NewPartId();
```

**Returns:** `int`

### DM_PartID

The method denotes the PartID for this part. A multi-part component references each part by its PartID, for example a four part component has four unique PartIDs.

```csharp
int DM_PartID();
```

**Returns:** `int`

### DM_PartIdLocked

The method denotes whether or not the part id string is locked (unmoveable).

```csharp
bool DM_PartIdLocked();
```

**Returns:** `bool`

### DM_PartType

The method denotes the part type for this part. (Footprint type).

```csharp
string DM_PartType();
```

**Returns:** `string`

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

### DM_PhysicalDesignator

The method denotes the physical designator string of a part. Note, a logical designator doesn't include the channel instance string.

```csharp
string DM_PhysicalDesignator();
```

**Returns:** `string`

**Examples:** [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/ProjectComponent.cs#L54), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L39)

### DM_PinCount

The method returns the number of pins for this schematic component.

```csharp
int DM_PinCount();
```

**Returns:** `int`

### DM_Pins

The method returns the [`INetItem`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md) interface for the specified indexed Pin of a Schematic Component.

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

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

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

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

### DM_ReferenceLocationX

The method returns the reference location X of the designator associated with this component.

```csharp
int DM_ReferenceLocationX();
```

**Returns:** `int`

### DM_ReferenceLocationY

The method returns the reference location Y of the designator associated with this component.

```csharp
int DM_ReferenceLocationY();
```

**Returns:** `int`

### DM_Rotation

The method denotes the rotation property of a part (orientation) in degrees.

```csharp
double DM_Rotation();
```

**Returns:** `double`

### DM_SetExternalPartHandle

*No description yet.*

```csharp
void DM_SetExternalPartHandle(string argPCBComponentHandle);
```

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

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

### DM_SourceDesignator

The method denotes the current designator of the source component from the corresponding schematic.

```csharp
string DM_SourceDesignator();
```

**Returns:** `string`

### DM_SourceHierarchicalPath

The method denotes the source reference path to the PCB component. The path can be multi level depending on whether it is a multi channel or a bormal design. When a schematic is transferred to a blank PCB using the Update command, the source reference links for each PCB footprint is populated with source library path names.

```csharp
string DM_SourceHierarchicalPath();
```

**Returns:** `string`

### DM_SourceLibraryName

The method denotes the name of the source library where the schematic component and its associated part come from.

```csharp
string DM_SourceLibraryName();
```

**Returns:** `string`

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

### DM_SourceUniqueId

Unique IDs (UIDs) are used to match each schematic component to the corresponding PCB component. When a schematic is transferred to a blank PCB using the Update command, the source reference links for each PCB footprint is populated with source library pathnames. The UID is a system generated value that uniquely identifies the source component.

```csharp
string DM_SourceUniqueId();
```

**Returns:** `string`

The method returns the UniqueID for this part.

### DM_SubProject

The method returns the sub project string of this part. A part can represent a schematic sheet, like a sheet symbol.

```csharp
string DM_SubProject();
```

**Returns:** `string`

### DM_UniqueId

The method returns the Unique ID string for this component so this component can be synchronized on the source document and the primary implementation document (PCB).

```csharp
string DM_UniqueId();
```

**Returns:** `string`

The method denotes the Unique ID for this part. Unique IDs are used in Schematic - PCB documents synchronization so that Sch components and its corresponding PCB components are in sync.

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

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

### DM_UniqueIdName

The method returns the unique name portion of the Unique ID for this component.

```csharp
string DM_UniqueIdName();
```

**Returns:** `string`

The method denotes the Unique ID name of this part.

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

### DM_UniqueIdPath

The method returns the unique path portion of the Unique ID for this component. Includes the back slash.

```csharp
string DM_UniqueIdPath();
```

**Returns:** `string`

The method denotes the Unique ID path of this part (includes the back slash).

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

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

[IComponent.DM_SubParts](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponent.md#dm_subparts), [IComponentImplementation.DM_Part](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IComponentImplementation.md#dm_part), [IDocument.DM_Parts](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md#dm_parts), [IDocument.DM_UniqueParts](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md#dm_uniqueparts), [IInstance.DM_Part](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IInstance.md#dm_part), [INetItem.DM_Part](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/INetItem.md#dm_part)

## Accepted by

[IHighlightedDocument.HL_Register_Part](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IHighlightedDocument.md#hl_register_part), [IProjectProperties.DM_DesignatorRecord_ECOAnnotatePhysicalComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProjectProperties.md#dm_designatorrecord_ecoannotatephysicalcomponent), [IComponentConfigurator.GetParametersFromPart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IComponentConfigurator.md#getparametersfrompart), [IComponentConfigurator.IsChildCoreUsedByPart](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IComponentConfigurator.md#ischildcoreusedbypart)

## Examples

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