
# IModelEditor interface

The `IModelEditor` interface represents the Model Editor hosted by a server which normally has a dialog that displays data about the model properties in Altium Designer. This `IModelEditor` interface is the front end for the actual implementation of a Model Editor for a specific model domain (PCB, Signal Integrity and other model types).

```csharp
public interface IModelEditor
```

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

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [CreateDatafile](#createdatafile) | [IModelDatafile](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelDatafile.md) |  |
| [CreateServerModel](#createservermodel) | [IServerModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IServerModel.md) |  |
| [CrossProbeEntity](#crossprobeentity) | `void` |  |
| [DrawModel](#drawmodel) | `void` |  |
| [DrawModel_FromModel](#drawmodel_frommodel) | `bool` |  |
| [DrawModel_FromSchImpl](#drawmodel_fromschimpl) | `bool` |  |
| [DrawModel_FromStepFile](#drawmodel_fromstepfile) | `bool` |  |
| [DrawModelToMetaFile](#drawmodeltometafile) | `void` |  |
| [EditModel](#editmodel) | `bool` |  |
| [EditModel_1](#editmodel_1) | `bool` |  |
| [EditModelMap](#editmodelmap) | `bool` |  |
| [FinishedLibraryCompile](#finishedlibrarycompile) | `void` |  |
| [GetEntityParameters](#getentityparameters) | `string` |  |
| [GetExternalForm](#getexternalform) | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) |  |
| [PrepareModel](#preparemodel) | `bool` |  |
| [SetDefaultModelState](#setdefaultmodelstate) | `bool` |  |
| [StartingLibraryCompile](#startinglibrarycompile) | `void` |  |

### CreateDatafile

*No description yet.*

```csharp
IModelDatafile CreateDatafile(string argDatafilePath);
```

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

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

Extension method of `IModelEditorHelper` (`using SCH;`).

### CreateServerModel

*No description yet.*

```csharp
IServerModel CreateServerModel(IComponentImplementation argModel);
```

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

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

Extension method of `IModelEditorHelper` (`using SCH;`).

### CrossProbeEntity

*No description yet.*

```csharp
void CrossProbeEntity(string argEntityName, string argDatafilePath);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argEntityName` | `string` | value |
| `argDatafilePath` | `string` | value |

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

### DrawModel

*No description yet.*

```csharp
void DrawModel(IExternalForm argExternalForm, string argModelName, string argDatafilePath);
void DrawModel(object argExternalForm, string argModelName, string argDatafilePath);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argExternalForm` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | value |
| `argModelName` | `string` | value |
| `argDatafilePath` | `string` | value |

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

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

### DrawModel_FromModel

*No description yet.*

```csharp
bool DrawModel_FromModel(IExternalForm argExternalForm, IModel argModel);
bool DrawModel_FromModel(object argExternalForm, object argModel);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argExternalForm` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | value |
| `argModel` | [IModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModel.md) | value |

**Returns:** `bool`

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

### DrawModel_FromSchImpl

*No description yet.*

```csharp
bool DrawModel_FromSchImpl(IExternalForm argExternalForm, ISch_Component argSchComp, ISch_Implementation argSchImpl);
bool DrawModel_FromSchImpl(object argExternalForm, object argSchComp, object argSchImpl);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argExternalForm` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | value |
| `argSchComp` | [ISch_Component](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md) | value |
| `argSchImpl` | [ISch_Implementation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Implementation.md) | value |

**Returns:** `bool`

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

### DrawModel_FromStepFile

*No description yet.*

```csharp
bool DrawModel_FromStepFile(IExternalForm argExternalForm, string argStepFilePath);
bool DrawModel_FromStepFile(object argExternalForm, string argStepFilePath);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argExternalForm` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | value |
| `argStepFilePath` | `string` | value |

**Returns:** `bool`

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

### DrawModelToMetaFile

*No description yet.*

```csharp
void DrawModelToMetaFile(string argFileName, string argModelName, string argDatafilePath, TPaintColorMode argPaintColorMode, TPaintScaleMode argPaintScaleMode);
void DrawModelToMetaFile(string argFileName, string argModelName, string argDatafilePath, int argPaintColorMode, int argPaintScaleMode);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argFileName` | `string` | value |
| `argModelName` | `string` | value |
| `argDatafilePath` | `string` | value |
| `argPaintColorMode` | [TPaintColorMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TPaintColorMode.md) | value |
| `argPaintScaleMode` | [TPaintScaleMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TPaintScaleMode.md) | value |

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

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

### EditModel

*No description yet.*

```csharp
bool EditModel(ISch_Implementation argSchModel, ISch_Component argSchComp, TModelEditContext argContext);
bool EditModel(object argSchModel, object argSchComp, int argContext);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argSchModel` | [ISch_Implementation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Implementation.md) | value |
| `argSchComp` | [ISch_Component](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md) | value |
| `argContext` | [TModelEditContext](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TModelEditContext.md) | value |

**Returns:** `bool`

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

### EditModel_1

*No description yet.*

```csharp
bool EditModel_1(IModel argModel, IDItemRevision argDItemRevision, IAltiumLibrary argltiumLibrary);
bool EditModel_1(object argModel, object argDItemRevision, object argltiumLibrary);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argModel` | [IModel](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModel.md) | value |
| `argDItemRevision` | [IDItemRevision](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDItemRevision.md) | value |
| `argltiumLibrary` | [IAltiumLibrary](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IAltiumLibrary.md) | value |

**Returns:** `bool`

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

### EditModelMap

*No description yet.*

```csharp
bool EditModelMap(IULB_ItemRevision argModelRevision, IEDMS_Vault argVault, ISch_Component argSchComp, ref string argMapAsString, ref string argExcludedParts);
bool EditModelMap(object argModelRevision, object argVault, object argSchComp, ref string argMapAsString, ref string argExcludedParts);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argModelRevision` | [IULB_ItemRevision](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IULB_ItemRevision.md) | value |
| `argVault` | [IEDMS_Vault](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IEDMS_Vault.md) | value |
| `argSchComp` | [ISch_Component](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md) | value |
| `argMapAsString` | `string` | ref |
| `argExcludedParts` | `string` | ref |

**Returns:** `bool`

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

### FinishedLibraryCompile

*No description yet.*

```csharp
void FinishedLibraryCompile();
```

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

### GetEntityParameters

*No description yet.*

```csharp
string GetEntityParameters(string argEntityName, string argDatafilePath);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argEntityName` | `string` | value |
| `argDatafilePath` | `string` | value |

**Returns:** `string`

### GetExternalForm

*No description yet.*

```csharp
IExternalForm GetExternalForm();
```

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

Extension method of `IModelEditorHelper` (`using SCH;`).

### PrepareModel

*No description yet.*

```csharp
bool PrepareModel(IComponentImplementation argModel);
bool PrepareModel(object argModel);
```

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

**Returns:** `bool`

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

### SetDefaultModelState

*No description yet.*

```csharp
bool SetDefaultModelState(ISch_Implementation argSchModel, ISch_Component argSchComp, bool argIsLibrary);
bool SetDefaultModelState(object argSchModel, object argSchComp, bool argIsLibrary);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argSchModel` | [ISch_Implementation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Implementation.md) | value |
| `argSchComp` | [ISch_Component](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_Component.md) | value |
| `argIsLibrary` | `bool` | value |

**Returns:** `bool`

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

### StartingLibraryCompile

*No description yet.*

```csharp
void StartingLibraryCompile();
```

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

## Returned by

[IModelType.Editor](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IModelType.md#editor)
