
# IComponentDefinition interface

*No description yet.*

```csharp
public interface IComponentDefinition : IAbstractItem
```

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

**Inherits:** [IAbstractObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractObject.md) → [IGloballyIdentifiedObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IGloballyIdentifiedObject.md) → [IAbstractItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md)

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [ItemHRID](#itemhrid) | `string` | get; set |  |
| [OriginalPartChoiceDatas](#originalpartchoicedatas) | [IPartChoiceDataList](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IPartChoiceDataList.md) | get; set |  |
| [OriginalPartChoiceListLoaded](#originalpartchoicelistloaded) | `bool` | get; set |  |
| [PartChoiceDatas](#partchoicedatas) | [IPartChoiceDataList](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IPartChoiceDataList.md) | get; set |  |
| [PartChoiceListChanged](#partchoicelistchanged) | `bool` | get; set |  |
| [PartChoiceListChoice](#partchoicelistchoice) | [IPartChoiceListChoice](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IPartChoiceListChoice.md) | get; set |  |
| [ReservationResult](#reservationresult) | [TReservationStatus](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TReservationStatus.md) | get; set |  |
| [RevisionGUID](#revisionguid) | `string` | get; set |  |
| [RevisionId](#revisionid) | `string` | get; set |  |
| [SourceItemGUID](#sourceitemguid) | `string` | get; set |  |
| [SourceRevisionGUID](#sourcerevisionguid) | `string` | get; set |  |
| [SourceVaultGUID](#sourcevaultguid) | `string` | get; set |  |

### ItemHRID

*No description yet.*

```csharp
string GetItemHRID();
void SetItemHRID(string argValue);
```

**Type:** `string` · **Access:** read/write

### OriginalPartChoiceDatas

*No description yet.*

```csharp
IPartChoiceDataList GetOriginalPartChoiceDatas();
void SetOriginalPartChoiceDatas(IPartChoiceDataList argValue);
```

**Type:** [IPartChoiceDataList](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IPartChoiceDataList.md) · **Access:** read/write

The accessors are extension methods of `IComponentDefinitionHelper` (`using ComponentLib;`).

### OriginalPartChoiceListLoaded

*No description yet.*

```csharp
bool GetOriginalPartChoiceListLoaded();
void SetOriginalPartChoiceListLoaded(bool argValue);
```

**Type:** `bool` · **Access:** read/write

### PartChoiceDatas

*No description yet.*

```csharp
IPartChoiceDataList GetPartChoiceDatas();
void SetPartChoiceDatas(IPartChoiceDataList argValue);
```

**Type:** [IPartChoiceDataList](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IPartChoiceDataList.md) · **Access:** read/write

The accessors are extension methods of `IComponentDefinitionHelper` (`using ComponentLib;`).

### PartChoiceListChanged

*No description yet.*

```csharp
bool GetPartChoiceListChanged();
void SetPartChoiceListChanged(bool argValue);
```

**Type:** `bool` · **Access:** read/write

### PartChoiceListChoice

*No description yet.*

```csharp
IPartChoiceListChoice GetPartChoiceListChoice();
void SetPartChoiceListChoice(IPartChoiceListChoice argValue);
```

**Type:** [IPartChoiceListChoice](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IPartChoiceListChoice.md) · **Access:** read/write

The accessors are extension methods of `IComponentDefinitionHelper` (`using ComponentLib;`).

### ReservationResult

*No description yet.*

```csharp
TReservationStatus GetReservationResult();
void SetReservationResult(TReservationStatus argValue);
```

**Type:** [TReservationStatus](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TReservationStatus.md) · **Access:** read/write

The accessors are extension methods of `IComponentDefinitionHelper` (`using ComponentLib;`).

### RevisionGUID

*No description yet.*

```csharp
string GetRevisionGUID();
void SetRevisionGUID(string argValue);
```

**Type:** `string` · **Access:** read/write

### RevisionId

*No description yet.*

```csharp
string GetRevisionId();
void SetRevisionId(string argValue);
```

**Type:** `string` · **Access:** read/write

### SourceItemGUID

*No description yet.*

```csharp
string GetSourceItemGUID();
void SetSourceItemGUID(string argValue);
```

**Type:** `string` · **Access:** read/write

### SourceRevisionGUID

*No description yet.*

```csharp
string GetSourceRevisionGUID();
void SetSourceRevisionGUID(string argValue);
```

**Type:** `string` · **Access:** read/write

### SourceVaultGUID

*No description yet.*

```csharp
string GetSourceVaultGUID();
void SetSourceVaultGUID(string argValue);
```

**Type:** `string` · **Access:** read/write

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [GetCanChangePartChoices](#getcanchangepartchoices) | `bool` |  |
| [GetItemNamingScheme](#getitemnamingscheme) | `string` |  |
| [PartChoiceRankChanged](#partchoicerankchanged) | `void` |  |
| [SetDefaultValueFromTemplate](#setdefaultvaluefromtemplate) | `void` |  |

### GetCanChangePartChoices

*No description yet.*

```csharp
bool GetCanChangePartChoices();
```

**Returns:** `bool`

### GetItemNamingScheme

*No description yet.*

```csharp
string GetItemNamingScheme();
```

**Returns:** `string`

### PartChoiceRankChanged

*No description yet.*

```csharp
void PartChoiceRankChanged(IPartChoiceData argPartChoiceData, int argOldValue, int argNewValue);
void PartChoiceRankChanged(object argPartChoiceData, int argOldValue, int argNewValue);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPartChoiceData` | [IPartChoiceData](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IPartChoiceData.md) | value |
| `argOldValue` | `int` | value |
| `argNewValue` | `int` | value |

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

The first overload is an extension method of `IComponentDefinitionHelper` (`using ComponentLib;`) with typed parameters; the second is declared by the interface.

### SetDefaultValueFromTemplate

*No description yet.*

```csharp
void SetDefaultValueFromTemplate();
```

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

## Inherited members

- From [IAbstractItem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md): [ComponentTypes](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#componenttypes), [FindParameterByName](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#findparameterbyname), [GetID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#getid), [ModelChoices](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#modelchoices), [Parameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#parameters), [ParentGroup](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#parentgroup), [SetId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#setid), [StateIndex](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IAbstractItem.md#stateindex)
- From [IGloballyIdentifiedObject](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IGloballyIdentifiedObject.md): [GUID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IGloballyIdentifiedObject.md#guid)

## Returned by

[IComponentDefinitionList.Get](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentDefinitionList.md#get), [IComponentLibraryDocument.CreateComponentDefinition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentLibraryDocument.md#createcomponentdefinition), [IComponentLibraryManager.CreateComponentDefinition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentLibraryManager.md#createcomponentdefinition), [IComponentPinMappingEditor.GetComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentPinMappingEditor.md#getcomponent)

## Accepted by

[IComponentPinMappingEditor.SetComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentPinMappingEditor.md#setcomponent)
