
# IRequiredModel interface

*No description yet.*

```csharp
public interface IRequiredModel : IAbstractObject
```

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

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

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [DefaultModelLink](#defaultmodellink) | [IModelLink](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IModelLink.md) | get; set |  |
| [FromTemplate](#fromtemplate) | `bool` | get; set |  |
| [IsReadOnly](#isreadonly) | `bool` | get; set |  |
| [IsRequired](#isrequired) | `bool` | get; set |  |
| [ModelKind](#modelkind) | `string` | get; set |  |

### DefaultModelLink

*No description yet.*

```csharp
IModelLink GetDefaultModelLink();
void SetDefaultModelLink(IModelLink argValue);
```

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

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

### FromTemplate

*No description yet.*

```csharp
bool GetFromTemplate();
void SetFromTemplate(bool argValue);
```

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

### IsReadOnly

*No description yet.*

```csharp
bool GetIsReadOnly();
void SetIsReadOnly(bool argValue);
```

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

### IsRequired

*No description yet.*

```csharp
bool GetIsRequired();
void SetIsRequired(bool argValue);
```

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

### ModelKind

*No description yet.*

```csharp
string GetModelKind();
void SetModelKind(string argValue);
```

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [GetID](#getid) | `string` |  |
| [GetIsSystemModel](#getissystemmodel) | `bool` |  |
| [SetId](#setid) | `void` |  |

### GetID

*No description yet.*

```csharp
string GetID();
```

**Returns:** `string`

### GetIsSystemModel

*No description yet.*

```csharp
bool GetIsSystemModel();
```

**Returns:** `bool`

### SetId

*No description yet.*

```csharp
void SetId(string argValue);
```

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

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

## Returned by

[IComponentLibraryDocument.CreateRequiredModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentLibraryDocument.md#createrequiredmodel), [IComponentLibraryManager.CreateRequiredModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentLibraryManager.md#createrequiredmodel), [IModelChoice.RequiredModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IModelChoice.md#requiredmodel), [IRequiredModelList.AddForModelKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IRequiredModelList.md#addformodelkind), [IRequiredModelList.Find](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IRequiredModelList.md#find), [IRequiredModelList.FindOrCreate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IRequiredModelList.md#findorcreate), [IRequiredModelList.Get](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IRequiredModelList.md#get)

## Accepted by

[IRequiredModelList.Add](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IRequiredModelList.md#add)
