# OpcNodeSetManager Members

> Reference: Provides a specialisation of the OpcNodeManager to import nodes from one or more OpcNodeSets and implement them using a OpcImplementNodeCallback.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcNodeSetManager</a></dd>
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx.server">Opc.UaFx.Server</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
</dl>

Inherits members from [OpcNodeManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members).

## Properties

### ImplementNodeCallback

Gets or sets the callback used to implement the nodes of the current [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/).

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

```csharp
public OpcImplementNodeCallback ImplementNodeCallback { get; set; }
```

</div>

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

```vbnet
Public Property ImplementNodeCallback As OpcImplementNodeCallback
```

</div>

**Property value**

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

A [OpcImplementNodeCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcimplementnodecallback/) used to implement the nodes of the current [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/). The value can also be a null reference (Nothing in Visual Basic).

### ImportOptions

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

Gets or sets the options to use to import the node sets of the node manager.

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

```csharp
public OpcNodeSetImportOptions ImportOptions { get; set; }
```

</div>

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

```vbnet
Public Property ImportOptions As OpcNodeSetImportOptions
```

</div>

**Property value**

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

A combination of the [OpcNodeSetImportOptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetimportoptions/) flags. The default value is [None](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetimportoptions/#none).

**Remarks**

The property provides the [NodeSetImportOptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#nodesetimportoptions) of the node manager.

## Methods

### Create

<span class="api-meta">static · 3 overloads</span>

| Overload | Description |
|---|---|
| [Create(OpcNodeSet)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/members#create-opc-uafx-opcnodeset)<span class="api-meta">static</span> | Creates a new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) using the `nodeSet` specified. |
| [Create(OpcNodeSet, IEnumerable&lt;OpcNodeSet&gt;)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/members#create-opc-uafx-opcnodeset-system-collections-generic-ienumerable-of-opc-uafx-opcnodeset)<span class="api-meta">static</span> | Creates a new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) using the `nodeSet` and additionally specified `nodeSets`. |
| [Create(OpcNodeSet, params OpcNodeSet\[\])](#create-opc-uafx-opcnodeset-opc-uafx-opcnodeset-array)<span class="api-meta">static</span> | Creates a new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) using the `nodeSet` and additionally specified `nodeSets`. |

#### Create(OpcNodeSet)

<span class="api-meta">static</span>

Creates a new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) using the `nodeSet` specified.

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

```csharp
public static OpcNodeSetManager Create(OpcNodeSet nodeSet)
```

</div>

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

```vbnet
Public Shared Function Create(nodeSet As OpcNodeSet) As OpcNodeSetManager
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `nodeSet` | [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) | The [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) to import. |

**Returns**

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

A new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) class which has been initialized with the `nodeSet` specified.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `nodeSet` is a null reference (Nothing in Visual Basic). |

**Remarks**

The newly created [OpcNodeManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/) (represented by the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) returned) uses the [Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/members#namespaces) as its own [Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#namespaces) and imports the node information in the `nodeSet` during the creation of the address space.

#### Create(OpcNodeSet, IEnumerable&lt;OpcNodeSet&gt;)

<span class="api-meta">static</span>

Creates a new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) using the `nodeSet` and additionally specified `nodeSets`.

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

```csharp
public static OpcNodeSetManager Create(
    OpcNodeSet nodeSet,
    IEnumerable<OpcNodeSet> nodeSets)
```

</div>

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

```vbnet
Public Shared Function Create(
    nodeSet As OpcNodeSet,
    nodeSets As IEnumerable(Of OpcNodeSet)) As OpcNodeSetManager
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `nodeSet` | [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) | The first [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) to import. |
| `nodeSets` | [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/)&gt; | A sequence of subsequent [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/)s to import. |

**Returns**

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

A new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) class which has been initialized with the `nodeSet` and additionally specified `nodeSets` sequence.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `nodeSet` or one of the items in `nodeSets` is a null reference (Nothing in Visual Basic). |

**Remarks**

The newly created [OpcNodeManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/) (represented by the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) returned) uses the [Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/members#namespaces) in `nodeSet` and `nodeSets` as its own [Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#namespaces) and imports the node information in the `nodeSet` and `nodeSets` during the creation of the address space.

#### Create(OpcNodeSet, params OpcNodeSet\[\])

<span class="api-meta">static</span>

Creates a new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) using the `nodeSet` and additionally specified `nodeSets`.

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

```csharp
public static OpcNodeSetManager Create(
    OpcNodeSet nodeSet,
    params OpcNodeSet[] nodeSets)
```

</div>

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

```vbnet
Public Shared Function Create(
    nodeSet As OpcNodeSet,
    ParamArray nodeSets As OpcNodeSet()) As OpcNodeSetManager
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `nodeSet` | [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) | The first [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) to import. |
| `nodeSets` | params [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/)[] | An array of subsequent [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/)s to import. |

**Returns**

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

A new instance of the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) class which has been initialized with the `nodeSet` and additionally specified `nodeSets` array.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `nodeSet` or one of the items in `nodeSets` is a null reference (Nothing in Visual Basic). |

**Remarks**

The newly created [OpcNodeManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/) (represented by the [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/) returned) uses the [Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/members#namespaces) in `nodeSet` and `nodeSets` as its own [Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#namespaces) and imports the node information in the `nodeSet` and `nodeSets` during the creation of the address space.

### ImplementNode

<span class="api-meta">protected · override</span>

When implemented in a derived class, implements the logic required to integrate the `node` into the underlying system.

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

```csharp
protected override sealed void ImplementNode(IOpcNode node)
```

</div>

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

```vbnet
Protected NotOverridable Overrides Sub ImplementNode(node As IOpcNode)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `node` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | An instance implementing the [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) interface which is to be integrated into the underlying system. |

**Overrides**

[ImplementNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#implementnode)

**Remarks**

This method is called during the whole address space creation. This includes the import of nodes using [ImportNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#importnodes) and the creation of nodes using [CreateNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#createnodes). Each node imported / created is passed to this method to integrate it accordingly into the underlying system.

Additionally this method is called after the startup of the server whenever a client adds another node to the address space part(s) maintained by the current [OpcNodeManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/).

### ImportNodes

<span class="api-meta">protected · override</span>

When implemented in a derived class, offers the different [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/)s which are imported prior any other nodes are created within the address space part organized by the current [OpcNodeManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/).

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

```csharp
protected override sealed IEnumerable<OpcNodeSet> ImportNodes()
```

</div>

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

```vbnet
Protected NotOverridable Overrides Function ImportNodes() As IEnumerable(Of OpcNodeSet)
```

</div>

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/)&gt;

A sequence of [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/) instances to use to import external stored node information into the address space.

**Overrides**

[ImportNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#importnodes)
