
# IClient interface

A plug-in module loaded in Altium Designer has hooks to the single executable subsystem, so you have access to the specific documents and launch commands on these documents.

```csharp
public interface IClient
```

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

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [AccessFeaturesInDevelopment](#accessfeaturesindevelopment) | `bool` | get |  |
| [CurrentView](#currentview) | [IServerDocumentView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocumentView.md) | get; set | This property returns the current document view interface which represents the current design document view in Altium Designer. |
| [PreferencesChanged](#preferenceschanged) | `bool` | get; set |  |

### AccessFeaturesInDevelopment

*No description yet.*

```csharp
bool GetState_AccessFeaturesInDevelopment();
```

**Type:** `bool` · **Access:** read-only

### CurrentView

This property returns the current document view interface which represents the current design document view in Altium Designer.

```csharp
IServerDocumentView GetCurrentView();
void SetCurrentView(IServerDocumentView argValue);
```

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

The accessors are extension methods of `IClientHelper` (`using DXP;`).

SendMessage Example

`CurrentView` example

ViewName example

This code snippet uses the Client.CurrentView.ViewName method to find out the current document's type.

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

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

### PreferencesChanged

*No description yet.*

```csharp
bool GetPreferencesChanged();
void SetPreferencesChanged(bool argValue);
```

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [AddServerView](#addserverview) | `void` | This method adds a document view such as a custom panel in the Client object within Altium Designer. |
| [AddViewToFavorites](#addviewtofavorites) | `bool` |  |
| [ApplicationIdle](#applicationidle) | `void` | When the `ApplicationIdle` method is invoked, the method puts the Altium Designer in a mode where it has a chance to process Window and Altium Designer specific messages. |
| [ArePreferencesReadOnly](#arepreferencesreadonly) | `bool` |  |
| [BeginDisableInterface](#begindisableinterface) | `void` | These `BeginDisableInterface` and [`EndDisableInterface`](#enddisableinterface) methods are invoked when the User Interface of Client need to be disabled, for example there might be extensive processing going on, and you do not… |
| [BeginDocumentLoad](#begindocumentload) | `void` | The `BeginDocumentLoad` and [`EndDocumentLoad`](#enddocumentload) methods are used to load a group of documents in Altium Designer. |
| [BeginRecoverySave](#beginrecoverysave) | `void` | The `BeginRecoverySave` and [`EndRecoverySave`](#endrecoverysave) properties can be used to suppress the client notification of document name changes when doing a backup of a current design document in Altium Designer. |
| [BroadcastNotification](#broadcastnotification) | `void` | This method broadcasts a notification message in Altium Designer where all active design documents / servers have an opportunity to respond. |
| [BroadcastNotificationAsynchronously](#broadcastnotificationasynchronously) | `void` |  |
| [CloseDocument](#closedocument) | `void` | Closes the specified document (if it is loaded and opened in Altium Designer already). |
| [DisableServerNotificationHandler](#disableservernotificationhandler) | `void` |  |
| [DispatchNotification](#dispatchnotification) | `void` | This method dispatches a notification message to the targeted server in Altium Designer. |
| [DisplayDocsTogetherForCompare](#displaydocstogetherforcompare) | `void` |  |
| [DisplaySplashScreen](#displaysplashscreen) | `void` |  |
| [EndDisableInterface](#enddisableinterface) | `void` | These [`BeginDisableInterface`](#begindisableinterface) and `EndDisableInterface` methods are invoked when the User Interface of Client needs to be disabled, for example there might be extensive processing going on, and you do no… |
| [EndDocumentLoad](#enddocumentload) | `void` | The [`BeginDocumentLoad`](#begindocumentload) and `EndDocumentLoad` methods are used to load a group of documents in Altium Designer. |
| [EndRecoverySave](#endrecoverysave) | `void` | The [`BeginRecoverySave`](#beginrecoverysave) and `EndRecoverySave` methods can be used to suppress the client notification of document name changes when doing a backup of a current design document in Altium Designer. |
| [GetApplicationHandle](#getapplicationhandle) | `int` | You can use the application handle into server code if dialogs need to be created dynamically from your server and so that when a dialog that appears on Altium Designer will inherit Altium Designer's… |
| [GetBomManagerFactory](#getbommanagerfactory) | [IBomManagerFactory](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/IBomManagerFactory.md) |  |
| [GetClientAPI](#getclientapi) | [IClientAPI_Interface](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClientAPI_Interface.md) |  |
| [GetCommandLauncher](#getcommandlauncher) | [ICommandLauncher](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ICommandLauncher.md) | This method fetches the [`ICommandLauncher`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ICommandLauncher.md) interface which represents Client's process launcher which can be used to launch a server process and its parameters. |
| [GetCount](#getcount) | `int` | This method returns the number of active (loaded) servers in a current session of Altium Designer. |
| [GetDefaultExtensionForDocumentKind](#getdefaultextensionfordocumentkind) | `string` | This method returns the default extension for the specific document kind based on the document kind parameter. |
| [GetDocumentByPath](#getdocumentbypath) | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) | This method fetches the full file path to a design document and if the path is valid, an [`IServerDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) object interface is returned representing the whole design document and its panels. |
| [GetDocumentCaptionFromDocumentKind](#getdocumentcaptionfromdocumentkind) | `string` |  |
| [GetDocumentCaptionFromDocumentPath](#getdocumentcaptionfromdocumentpath) | `string` |  |
| [GetDocumentKindFromDocumentFileName](#getdocumentkindfromdocumentfilename) | `string` |  |
| [GetDocumentKindFromDocumentPath](#getdocumentkindfromdocumentpath) | `string` | This method returns the document kind based on the valid and full document path. |
| [GetDocumentKindFromDocumentPathEx](#getdocumentkindfromdocumentpathex) | `string` |  |
| [GetDocumentPreviewHint](#getdocumentpreviewhint) | [IDocumentPreviewHint](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentPreviewHint.md) |  |
| [GetDocumentPreviewManager](#getdocumentpreviewmanager) | [IDocumentPreviewManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentPreviewManager.md) |  |
| [GetDXPAltiumPortal](#getdxpaltiumportal) | [IDXPAltiumPortal](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDXPAltiumPortal.md) |  |
| [GetDXPSplash](#getdxpsplash) | [IDXPSplash](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDXPSplash.md) |  |
| [GetDXPUrlCommandData](#getdxpurlcommanddata) | `bool` |  |
| [GetDXPWorkspace](#getdxpworkspace) | [IDXPWorkSpace](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDXPWorkSpace.md) |  |
| [GetDynamicHelpManager](#getdynamichelpmanager) | [IDynamicHelpManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDynamicHelpManager.md) | The method returns the Dynamic Help manager which represents the Knowledge Center panel in Altium Designer. |
| [GetGlobalPreferencesRevisionGUID](#getglobalpreferencesrevisionguid) | `string` |  |
| [GetGlobalPreferencesVaultGUID](#getglobalpreferencesvaultguid) | `string` |  |
| [GetGUIManager](#getguimanager) | [IGUIManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IGUIManager.md) | Returns the GUI Manager interface. |
| [GetInternalOptions](#getinternaloptions) | [IInternalOptions](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IInternalOptions.md) |  |
| [GetLayoutSaveLoadManager](#getlayoutsaveloadmanager) | [ISaveLoadLayout](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ISaveLoadLayout.md) |  |
| [GetLicenseManager](#getlicensemanager) | [ILicenseManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ILicenseManager.md) |  |
| [GetMacroManager](#getmacromanager) | [IMacroManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IMacroManager.md) |  |
| [GetMainWindowHandle](#getmainwindowhandle) | `uint` | You can use the application handle into server code if dialogs need to be created dynamically from your server and so that when a dialog that appears on Altium Designer will inherit Altium Designer's… |
| [GetNavigationSystem](#getnavigationsystem) | [INavigationSystem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INavigationSystem.md) | The method returns the Navigation system interface. |
| [GetOptionsManager](#getoptionsmanager) | [IOptionsManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IOptionsManager.md) | This method retrieves the [`IOptionsManager`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IOptionsManager.md) interface. |
| [GetOptionsSet](#getoptionsset) | [IDocumentOptionsSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsSet.md) | This method returns you the indexed Options set ([`IDocumentOptionsSet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsSet.md) type). |
| [GetOptionsSetByName](#getoptionssetbyname) | [IDocumentOptionsSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsSet.md) | This method retrieves the [`IDocumentOptionsSet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsSet.md) interface based on the valid Name string. |
| [GetOptionsSetCount](#getoptionssetcount) | `int` | This method returns you the number of Options Set. |
| [GetPanelInfoByName](#getpanelinfobyname) | [IServerPanelInfo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerPanelInfo.md) | This method obtains the [`IServerPanelInfo`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerPanelInfo.md) interface for the specified panel. |
| [GetPluginsRegistry](#getpluginsregistry) | [IPluginsRegistry](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IPluginsRegistry.md) |  |
| [GetProcessControl](#getprocesscontrol) | [IProcessControl](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IProcessControl.md) | Returns the Process Control interface. |
| [GetProductName](#getproductname) | `string` |  |
| [GetProductVersion](#getproductversion) | `string` |  |
| [GetRealMainWindowHandle](#getrealmainwindowhandle) | `UIntPtr` | The method returns the window handle of the main window in Altium Designer. |
| [GetSceneManager](#getscenemanager) | [ISceneManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ISceneManager.md) |  |
| [GetSearchManager](#getsearchmanager) | [ISearchManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ISearchManager.md) |  |
| [GetSecurityManager](#getsecuritymanager) | [ISecurityManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ISecurityManager.md) |  |
| [GetSecurityServerManager](#getsecurityservermanager) | [ISecurityServerManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ISecurityServerManager.md) |  |
| [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) property is used in conjunction with the Count property to retrieve active (loaded) servers. |
| [GetServerModuleByName](#getservermodulebyname) | [IServerModule](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) | Returns the server module interface depending on the validity of the module name. |
| [GetServerNameByPLID](#getservernamebyplid) | `string` | This method returns you the server name based on the PLID identifier string (a string extracted from the server's resources file). |
| [GetServerRecord](#getserverrecord) | [IServerRecord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerRecord.md) | The `GetServerRecord` method reports the number of installed servers based on the installation *.INS files in the System folder of Altium Designer installation). |
| [GetServerRecordByFeature](#getserverrecordbyfeature) | [IServerRecord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerRecord.md) |  |
| [GetServerRecordByName](#getserverrecordbyname) | [IServerRecord](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerRecord.md) | Returns the [`IServerRecord`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerRecord.md) interface for a server module name. |
| [GetServerRecordCount](#getserverrecordcount) | `int` | This method returns the number of server records that represent the server installation files found in the \System\ folder of the Altium Designer software installation. |
| [GetServerViewFromName](#getserverviewfromname) | [IServerView](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerView.md) | This method returns the server view object interface depending on the name of the server view. |
| [GetTechnologySets](#gettechnologysets) | `string` |  |
| [GetTechnologySubscriptionExpirationDate](#gettechnologysubscriptionexpirationdate) | `double` |  |
| [GetTimerManager](#gettimermanager) | [ITimerManager](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ITimerManager.md) | This property returns the timer manager object interface. |
| [GetVersion](#getversion) | `string` |  |
| [GetWindowKindByName](#getwindowkindbyname) | [IServerWindowKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) | Returns the [`IServerWindowKind`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) interface for a window kind name. |
| [HandleException](#handleexception) | `void` |  |
| [HideDocument](#hidedocument) | `void` | This method hides the document, ie puts it out of focus but not closed or destroyed. |
| [InRecoverySave](#inrecoverysave) | `bool` | This method checks whether Altium Designer is in the process of Recovery Save mode, before you can invoke the [`BeginRecoverySave`](#beginrecoverysave) or [`EndRecoverySave`](#endrecoverysave) methods. |
| [InTestMode](#intestmode) | `bool` |  |
| [IsDocumentOfKind](#isdocumentofkind) | `bool` |  |
| [IsDocumentOpen](#isdocumentopen) | `bool` | Returns a boolean value whether the document is open in Altium Designer or not. |
| [IsInitialized](#isinitialized) | `bool` |  |
| [IsQuitting](#isquitting) | `bool` | Returns a boolean value that represents the state Altium Designer is in: true if Altium Designer is about to quit or in the process of quitting, false if Altium Designer is still active. |
| [LastActiveDocumentOfType](#lastactivedocumentoftype) | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) | This method returns the last active loaded document in Altium Designer by the document type. |
| [LicenseInfoStillValid](#licenseinfostillvalid) | `bool` |  |
| [LoadCustomizationsFromFile](#loadcustomizationsfromfile) | `void` |  |
| [LoadCustomizationsFromFileByMode](#loadcustomizationsfromfilebymode) | `void` |  |
| [LoadCustomizationsFromPath](#loadcustomizationsfrompath) | `void` |  |
| [LoadGlobalPreferencesFromVault](#loadglobalpreferencesfromvault) | `void` |  |
| [OpenDocument](#opendocument) | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) | The `OpenDocument` method returns the [`IServerDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) interface depending on the DocumentKind and FileName values of this document are valid. |
| [OpenDocumentShowOrHide](#opendocumentshoworhide) | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) | This method opens a specific document but you can control how it is displayed in the Altium Designer workspace. |
| [OpenNewDocument](#opennewdocument) | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) |  |
| [ProductInfo](#productinfo) | [IProductInfo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IProductInfo.md) |  |
| [QuerySystemFont](#querysystemfont) | `void` | Query the system font used. |
| [RegisterFilteredNotificationHandler](#registerfilterednotificationhandler) | `void` |  |
| [RegisterNotificationHandler](#registernotificationhandler) | `void` | The `RegisterNotificationHandler` method registers the notification handler in the Client module part of Altium Designer once the server object is created and loaded in computer memory. |
| [RegisterServerNotificationHandler](#registerservernotificationhandler) | `void` |  |
| [ReleaseGlobalPreferencesToVault](#releaseglobalpreferencestovault) | `void` |  |
| [RemoveServerView](#removeserverview) | `void` | This method removes a server view (representing a server document window) from Altium Designer. |
| [SaveCustomizationsForExport](#savecustomizationsforexport) | `string` |  |
| [ShowDocument](#showdocument) | `void` | Displays the design document in Altium Designer. |
| [ShowDocumentDontFocus](#showdocumentdontfocus) | `void` | Displays the design document but leaves the previously focussed document in focus. |
| [StartServer](#startserver) | `bool` | The `StartServer` and [`StopServer`](#stopserver) properties can be used to load a server in Altium Designer if it has not already, before you can invoke this server's processes and to stop this server once you have do… |
| [StartSuspendTestMode](#startsuspendtestmode) | `void` |  |
| [StopServer](#stopserver) | `bool` | The [`StartServer`](#startserver) and `StopServer` properties can be used to load a server in Altium Designer if it has not loaded already, before you can invoke this server's processes and to stop this server once you… |
| [StopSuspendTestMode](#stopsuspendtestmode) | `void` |  |
| [UnregisterNotificationHandler](#unregisternotificationhandler) | `void` | The `UnregisterNotificationHandler` method un registers the notification handler from Client once the server object goes out of scope (destroyed). |
| [UnregisterServerNotificationHandler](#unregisterservernotificationhandler) | `void` |  |

### AddServerView

This method adds a document view such as a custom panel in the Client object within Altium Designer. In the TServerModule constructor, where the server commands are registered, this is the place to create global panel views. The TServerModule.CreateServerViews method will have the global panel form and the view created from this panel form. Then the view is added to the server module (TServerModule.AddView()) as well as in the client object (Client.AddServerView).

```csharp
void AddServerView(IServerView argView);
void AddServerView(object argView);
```

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

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

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

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

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

### AddViewToFavorites

*No description yet.*

```csharp
bool AddViewToFavorites(IServerDocumentView argView, bool argIsSnippet);
bool AddViewToFavorites(object argView, bool argIsSnippet);
```

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

**Returns:** `bool`

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

### ApplicationIdle

When the `ApplicationIdle` method is invoked, the method puts the Altium Designer in a mode where it has a chance to process Window and Altium Designer specific messages.

```csharp
void ApplicationIdle();
```

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

### ArePreferencesReadOnly

*No description yet.*

```csharp
bool ArePreferencesReadOnly(string argServerName, string argFormName);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argServerName` | `string` | value |
| `argFormName` | `string` | value |

**Returns:** `bool`

### BeginDisableInterface

These `BeginDisableInterface` and [`EndDisableInterface`](#enddisableinterface) methods are invoked when the User Interface of Client need to be disabled, for example there might be extensive processing going on, and you do not want the user's intervention.

```csharp
void BeginDisableInterface();
```

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

**See also:** [IClient.EndDisableInterface](#enddisableinterface)

### BeginDocumentLoad

The `BeginDocumentLoad` and [`EndDocumentLoad`](#enddocumentload) methods are used to load a group of documents in Altium Designer.

```csharp
void BeginDocumentLoad();
```

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

**See also:** [IClient.EndDocumentLoad](#enddocumentload)

### BeginRecoverySave

The `BeginRecoverySave` and [`EndRecoverySave`](#endrecoverysave) properties can be used to suppress the client notification of document name changes when doing a backup of a current design document in Altium Designer. To check if the recovery save process is in progress, invoke the [`InRecoverySave`](#inrecoverysave) method.

```csharp
void BeginRecoverySave();
```

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

**See also:** [IClient.EndRecoverySave](#endrecoverysave), [IClient.InRecoverySave](#inrecoverysave)

### BroadcastNotification

This method broadcasts a notification message in Altium Designer where all active design documents / servers have an opportunity to respond. A BoardcastNotification is a [`DispatchNotification`](#dispatchnotification) (null, ANotification); There are five types of Notification interfaces; ISystemNotification, IDocumentNotification, IDocumentFormNotification, IViewNotification and IModuleNotification.

```csharp
void BroadcastNotification(INotification argNotification);
void BroadcastNotification(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 `IClientHelper` (`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)

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

### BroadcastNotificationAsynchronously

*No description yet.*

```csharp
void BroadcastNotificationAsynchronously(INotification argNotification);
void BroadcastNotificationAsynchronously(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 `IClientHelper` (`using DXP;`) with typed parameters; the second is declared by the interface.

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

### CloseDocument

Closes the specified document (if it is loaded and opened in Altium Designer already). Note the document is not removed from Altium Designer, that is, the document still exists on the Projects panel for example.

```csharp
void CloseDocument(IServerDocument argDocument);
void CloseDocument(object argDocument);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argDocument` | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) | value | The document to close. |

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

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

**See also:** [IClient.OpenDocument](#opendocument)

**Examples:** [Extension_GenerateGerber](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_GenerateGerber/Source%20Code/Commands.cs#L65), [Extension_PcbLibToImage](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PcbLibToImage/Source%20Code/Commands.cs#L68)

### DisableServerNotificationHandler

*No description yet.*

```csharp
void DisableServerNotificationHandler(IServerModule argHandler);
void DisableServerNotificationHandler(object argHandler);
```

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

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

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

### DispatchNotification

This method dispatches a notification message to the targeted server in Altium Designer. There are four types of Notification interfaces; IDocumentNotification, IDocumentFormNotification, IViewNotification and IModuleNotification.

```csharp
void DispatchNotification(IServerModule argServerModule, INotification argNotification);
void DispatchNotification(object argServerModule, object argNotification);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argServerModule` | [IServerModule](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) | value |
| `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 `IClientHelper` (`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)

### DisplayDocsTogetherForCompare

*No description yet.*

```csharp
void DisplayDocsTogetherForCompare();
```

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

### DisplaySplashScreen

*No description yet.*

```csharp
void DisplaySplashScreen(string argImagePath, int argFadeInMillis, int argDisplayMillis, int argFadeOutMillis, int argAlphaStep);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argImagePath` | `string` | value |
| `argFadeInMillis` | `int` | value |
| `argDisplayMillis` | `int` | value |
| `argFadeOutMillis` | `int` | value |
| `argAlphaStep` | `int` | value |

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

### EndDisableInterface

These [`BeginDisableInterface`](#begindisableinterface) and `EndDisableInterface` methods are invoked when the User Interface of Client needs to be disabled, for example there might be extensive processing going on, and you do not want the user's intervention. This is a Altium Designer wide method.

```csharp
void EndDisableInterface();
```

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

**See also:** [IClient.BeginDisableInterface](#begindisableinterface)

### EndDocumentLoad

The [`BeginDocumentLoad`](#begindocumentload) and `EndDocumentLoad` methods are used to load a group of documents in Altium Designer.

```csharp
void EndDocumentLoad(bool argShow);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argShow` | `bool` | value |

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

**See also:** [IClient.BeginDocumentLoad](#begindocumentload)

### EndRecoverySave

The [`BeginRecoverySave`](#beginrecoverysave) and `EndRecoverySave` methods can be used to suppress the client notification of document name changes when doing a backup of a current design document in Altium Designer.

```csharp
void EndRecoverySave();
```

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

To check if the recovery save is in progress, invoke the [`InRecoverySave`](#inrecoverysave) method.

**See also:** [IClient.BeginRecoverySave](#beginrecoverysave), [IClient.InRecoverySave](#inrecoverysave)

### GetApplicationHandle

You can use the application handle into server code if dialogs need to be created dynamically from your server and so that when a dialog that appears on Altium Designer will inherit Altium Designer's icon and appear as one whole application on the task bar.

```csharp
int GetApplicationHandle();
```

**Returns:** `int`

This ApplicationHandle property can be passed as a parameter for the create constructor of the dialog. The [`GetMainWindowHandle`](#getmainwindowhandle) method is its equivalent.

**See also:** [IClient.GetMainWindowHandle](#getmainwindowhandle)

### GetBomManagerFactory

*No description yet.*

```csharp
IBomManagerFactory GetBomManagerFactory();
```

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

Extension method of [Utils](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/Utils.md) (`using DXP;`).

### GetClientAPI

*No description yet.*

```csharp
IClientAPI_Interface GetClientAPI();
```

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

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

**Examples:** [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L359), [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/OptionsPage.cs#L96), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L42), [Extension_Preference](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_Preference/Source%20Code/OptionsPage.cs#L132), [Extension_SetGroupingInDocumentsBar](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_SetGroupingInDocumentsBar/Source%20Code/Commands.cs#L26)

### GetCommandLauncher

This method fetches the [`ICommandLauncher`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ICommandLauncher.md) interface which represents Client's process launcher which can be used to launch a server process and its parameters. See the [`IProcessLauncher`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IProcessLauncher.md) interface as well.

```csharp
ICommandLauncher GetCommandLauncher();
```

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

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

The [`CommandLauncher`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/CommandLauncher.md) property returns the Command Launcher interface. This interface contains the table of client's process launchers that can be used to launch a command.

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

### GetCount

This method returns the number of active (loaded) servers in a current session of Altium Designer. Use this method (or the Count property) in conjunction with the [`ServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ServerModule.md) property to fetch Server Module interfaces.

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

**Returns:** `int`

This property returns the number of active servers in a current session of Altium Designer. Use this property in conjunction with the [`ServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ServerModule.md) property to fetch Server Module interfaces.

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

### GetDefaultExtensionForDocumentKind

This method returns the default extension for the specific document kind based on the document kind parameter.

```csharp
string GetDefaultExtensionForDocumentKind(string argDocumentKind);
```

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

**Returns:** `string`

`IClient` interface

### GetDocumentByPath

This method fetches the full file path to a design document and if the path is valid, an [`IServerDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) object interface is returned representing the whole design document and its panels.

```csharp
IServerDocument GetDocumentByPath(string argFilePath);
```

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

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

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

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

### GetDocumentCaptionFromDocumentKind

*No description yet.*

```csharp
string GetDocumentCaptionFromDocumentKind(string argDocumentKind);
```

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

**Returns:** `string`

### GetDocumentCaptionFromDocumentPath

*No description yet.*

```csharp
string GetDocumentCaptionFromDocumentPath(string argPath);
```

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

**Returns:** `string`

### GetDocumentKindFromDocumentFileName

*No description yet.*

```csharp
string GetDocumentKindFromDocumentFileName(string argPath, bool argCheckForTextFiles);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPath` | `string` | value |
| `argCheckForTextFiles` | `bool` | value |

**Returns:** `string`

### GetDocumentKindFromDocumentPath

This method returns the document kind based on the valid and full document path.

```csharp
string GetDocumentKindFromDocumentPath(string argPath);
```

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

**Returns:** `string`

### GetDocumentKindFromDocumentPathEx

*No description yet.*

```csharp
string GetDocumentKindFromDocumentPathEx(string argPath, ref string argDocSubKind);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPath` | `string` | value |
| `argDocSubKind` | `string` | ref |

**Returns:** `string`

### GetDocumentPreviewHint

*No description yet.*

```csharp
IDocumentPreviewHint GetDocumentPreviewHint();
```

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

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

### GetDocumentPreviewManager

*No description yet.*

```csharp
IDocumentPreviewManager GetDocumentPreviewManager();
```

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

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

### GetDXPAltiumPortal

*No description yet.*

```csharp
IDXPAltiumPortal GetDXPAltiumPortal();
```

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

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

### GetDXPSplash

*No description yet.*

```csharp
IDXPSplash GetDXPSplash();
```

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

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

### GetDXPUrlCommandData

*No description yet.*

```csharp
bool GetDXPUrlCommandData(string argUrl, out string argCommand, out string argParams);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argUrl` | `string` | value |
| `argCommand` | `string` | out |
| `argParams` | `string` | out |

**Returns:** `bool`

### GetDXPWorkspace

*No description yet.*

```csharp
IDXPWorkSpace GetDXPWorkspace();
```

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

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

**Examples:** [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/Commands.cs#L19), [Extension_AddVariant](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_AddVariant/Source%20Code/Commands.cs#L25), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/Commands.cs#L61), [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Commands.cs#L36), [Extension_GenerateGerber](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_GenerateGerber/Source%20Code/Commands.cs#L24), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L27), [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L35), [Extension_PlaceComponentFromVault](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PlaceComponentFromVault/Source%20Code/Commands.cs#L54), [Extension_PlaceDeviceSheet](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PlaceDeviceSheet/Source%20Code/Commands.cs#L28), [Extension_RefreshDocument](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_RefreshDocument/Source%20Code/Commands.cs#L54), [Extension_TestPortHarnessDev](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_TestPortHarnessDev/Source%20Code/Commands.cs#L40), [Extension_VariantOptions](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_VariantOptions/Source%20Code/Commands.cs#L25)

### GetDynamicHelpManager

The method returns the Dynamic Help manager which represents the Knowledge Center panel in Altium Designer.

```csharp
IDynamicHelpManager GetDynamicHelpManager();
```

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

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

### GetGlobalPreferencesRevisionGUID

*No description yet.*

```csharp
string GetGlobalPreferencesRevisionGUID();
```

**Returns:** `string`

### GetGlobalPreferencesVaultGUID

*No description yet.*

```csharp
string GetGlobalPreferencesVaultGUID();
```

**Returns:** `string`

### GetGUIManager

Returns the GUI Manager interface. Use the GUIManager property instead. This Interface object deals with the User Interface of Altium Designer such as controlling the status bars of Altium Designer, the locations and the state of panels in Altium Designer.

```csharp
IGUIManager GetGUIManager();
```

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

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

The GUIManager property returns the GUIManager interface. This Interface object deals with the Altium Designer's Graphical User Interface such as controlling the status bars, the locations and the state of panels.

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

### GetInternalOptions

*No description yet.*

```csharp
IInternalOptions GetInternalOptions();
```

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

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

### GetLayoutSaveLoadManager

*No description yet.*

```csharp
ISaveLoadLayout GetLayoutSaveLoadManager();
```

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

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

### GetLicenseManager

*No description yet.*

```csharp
ILicenseManager GetLicenseManager();
```

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

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

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

### GetMacroManager

*No description yet.*

```csharp
IMacroManager GetMacroManager();
```

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

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

### GetMainWindowHandle

You can use the application handle into server code if dialogs need to be created dynamically from your server and so that when a dialog that appears on Altium Designer will inherit Altium Designer's icon and appear as one whole application on the task bar. This ApplicationHandle property is also its equivalent.

```csharp
uint GetMainWindowHandle();
```

**Returns:** `uint`

The MainWindowHandle property returns the handle of the main window in Altium Designer which can be used for addon dialogs that will be attached to Altium Designer and have a single Altium Designer icon on the Taskbar for example.

**See also:** [IClient.GetApplicationHandle](#getapplicationhandle)

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

### GetNavigationSystem

The method returns the Navigation system interface.

```csharp
INavigationSystem GetNavigationSystem();
```

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

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

The NavigationSystem property represents the Navigation system in Altium Designer. The navigation system is the workhouse for the Navigation panel which is the center-piece for net connectivity for the design project. There are three ways a design can be arranged - as a list of compiled sheets, flattened hierarchy and as a structural tree.

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

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

### GetOptionsManager

This method retrieves the [`IOptionsManager`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IOptionsManager.md) interface. With this interface, you can invoke [`IOptionsManager.GetOptionsReader`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IOptionsManager.md#getoptionsreader) or [`IOptionsManager.GetOptionsWriter`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IOptionsManager.md#getoptionswriter) to retrieve or write options (settings) for the target server. Each editor server has options that manage its server documents.

```csharp
IOptionsManager GetOptionsManager();
```

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

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

This is a read only property that returns the [`IOptionsManager`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IOptionsManager.md) interface. This interface is responsible for managing (reading and writing) values to/from the system wide Preferences dialog in Altium Designer for the specified server.

This interface is useful for server writers who wish to add their options pages in the system wide preferences dialog and manage the controls on these options pages.

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

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

### GetOptionsSet

This method returns you the indexed Options set ([`IDocumentOptionsSet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsSet.md) type).

```csharp
IDocumentOptionsSet GetOptionsSet(int argIndex);
```

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

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

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

**See also:** [IClient.GetOptionsSetCount](#getoptionssetcount), [IClient.GetOptionsSetByName](#getoptionssetbyname)

### GetOptionsSetByName

This method retrieves the [`IDocumentOptionsSet`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsSet.md) interface based on the valid Name string.

```csharp
IDocumentOptionsSet GetOptionsSetByName(string argName);
```

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

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

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

**See also:** [IClient.GetOptionsSetCount](#getoptionssetcount), [IClient.GetOptionsSet](#getoptionsset), [IDocumentOptionsSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IDocumentOptionsSet.md)

### GetOptionsSetCount

This method returns you the number of Options Set.

```csharp
int GetOptionsSetCount();
```

**Returns:** `int`

**See also:** [IClient.GetOptionsSet](#getoptionsset), [IClient.GetOptionsSetByName](#getoptionssetbyname)

### GetPanelInfoByName

This method obtains the [`IServerPanelInfo`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerPanelInfo.md) interface for the specified panel.

```csharp
IServerPanelInfo GetPanelInfoByName(string argPanelName);
```

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

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

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

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

### GetPluginsRegistry

*No description yet.*

```csharp
IPluginsRegistry GetPluginsRegistry();
```

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

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

### GetProcessControl

Returns the Process Control interface. This Process Control determines the number of "re-entrant" processes occurring, ie one client's process occurring stacked on top of another active client's process - this is the process depth. If a process control's process depth is zero, it indicates that nothing is taking place in Altium Designer.

```csharp
IProcessControl GetProcessControl();
```

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

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

This property returns the [`IProcessControl`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IProcessControl.md) interface. This Process Control interface determines the number of "re-entrant" processes occurring, ie one client's process occurring stacked on top of another active client's process - this is the process depth. If a process control's process depth is zero, it indicates that nothing is taking place in Altium Designer. Refer to the [`IProcessControl`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IProcessControl.md) interface for details.

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

### GetProductName

*No description yet.*

```csharp
string GetProductName();
```

**Returns:** `string`

### GetProductVersion

*No description yet.*

```csharp
string GetProductVersion();
```

**Returns:** `string`

### GetRealMainWindowHandle

The method returns the window handle of the main window in Altium Designer.

```csharp
UIntPtr GetRealMainWindowHandle();
```

**Returns:** `UIntPtr`

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

### GetSceneManager

*No description yet.*

```csharp
ISceneManager GetSceneManager();
```

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

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

### GetSearchManager

*No description yet.*

```csharp
ISearchManager GetSearchManager();
```

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

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

### GetSecurityManager

*No description yet.*

```csharp
ISecurityManager GetSecurityManager();
```

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

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

### GetSecurityServerManager

*No description yet.*

```csharp
ISecurityServerManager GetSecurityServerManager();
```

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

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

### GetServerModule

The [`ServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ServerModule.md) property is used in conjunction with the Count property to retrieve active (loaded) servers. The [`ServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/ServerModule.md) property returns the [`IServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) interface for the loaded server module in Altium Designer.

```csharp
IServerModule GetServerModule(int argIndex);
```

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

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

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

Note, that PCB server and Schematic server have their own [`IPCB_ServerInterface`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ServerInterface.md) and [`ISch_ServerInterface`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISch_ServerInterface.md) interfaces respectively.

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

This example gets the Schematic's [`IServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) interface and returns the number of document views open in Altium Designer

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

### GetServerModuleByName

Returns the server module interface depending on the validity of the module name. Use the ServerModuleByName property instead to return the indexed server module.

```csharp
IServerModule GetServerModuleByName(string argModuleName);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argModuleName` | `string` | value | The server module name, for example 'PCB' or 'SCH'. |

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

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

The ServerModuleByName property returns the [`IServerModule`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) interface if the module name is found in the Client's table of active servers. For a PCB editor, module name is PCB, for a Schematic Editor, the module name is SCH etc.

Server Names

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

**Examples:** [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/Commands.cs#L180), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/SchemaBom.cs#L96), [Extension_SchPreference](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_SchPreference/Source%20Code/Commands.cs#L31)

### GetServerNameByPLID

This method returns you the server name based on the PLID identifier string (a string extracted from the server's resources file).

```csharp
string GetServerNameByPLID(string argPLID);
```

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

**Returns:** `string`

### GetServerRecord

The `GetServerRecord` method reports the number of installed servers based on the installation *.INS files in the System folder of Altium Designer installation). Use this in conjunction with the [`GetServerRecordCount`](#getserverrecordcount) method.

```csharp
IServerRecord GetServerRecord(int argIndex);
```

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

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

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

The `IClient` interface has `GetServerRecord` and [`GetServerModule`](#getservermodule) methods. The difference between these two methods is that the `GetServerRecord` method reports the number of installed servers (*.INS files in the \System\ folder of Altium Designer installation).

The [`GetServerModule`](#getservermodule) merely returns the active (loaded) server in Altium Designer and to get each active server, you need to invoke the [`GetCount`](#getcount) method and pass the count parameter into the [`GetServerModule`](#getservermodule) method.

**See also:** [IClient.GetServerRecordCount](#getserverrecordcount), [IClient.GetServerModule](#getservermodule)

### GetServerRecordByFeature

*No description yet.*

```csharp
IServerRecord GetServerRecordByFeature(string argFeature);
```

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

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

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

### GetServerRecordByName

Returns the [`IServerRecord`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerRecord.md) interface for a server module name. This [`IServerRecord`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerRecord.md) interface represents the installation file for the server (with an INS extension).

```csharp
IServerRecord GetServerRecordByName(string argModuleName);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argModuleName` | `string` | value | The server module name. |

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

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

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

### GetServerRecordCount

This method returns the number of server records that represent the server installation files found in the \System\ folder of the Altium Designer software installation. This is to be used in conjunction with the [`GetServerRecord`](#getserverrecord) method.

```csharp
int GetServerRecordCount();
```

**Returns:** `int`

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

### GetServerViewFromName

This method returns the server view object interface depending on the name of the server view. A [`IServerView`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerView.md) interface represents a panel view as well as an ancestor for a document view.

```csharp
IServerView GetServerViewFromName(string argViewName);
```

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

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

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

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

### GetTechnologySets

*No description yet.*

```csharp
string GetTechnologySets(ref uint argValidAtTimestamp);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argValidAtTimestamp` | `uint` | ref |

**Returns:** `string`

### GetTechnologySubscriptionExpirationDate

*No description yet.*

```csharp
double GetTechnologySubscriptionExpirationDate(string argTechnologySet);
```

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

**Returns:** `double`

### GetTimerManager

This property returns the timer manager object interface.

```csharp
ITimerManager GetTimerManager();
```

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

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

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

### GetVersion

*No description yet.*

```csharp
string GetVersion();
```

**Returns:** `string`

### GetWindowKindByName

Returns the [`IServerWindowKind`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerWindowKind.md) interface for a window kind name.

```csharp
IServerWindowKind GetWindowKindByName(string argWindowKindName);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argWindowKindName` | `string` | value | The window kind name, which denotes the document kind. For example, there are two document kinds in the PCB editor - PCB and PCBLIB documents. |

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

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

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

### HandleException

*No description yet.*

```csharp
void HandleException(string argMessage);
```

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

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

### HideDocument

This method hides the document, ie puts it out of focus but not closed or destroyed.

```csharp
void HideDocument(IServerDocument argDocument);
void HideDocument(object argDocument);
```

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

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

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

**See also:** [IClient.CloseDocument](#closedocument), [IClient.OpenDocument](#opendocument), [IClient.ShowDocument](#showdocument), [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md)

### InRecoverySave

This method checks whether Altium Designer is in the process of Recovery Save mode, before you can invoke the [`BeginRecoverySave`](#beginrecoverysave) or [`EndRecoverySave`](#endrecoverysave) methods.

```csharp
bool InRecoverySave();
```

**Returns:** `bool`

**See also:** [IClient.BeginRecoverySave](#beginrecoverysave), [IClient.EndRecoverySave](#endrecoverysave)

### InTestMode

*No description yet.*

```csharp
bool InTestMode();
```

**Returns:** `bool`

### IsDocumentOfKind

*No description yet.*

```csharp
bool IsDocumentOfKind(string argPath, string argDocKind);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPath` | `string` | value |
| `argDocKind` | `string` | value |

**Returns:** `bool`

### IsDocumentOpen

Returns a boolean value whether the document is open in Altium Designer or not.

```csharp
bool IsDocumentOpen(string argFilePath);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argFilePath` | `string` | value | The file path of the document; the result depends on whether this path is valid or not. |

**Returns:** `bool`

### IsInitialized

*No description yet.*

```csharp
bool IsInitialized();
```

**Returns:** `bool`

### IsQuitting

Returns a boolean value that represents the state Altium Designer is in: true if Altium Designer is about to quit or in the process of quitting, false if Altium Designer is still active.

```csharp
bool IsQuitting();
```

**Returns:** `bool`

### LastActiveDocumentOfType

This method returns the last active loaded document in Altium Designer by the document type. Types include PCB, SCH, TEXT, WAVE, PCBLIB, SCHLIB.

```csharp
IServerDocument LastActiveDocumentOfType(string argType);
```

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

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

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

### LicenseInfoStillValid

*No description yet.*

```csharp
bool LicenseInfoStillValid(uint argRetrievedAt);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRetrievedAt` | `uint` | value |

**Returns:** `bool`

### LoadCustomizationsFromFile

*No description yet.*

```csharp
void LoadCustomizationsFromFile(string argRCSFileName);
```

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

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

### LoadCustomizationsFromFileByMode

*No description yet.*

```csharp
void LoadCustomizationsFromFileByMode(string argRCSFileName, bool argRemoveAllUserResources);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRCSFileName` | `string` | value |
| `argRemoveAllUserResources` | `bool` | value |

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

### LoadCustomizationsFromPath

*No description yet.*

```csharp
void LoadCustomizationsFromPath(string argRCSFilePath);
```

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

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

### LoadGlobalPreferencesFromVault

*No description yet.*

```csharp
void LoadGlobalPreferencesFromVault(string argVaultGuid, string argItemRevisionGUID);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argVaultGuid` | `string` | value |
| `argItemRevisionGUID` | `string` | value |

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

### OpenDocument

The `OpenDocument` method returns the [`IServerDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) interface depending on the DocumentKind and FileName values of this document are valid.

```csharp
IServerDocument OpenDocument(string argKind, string argFileName);
```

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

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

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

**See also:** [IClient.ShowDocument](#showdocument)

**Examples:** [Extension_ChangeOutputJobFile](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ChangeOutputJobFile/Source%20Code/Commands.cs#L25), [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Commands.cs#L42), [Extension_GenerateGerber](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_GenerateGerber/Source%20Code/Commands.cs#L39), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L45), [Extension_IntegratedLibraryManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_IntegratedLibraryManager/Source%20Code/Commands.cs#L56), [Extension_PCBDrawing](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PCBDrawing/Source%20Code/Commands.cs#L26), [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L135), [Extension_PcbLibToImage](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PcbLibToImage/Source%20Code/Commands.cs#L33)

### OpenDocumentShowOrHide

This method opens a specific document but you can control how it is displayed in the Altium Designer workspace.

```csharp
IServerDocument OpenDocumentShowOrHide(string argKind, string argFileName, bool argShowInTree);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argKind` | `string` | value |
| `argFileName` | `string` | value |
| `argShowInTree` | `bool` | value |

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

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

### OpenNewDocument

*No description yet.*

```csharp
IServerDocument OpenNewDocument(string argKind, string argFileName, string argNewName, bool argReuseExisting);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argKind` | `string` | value |
| `argFileName` | `string` | value |
| `argNewName` | `string` | value |
| `argReuseExisting` | `bool` | value |

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

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

### ProductInfo

*No description yet.*

```csharp
IProductInfo ProductInfo();
```

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

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

### QuerySystemFont

Query the system font used.

```csharp
void QuerySystemFont(TFontQueryMode argQueryMode, ref bool argUseSysFont, ref string argFontName, ref int argFontSize, ref TFontStyleSet argFontStyle, ref int argFontColor, ref int argFontCharset);
void QuerySystemFont(int argQueryMode, ref bool argUseSysFont, ref string argFontName, ref int argFontSize, ref ITransportSet argFontStyle, ref int argFontColor, ref int argFontCharset);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argQueryMode` | [TFontQueryMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TFontQueryMode.md) | value |
| `argUseSysFont` | `bool` | ref |
| `argFontName` | `string` | ref |
| `argFontSize` | `int` | ref |
| `argFontStyle` | [TFontStyleSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TFontStyleSet.md) | ref |
| `argFontColor` | `int` | ref |
| `argFontCharset` | `int` | ref |

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

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

### RegisterFilteredNotificationHandler

*No description yet.*

```csharp
void RegisterFilteredNotificationHandler(INotificationHandler argHandler, string argNotificationFilter);
void RegisterFilteredNotificationHandler(object argHandler, string argNotificationFilter);
```

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

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

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

### RegisterNotificationHandler

The `RegisterNotificationHandler` method registers the notification handler in the Client module part of Altium Designer once the server object is created and loaded in computer memory.

```csharp
void RegisterNotificationHandler(INotificationHandler argHandler);
void RegisterNotificationHandler(object argHandler);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argHandler` | [INotificationHandler](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md) | value | The server module object. |

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

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

The [`INotificationHandler`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md) object interface is responsible for handling notifications raised in Altium Designer.

Each server object has an [`INotificationHandler.HandleNotification`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md#handlenotification) method to handle notifications when the options values have been adjusted from the system wide Preferences dialog.

The [`INotificationHandler.HandleNotification`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md#handlenotification) method would involve calls to update the server preferences values on the server panel for example every-time a specific server notification code is intercepted.

This method is normally used for in developing servers and not for extensions.

**See also:** [IClient.BroadcastNotification](#broadcastnotification), [IClient.DispatchNotification](#dispatchnotification), [INotificationHandler](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md)

### RegisterServerNotificationHandler

*No description yet.*

```csharp
void RegisterServerNotificationHandler(IServerModule argServerModule, INotificationHandler argHandler, string argNotificationFilter);
void RegisterServerNotificationHandler(object argServerModule, object argHandler, string argNotificationFilter);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argServerModule` | [IServerModule](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md) | value |
| `argHandler` | [INotificationHandler](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md) | value |
| `argNotificationFilter` | `string` | value |

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

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

### ReleaseGlobalPreferencesToVault

*No description yet.*

```csharp
void ReleaseGlobalPreferencesToVault(string argVaultGUID, string argItemGUID);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argVaultGUID` | `string` | value |
| `argItemGUID` | `string` | value |

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

### RemoveServerView

This method removes a server view (representing a server document window) from Altium Designer.

```csharp
void RemoveServerView(IServerView argView);
void RemoveServerView(object argView);
```

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

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

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

**See also:** [IClient.CurrentView](#currentview)

### SaveCustomizationsForExport

*No description yet.*

```csharp
string SaveCustomizationsForExport();
```

**Returns:** `string`

### ShowDocument

Displays the design document in Altium Designer.

```csharp
void ShowDocument(IServerDocument argDocument);
void ShowDocument(object argDocument);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argDocument` | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) | value | The server document loaded in Altium Designer. |

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

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

[`IServerDocument`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) example

This example gets the client interface and then opens and shows a document.

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

**Examples:** [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Commands.cs#L43), [Extension_HierarchicalDesign](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_HierarchicalDesign/Source%20Code/Commands.cs#L47), [Extension_IntegratedLibraryManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_IntegratedLibraryManager/Source%20Code/Commands.cs#L58), [Extension_PartComment](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PartComment/Source%20Code/Commands.cs#L137), [Extension_PcbLibToImage](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_PcbLibToImage/Source%20Code/Commands.cs#L37)

### ShowDocumentDontFocus

Displays the design document but leaves the previously focussed document in focus. If there are not design documents open already, then this design document will still be displayed but not focussed.

```csharp
void ShowDocumentDontFocus(IServerDocument argDocument);
void ShowDocumentDontFocus(object argDocument);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argDocument` | [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md) | value | The design document to display. |

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

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

**See also:** [IClient.OpenDocument](#opendocument), [IClient.ShowDocument](#showdocument), [IServerDocument](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerDocument.md)

### StartServer

The `StartServer` and [`StopServer`](#stopserver) properties can be used to load a server in Altium Designer if it has not already, before you can invoke this server's processes and to stop this server once you have done with these server processes. This can be used to conserve computer's memory.

```csharp
bool StartServer(string argModuleName);
```

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

**Returns:** `bool`

The `StartServer` method is usually used if you need to load a design document and execute the server's processes or its API methods if the server has not been loaded yet. Example, during a blank session of Altium Designer where there are no PCB documents open, and you need to use the PCB API to manipulate the contents on a PCB document, you would need to "start" the PCB server first so the PCB API is made active.

Example of the `StartServer` method

**Example:** Start the PCB server.

```csharp
using DXP;

DXP.GlobalVars.Client.StartServer("PCB");
```

**See also:** [IClient.StopServer](#stopserver)

**Examples:** [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/CiivaBOMDocument.cs#L251), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/Commands.cs#L183), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/SchemaBom.cs#L99), [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Commands.cs#L28)

### StartSuspendTestMode

*No description yet.*

```csharp
void StartSuspendTestMode();
```

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

### StopServer

The [`StartServer`](#startserver) and `StopServer` properties can be used to load a server in Altium Designer if it has not loaded already, before you can invoke this server's processes and to stop this server once you have done with these server processes. This can be used to conserve computer's memory.

```csharp
bool StopServer(string argModuleName, bool argUnloadDLL);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argModuleName` | `string` | value |
| `argUnloadDLL` | `bool` | value |

**Returns:** `bool`

The [`StartServer`](#startserver) method is usually used if you need to load a design document and execute the server's processes or its API methods if the server has not been loaded yet. Example, during a blank session of Altium Designer where there are no PCB documents open, and you need to use the PCB API to manipulate the contents on a PCB document, you would need to "start" the PCB server first so the PCB API is made active.

Example of the `StopServer` method

**Example:** Stop the PCB server.

```csharp
using DXP;

// Sample value: whether to unload the server's DLL as well.
bool unloadDll = false;
DXP.GlobalVars.Client.StopServer("PCB", unloadDll);
```

**See also:** [IClient.StartServer](#startserver)

### StopSuspendTestMode

*No description yet.*

```csharp
void StopSuspendTestMode();
```

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

### UnregisterNotificationHandler

The `UnregisterNotificationHandler` method un registers the notification handler from Client once the server object goes out of scope (destroyed).

```csharp
void UnregisterNotificationHandler(INotificationHandler argHandler);
void UnregisterNotificationHandler(object argHandler);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argHandler` | [INotificationHandler](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md) | value | The server module object. |

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

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

The [`INotificationHandler`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md) object interface is responsible for handling notifications raised in Altium Designer.

Each server object has an [`INotificationHandler.HandleNotification`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md#handlenotification) method to handle notifications when the options values have been adjusted from the system wide Preferences dialog.

The [`INotificationHandler.HandleNotification`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md#handlenotification) method would involve calls to update the server preferences values on the server panel for example every-time a specific server notification code is intercepted.

This method is normally used for in developing servers and not for extensions.

**See also:** [IClient.BroadcastNotification](#broadcastnotification), [IClient.DispatchNotification](#dispatchnotification), [IClient.RegisterNotificationHandler](#registernotificationhandler), [INotificationHandler](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/INotificationHandler.md)

### UnregisterServerNotificationHandler

*No description yet.*

```csharp
void UnregisterServerNotificationHandler(IServerModule argServerModule, INotificationHandler argHandler);
void UnregisterServerNotificationHandler(object argServerModule, object argHandler);
```

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

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

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

## Returned by

[IServerModule.GetClient](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IServerModule.md#getclient), [GlobalVars.Client](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/GlobalVars.md#client)

## Accepted by

[Utils.GetBomManagerFactory](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp/Utils.md#getbommanagerfactory)

## Examples

Used in the SDK examples: [Ciiva](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Ciiva/Source%20Code/Main.cs#L15), [Extension_AddVariant](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_AddVariant/Source%20Code/Main.cs#L14), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/Commands.cs#L57), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/Main.cs#L14), [Extension_BOMManager](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BOMManager/Source%20Code/SchemaBom.cs#L91), [Extension_BlockAD_CS](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_BlockAD_CS/Source%20Code/Main.cs#L14), [Extension_ChangeOutputJobFile](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_ChangeOutputJobFile/Source%20Code/Main.cs#L14), [Extension_CreatePCBLib](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreatePCBLib/Source%20Code/Main.cs#L14), [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Commands.cs#L25), [Extension_CreateProject](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateProject/Source%20Code/Main.cs#L14), [Extension_CreateSchComponent](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateSchComponent/Source%20Code/Main.cs#L14), [Extension_CreateVariantComponent](https://github.com/AltiumDeveloper/ad-sdk-examples/blob/5b144f54740a53ec578b3b6c3f902b831e0b1144/Extension_CreateVariantComponent/Source%20Code/Main.cs#L14).
