# OpcClient.GetNodeTypeSystem Method

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcClient</a></dd>
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx.client">Opc.UaFx.Client</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
<dt>Members</dt>
<dd><a href="./members">OpcClient Members</a></dd>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

<span class="api-meta">since v2.9</span>

Retrieves the system used to describe the type of nodes accessed on the server connected to.

<div class="api-signature" data-lang="csharp">

```csharp
public OpcNodeTypeSystem GetNodeTypeSystem()
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Function GetNodeTypeSystem() As OpcNodeTypeSystem
```

</div>

**Returns**

[OpcNodeTypeSystem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/)

An instance of the [OpcNodeTypeSystem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/) class which can be used to understand the structure of the nodes accessed.

**Exceptions**

| Exception | Condition |
|---|---|
| [InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception) | The requested operation is currently not supported. |
| [LicenseException](https://learn.microsoft.com/dotnet/api/system.componentmodel.licenseexception) | The license is expired. |
| [ObjectDisposedException](https://learn.microsoft.com/dotnet/api/system.objectdisposedexception) | The object has been disposed of. |
| [OpcException](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexception/) | The service execution failed upon different circumstances; for more details see exception details. |

**Remarks**

The [OpcNodeTypeSystem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/) offered represents by default the node type system defined in address space of the server and its node type information is queried on-demand using different request operations. This "overhead" can be overcome using an offline stored [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) which needs to be loaded and assigned to the [NodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/nodeset) property of the current [OpcClient](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/).

In case there [NodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/nodeset) property has been set to an instance of the [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) class the offered [OpcNodeTypeSystem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/) expresses the node type information contained in the [NodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/nodeset) configured.
