
# IServerDocument interface

The `IServerDocument` interface represents the document container. Each `IServerDocument` interface is a document container made up of views of the same kind.

```csharp
public interface IServerDocument
```

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

**Derived:** [IComponentLibraryDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib/IComponentLibraryDocument.md), [IReleasedItemDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IReleasedItemDocument.md), [IServerDocument2](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument2.md), [IHighlightedDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IHighlightedDocument.md), [IMBA2_SDK_Document](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IMBA2_SDK_Document.md), [IMBA_ServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IMBA_ServerDocument.md), [IPCB_PadViaLibraryDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_PadViaLibraryDocument.md)

## Remarks

A view can be a design document form or a panel form.

Every document editor server (encapsulated by the [`IServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) interface) that supports creation of documents will have a `IServerDocument` interface.

`IServerDocument` Methods and Properties Table

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [BeingClosed](#beingclosed) | `bool` | get; set | The `BeingClosed` property denotes that this design document is being closed before this design document can be successfully destroyed. |
| [FileModifiedDate](#filemodifieddate) | `double` | get; set | This method returns the date and time of the modified file. |
| [FileName](#filename) | `string` | get; set | The `FileName` property returns the filename for the server document (not the corresponding server panel). |
| [IsShown](#isshown) | `bool` | get; set | This property denotes whether or not this document is displayed in Altium Designer. |
| [Modified](#modified) | `bool` | get; set | The Modified property denotes whether this document has been modified or not, and can be taken as a "dirty" flag, that is a document has been modified and it has been marked dirty. |

### BeingClosed

The `BeingClosed` property denotes that this design document is being closed before this design document can be successfully destroyed. This property is a read only property. You can check the status of the document before you attempt to modify or update the document before it is being closed.

```csharp
bool GetBeingClosed();
void SetBeingClosed(bool argValue);
```

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

This property is supported by the `GetBeingClosed` and `SetBeingClosed` methods.

**See also:** [IServerDocument.GetCanClose](#getcanclose), [IServerDocument.Modified](#modified), [IServerDocument.FileName](#filename), [IServerDocument.DoFileSave](#dofilesave), [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### FileModifiedDate

This method returns the date and time of the modified file.

```csharp
double GetFileModifiedDate();
void SetFileModifiedDate(double argValue);
```

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

The method sets the modified date for the document if the document has been modified by an outside agent.

**See also:** [IServerDocument.Modified](#modified)

### FileName

The `FileName` property returns the filename for the server document (not the corresponding server panel). This property is a read-only property and is supported by the `GetFileName` method.

```csharp
string GetFileName();
string SetFileName(string argFileName);
```

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

Note a server document can be a document view or a panel view, and thus if it is a panel view, the `FileName` property is invalid.

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

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

### IsShown

This property denotes whether or not this document is displayed in Altium Designer. This property is supported by the `GetIsShown` and `SetIsShown` methods.

```csharp
bool GetIsShown();
void SetIsShown(bool argValue);
```

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

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

### Modified

The Modified property denotes whether this document has been modified or not, and can be taken as a "dirty" flag, that is a document has been modified and it has been marked dirty.

```csharp
bool GetModified();
void SetModified(bool argValue);
```

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

This property is supported by the `GetModified` and `SetModified` methods.

**Example:** Mark the document of the current view as modified.

```csharp
using DXP;

IClient client = DXP.GlobalVars.Client;
if (client == null)
    return;
// Get the current document view from the client.
IServerDocumentView view = client.GetCurrentView();
// Get the server document that owns the view.
IServerDocument serverDocument = view.GetOwnerDocument();
// Set the document dirty.
serverDocument.SetModified(true);
```

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

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [AcquireDataFileHandle](#acquiredatafilehandle) | `void` | For internal use only. |
| [AcquireFileOwnership](#acquirefileownership) | `void` | For internal use only. |
| [AddView](#addview) | `void` | This method adds a [`IServerDocumentView`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) object in the server document. |
| [CanCreateSnippet](#cancreatesnippet) | `bool` |  |
| [CanPlaceSnippet](#canplacesnippet) | `bool` |  |
| [CreateSnippetFile](#createsnippetfile) | `bool` |  |
| [DocumentDirectoryChanged](#documentdirectorychanged) | `void` |  |
| [DoFileLoad](#dofileload) | `bool` | This method allows the re-loading of the document. |
| [DoFileSave](#dofilesave) | `bool` | This method provides you an option to save the document in a different format if the document supported by the specific document editor provides the option of saving in a different format other than… |
| [DoSafeChangeFileNameAndSave](#dosafechangefilenameandsave) | `bool` | The method determines whether the current document can be saved with the new file name and new document type or not. |
| [DoSafeFileSave](#dosafefilesave) | `bool` | The method determines whether the document can be saved of specified document type safely. |
| [Focus](#focus) | `void` | The method forces the document to be the focussed document in Altium Designer. |
| [GetCanClose](#getcanclose) | `bool` | This method checks whether the document can be closed or not. |
| [GetContextHelpTopicName](#getcontexthelptopicname) | `string` | The `GetContextHelpTopicName` method retrieves the help topic name for the document. |
| [GetCount](#getcount) | `int` | The Count property returns the number of views (of the same type) in the `IServerDocument` container. |
| [GetDocumentModifiedDate](#getdocumentmodifieddate) | `double` |  |
| [GetKind](#getkind) | `string` | This method returns the Kind string for this document and this method is used for the Kind property. |
| [GetServerModule](#getservermodule) | [IServerModule](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) | The [`ServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ServerModule.md) is a read-only property which returns the [`IServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) interface that the document is associated with. |
| [GetSnippetView](#getsnippetview) | [IServerDocumentView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) |  |
| [GetSupportsOwnSave](#getsupportsownsave) | `bool` | The SupportsOwnSave property returns a boolean value whether a save routine has been provided to save these documents associated with the server. |
| [GetView](#getview) | [IServerDocumentView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) | The View property is an indexed property and represents a document or panel view. |
| [GetViewByName](#getviewbyname) | [IServerDocumentView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) | The `GetViewByName` method returns the View object which represents a document or panel view. |
| [NotifyViews](#notifyviews) | `void` | This method sends a notification to all the views associated with the `IServerDocument` container. |
| [OwnsFile](#ownsfile) | `bool` | The `OwnsFile` method determines whether the document is owned by the Altium Designer product and thus this document can be saved or not. |
| [PlaceSnippet](#placesnippet) | `void` |  |
| [ReleaseDataFileHandle](#releasedatafilehandle) | `void` | For internal use only. |
| [ReleaseFileOwnership](#releasefileownership) | `void` | For internal use only. |
| [SupportsReload](#supportsreload) | `bool` | This method determines whether the document in Altium Designer can be re loaded or not (to refresh and to make sure that the document state is the latest). |
| [UpdateModifiedDate](#updatemodifieddate) | `void` | The method updates the modified document's date after this document has been modified. |
| [WarnIfOwnedByOther](#warnifownedbyother) | `bool` | This method determines whether the document is owned by another user. |
| [ZoomSnippetContents](#zoomsnippetcontents) | `void` |  |

### AcquireDataFileHandle

For internal use only.

```csharp
void AcquireDataFileHandle();
```

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

### AcquireFileOwnership

For internal use only.

```csharp
void AcquireFileOwnership();
```

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

### AddView

This method adds a [`IServerDocumentView`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) object in the server document. A `IServerDocument` object is a container containing views of document views and panel views.

```csharp
void AddView(IServerDocumentView argView);
void AddView(object argView);
```

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

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

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

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

### CanCreateSnippet

*No description yet.*

```csharp
bool CanCreateSnippet(IServerDocumentView argView, TSnippetCreationMode argMode, bool argContextSensitive);
bool CanCreateSnippet(object argView, int argMode, bool argContextSensitive);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argView` | [IServerDocumentView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) | value |
| `argMode` | [TSnippetCreationMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TSnippetCreationMode.md) | value |
| `argContextSensitive` | `bool` | value |

**Returns:** `bool`

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

### CanPlaceSnippet

*No description yet.*

```csharp
bool CanPlaceSnippet(string argSnippetPath);
```

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

**Returns:** `bool`

### CreateSnippetFile

*No description yet.*

```csharp
bool CreateSnippetFile(IServerDocumentView argView, string argSnippetFilePath, TSnippetCreationMode argMode, bool argContextSensitive);
bool CreateSnippetFile(object argView, string argSnippetFilePath, int argMode, bool argContextSensitive);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argView` | [IServerDocumentView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) | value |
| `argSnippetFilePath` | `string` | value |
| `argMode` | [TSnippetCreationMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TSnippetCreationMode.md) | value |
| `argContextSensitive` | `bool` | value |

**Returns:** `bool`

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

### DocumentDirectoryChanged

*No description yet.*

```csharp
void DocumentDirectoryChanged();
```

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

### DoFileLoad

This method allows the re-loading of the document. This is useful if the document has been modified and saved and it needs to be re-loaded to ensure that the document is in the latest state.

```csharp
bool DoFileLoad();
```

**Returns:** `bool`

### DoFileSave

This method provides you an option to save the document in a different format if the document supported by the specific document editor provides the option of saving in a different format other than the default format. Normally these file formats are stored in the SaveFilters block within the EditorWindowKind section within a server installation file (with an INS extension).

```csharp
bool DoFileSave(string argKind);
```

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

**Returns:** `bool`

For example with PCB documents in Altium Designer, you can save them as a PCB ASCII format, PCB Binary 3 format etc - PCB Binary, PCB 3.0 Binary, PCB 4.0 Binary, PCB ASCII. By default its PCB Binary 5.0.

With Schematic documents, you can save them as a Advanced Schematic binary, Advanced Schematic ascii, Schematic binary 4.0, Orcad SDT Schematic, Advanced Schematic template.

Server Installation files

The file formats supported by editors can be found in the server installation files within the SaveFilters - End blocks.

**See also:** [IServerDocument.GetCanClose](#getcanclose), [IServerDocument.Modified](#modified), [IServerDocument.FileName](#filename)

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

### DoSafeChangeFileNameAndSave

The method determines whether the current document can be saved with the new file name and new document type or not.

```csharp
bool DoSafeChangeFileNameAndSave(string argNewFileName, string argKind);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argNewFileName` | `string` | value |
| `argKind` | `string` | value |

**Returns:** `bool`

### DoSafeFileSave

The method determines whether the document can be saved of specified document type safely.

```csharp
bool DoSafeFileSave(string argKind);
```

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

**Returns:** `bool`

### Focus

The method forces the document to be the focussed document in Altium Designer. A focussed document is the top level document and in view in Altium Designer workspace that responds to commands etc.

```csharp
void Focus();
```

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

### GetCanClose

This method checks whether the document can be closed or not. This method is used for the CanClose property.

```csharp
bool GetCanClose();
```

**Returns:** `bool`

This CanClose property determines whether the document can be closed or not.

**See also:** [IServerDocument.Modified](#modified), [IServerDocument.FileName](#filename), [IServerDocument.DoFileSave](#dofilesave), [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### GetContextHelpTopicName

The `GetContextHelpTopicName` method retrieves the help topic name for the document. Normally the returned string would be the ServerModuleName.DocumentKind format for example 'SCH.SCH' Some servers provide more detailed information, for example Schematic Editor server returns Sch.Sheet.Port when the mouse is over the Port object on a schematic sheet.

```csharp
string GetContextHelpTopicName();
```

**Returns:** `string`

Third party developers can use this method to provide context sensitive help.

To implement the help for your server, you should have a .HELPID file in the Help folder where the link between the string returned by the `GetContextHelpTopicName` and the actual help document is established.

For example the CXTSystemDesignCapture.HelpID contains a Sch.Sheet.Port = CXTSystemDesignCapture.chm,Document_Objects\Port.htm. This means when the F1 key is pressed and the Sch.Sheet.Port string is returned, it will use the CXTSystemDesignCapture.chm filename and display the Document_Objects\Port.htm topic.

### GetCount

The Count property returns the number of views (of the same type) in the `IServerDocument` container. Use in conjunction with the View property.

```csharp
int GetCount();
```

**Returns:** `int`

This method is used for the Count property.

This property is supported by the `GetCount` method.

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

### GetDocumentModifiedDate

*No description yet.*

```csharp
double GetDocumentModifiedDate();
```

**Returns:** `double`

### GetKind

This method returns the Kind string for this document and this method is used for the Kind property. Examples include 'PCB', 'PCBLIB','SCH','SCHLIB' etc.

```csharp
string GetKind();
```

**Returns:** `string`

The Kind reports the type of the document opened in Altium Designer.

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

**Examples:** [Extension_CreatePCBLib](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreatePCBLib/Source%20Code/Commands.cs#L27), [Extension_PCBToImage](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PCBToImage/Source%20Code/Commands.cs#L85)

### GetServerModule

The [`ServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ServerModule.md) is a read-only property which returns the [`IServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) interface that the document is associated with. The server module represents the server object installed and running in Altium Designer.

```csharp
IServerModule GetServerModule();
```

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

Extension method of `IServerDocumentHelper` (`using DXP;`).

A server module manages its own documents and panels. This property is supported by the `GetServerModule` method.

**See also:** [IServerModule](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md), [IClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md)

### GetSnippetView

*No description yet.*

```csharp
IServerDocumentView GetSnippetView();
```

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

Extension method of `IServerDocumentHelper` (`using DXP;`).

### GetSupportsOwnSave

The SupportsOwnSave property returns a boolean value whether a save routine has been provided to save these documents associated with the server. This is a read only property and is supported by the `GetSupportsOwnSave` method.

```csharp
bool GetSupportsOwnSave();
```

**Returns:** `bool`

The SupportsOwnSave property returns a boolean value whether a save routine has been provided to save these documents associated with the server. Read only property.

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

### GetView

The View property is an indexed property and represents a document or panel view. The IServerDocument.Count method returns the list of views (which could be document or panel windows) as part of the `IServerDocument` container.

```csharp
IServerDocumentView GetView(int argIndex);
```

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

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

Extension method of `IServerDocumentHelper` (`using DXP;`).

This property is supported by the `GetView` method.

The View property is an indexed property and represents a document or panel view part of the [`IDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md) container associated with a specific [`IServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) interface. The IServerDocument.Count method returns the list of views (which could be document or panel windows) as part of the `IServerDocument` container.

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

### GetViewByName

The `GetViewByName` method returns the View object which represents a document or panel view.

```csharp
IServerDocumentView GetViewByName(string argViewName);
```

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

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

Extension method of `IServerDocumentHelper` (`using DXP;`).

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

### NotifyViews

This method sends a notification to all the views associated with the `IServerDocument` container.

```csharp
void NotifyViews(INotification argNotification);
void NotifyViews(object argNotification);
```

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

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

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

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

### OwnsFile

The `OwnsFile` method determines whether the document is owned by the Altium Designer product and thus this document can be saved or not.

```csharp
bool OwnsFile();
```

**Returns:** `bool`

### PlaceSnippet

*No description yet.*

```csharp
void PlaceSnippet(string argSnippetAddress, IServerDocumentView argView);
void PlaceSnippet(string argSnippetAddress, object argView);
```

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

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

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

### ReleaseDataFileHandle

For internal use only.

```csharp
void ReleaseDataFileHandle();
```

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

### ReleaseFileOwnership

For internal use only.

```csharp
void ReleaseFileOwnership();
```

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

### SupportsReload

This method determines whether the document in Altium Designer can be re loaded or not (to refresh and to make sure that the document state is the latest).

```csharp
bool SupportsReload();
```

**Returns:** `bool`

**See also:** [IServerDocument.DoFileLoad](#dofileload)

### UpdateModifiedDate

The method updates the modified document's date after this document has been modified.

```csharp
void UpdateModifiedDate();
```

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

**See also:** [IServerDocument.Modified](#modified)

### WarnIfOwnedByOther

This method determines whether the document is owned by another user. A document can be shared amongst other users but the other users cannot save this document when this document is owned solely by one user.

```csharp
bool WarnIfOwnedByOther(TFileOwnershipWarningLevel argWarningLevel);
bool WarnIfOwnedByOther(int argWarningLevel);
```

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

**Returns:** `bool`

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

### ZoomSnippetContents

*No description yet.*

```csharp
void ZoomSnippetContents();
```

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

## Returned by

[IClient.GetDocumentByPath](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getdocumentbypath), [IClient.LastActiveDocumentOfType](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#lastactivedocumentoftype), [IClient.OpenDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#opendocument), [IClient.OpenDocumentShowOrHide](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#opendocumentshoworhide), [IClient.OpenNewDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#opennewdocument), [IDataForDocumentNotification.GetServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDataForDocumentNotification.md#getserverdocument), [IDataForDocumentRequest.GetServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDataForDocumentRequest.md#getserverdocument), [IEDesignData_SupplyChainFrame.Document](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IEDesignData_SupplyChainFrame.md#document), [IServerDocumentView.GetOwnerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md#getownerdocument), [IServerModule.CreateDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md#createdocument), [IServerModule.CreateDocumentShowOrHide](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md#createdocumentshoworhide), [IServerModule.GetDocuments](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md#getdocuments), [IServerModuleNativeImport.CreateDocumentWithId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModuleNativeImport.md#createdocumentwithid), [IDocument.DM_ServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IDocument.md#dm_serverdocument), [IProject.DM_ServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IProject.md#dm_serverdocument), [ILayerStackServerDocumentHelper.GetParentPcbDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/ILayerStackServerDocumentHelper.md#getparentpcbdocument), [IPCB_LayerStackupDocumentPainterView.DocumentToPaint](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LayerStackupDocumentPainterView.md#documenttopaint), [DataForDocumentNotification.GetServerDocumentImpl](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/DataForDocumentNotification.md#getserverdocumentimpl), [ServerDocView.OwnerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ServerDocView.md#ownerdocument), [Utils.CreateNewDocumentFromDocumentKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Utils.md#createnewdocumentfromdocumentkind)

## Accepted by

[IClient.CloseDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#closedocument), [IClient.HideDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#hidedocument), [IClient.ShowDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#showdocument), [IClient.ShowDocumentDontFocus](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#showdocumentdontfocus), [IDocumentPreviewManager.InvalidatePreview](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentPreviewManager.md#invalidatepreview), [IDocumentPreviewManager.SavePreview](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentPreviewManager.md#savepreview), [IServerModule.CreateServerDocView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md#createserverdocview), [IServerModule.DestroyDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md#destroydocument), [IEmbeddedModule.CompileAGUIDesign](https://altiumdeveloper.github.io/ad-sdk-docs/reference/embedded/IEmbeddedModule.md#compileaguidesign), [ISch_ServerInterface.UpdateDocumentTemplate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ServerInterface.md#updatedocumenttemplate)

## Examples

Used in the SDK examples: [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMPanelForm.cs#L30), [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/Main.cs#L44), [Extension_AddVariant](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_AddVariant/Source%20Code/Main.cs#L42), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/Main.cs#L42), [Extension_BlockAD_CS](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BlockAD_CS/Source%20Code/Main.cs#L41), [Extension_ChangeOutputJobFile](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ChangeOutputJobFile/Source%20Code/Commands.cs#L25), [Extension_ChangeOutputJobFile](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ChangeOutputJobFile/Source%20Code/Main.cs#L42), [Extension_CreatePCBLib](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreatePCBLib/Source%20Code/Commands.cs#L26), [Extension_CreatePCBLib](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreatePCBLib/Source%20Code/Main.cs#L42), [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Commands.cs#L42), [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Main.cs#L42), [Extension_CreateSchComponent](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateSchComponent/Source%20Code/Main.cs#L42).
