
# INavigationSystem interface

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.

```csharp
public interface INavigationSystem
```

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

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [DisableHistory](#disablehistory) | `void` |  |
| [EnableHistory](#enablehistory) | `void` |  |
| [ExpandTargets](#expandtargets) | `void` |  |
| [IsHistoryEnabled](#ishistoryenabled) | `bool` |  |
| [NavigateTo](#navigateto) | `bool` |  |
| [NavigateToScene](#navigatetoscene) | `bool` |  |
| [ParseDestinationString](#parsedestinationstring) | `void` |  |
| [RegisterNavigationProvider](#registernavigationprovider) | `UIntPtr` |  |
| [UnregisterNavigationProtocol](#unregisternavigationprotocol) | `void` |  |
| [ValidatedTarget](#validatedtarget) | `string` |  |

### DisableHistory

*No description yet.*

```csharp
void DisableHistory();
```

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

### EnableHistory

*No description yet.*

```csharp
void EnableHistory();
```

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

### ExpandTargets

*No description yet.*

```csharp
void ExpandTargets(ref string argTarget);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argTarget` | `string` | ref |

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

### IsHistoryEnabled

*No description yet.*

```csharp
bool IsHistoryEnabled();
```

**Returns:** `bool`

### NavigateTo

*No description yet.*

```csharp
bool NavigateTo(IExternalForm argCurrentView, ref string argDestination, out IExternalForm argTargetView);
bool NavigateTo(object argCurrentView, ref string argDestination, out IExternalForm argTargetView);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argCurrentView` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | value |
| `argDestination` | `string` | ref |
| `argTargetView` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | out |

**Returns:** `bool`

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

### NavigateToScene

*No description yet.*

```csharp
bool NavigateToScene(IExternalForm argCurrentView, ref string argDestination, out IExternalForm argTargetView, out IExternalForm argTargetHeaderView);
bool NavigateToScene(object argCurrentView, ref string argDestination, out IExternalForm argTargetView, out IExternalForm argTargetHeaderView);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argCurrentView` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | value |
| `argDestination` | `string` | ref |
| `argTargetView` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | out |
| `argTargetHeaderView` | [IExternalForm](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IExternalForm.md) | out |

**Returns:** `bool`

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

### ParseDestinationString

*No description yet.*

```csharp
void ParseDestinationString(string argDestination, ref string argProtocol, ref string argTarget, ref string argParameters);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argDestination` | `string` | value |
| `argProtocol` | `string` | ref |
| `argTarget` | `string` | ref |
| `argParameters` | `string` | ref |

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

### RegisterNavigationProvider

*No description yet.*

```csharp
UIntPtr RegisterNavigationProvider(string argProtocolName, INavigationProvider argNavigationProvider);
```

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

**Returns:** `UIntPtr`

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

### UnregisterNavigationProtocol

*No description yet.*

```csharp
void UnregisterNavigationProtocol(string argProtocol, UIntPtr argHandle);
void UnregisterNavigationProtocol(string argProtocol, object argHandle);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argProtocol` | `string` | value |
| `argHandle` | `UIntPtr` | value |

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

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

### ValidatedTarget

*No description yet.*

```csharp
string ValidatedTarget(string argTarget);
```

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

**Returns:** `string`

## Returned by

[IClient.GetNavigationSystem](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/IClient.md#getnavigationsystem)
