# OpcObjectNode Members

> Reference: Defines a logical unit to represent more complex information as a OpcVariableNode.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcObjectNode</a></dd>
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx">Opc.UaFx</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 [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members), [OpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members).

## Constructors

### OpcObjectNode

<span class="api-meta">18 overloads</span>

| Overload | Description |
|---|---|
| [OpcObjectNode(OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-opcname) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified. |
| [OpcObjectNode(OpcName, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-opcname-opc-uafx-opcinstancenode-array) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and with the initial child nodes specified by `children`. |
| [OpcObjectNode(OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-opcname-opc-uafx-opcnodeid) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified. |
| [OpcObjectNode(OpcName, OpcNodeId, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcinstancenode-array) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` and with the initial child nodes specified by `children`. |
| [OpcObjectNode(IOpcNode, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-iopcnode-opc-uafx-opcname) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given. |
| [OpcObjectNode(IOpcNode, OpcName, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcinstancenode-array) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`. |
| [OpcObjectNode(IOpcNode, OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given. |
| [OpcObjectNode(IOpcNode, OpcName, OpcNodeId, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcinstancenode-array) | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`. |
| [OpcObjectNode(BaseObjectState)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-ua-baseobjectstate)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class using the `content` as the instance to wrap. |
| [OpcObjectNode(BaseObjectState, OpcNodeModel)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-ua-baseobjectstate-opc-uafx-opcnodemodel)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class using the `content` as the instance to wrap. |
| [OpcObjectNode(OpcNodeModel, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-opcname)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified. |
| [OpcObjectNode(OpcNodeModel, OpcName, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-opcname-opc-uafx-opcinstancenode-array)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and with the initial child nodes specified by `children`. |
| [OpcObjectNode(OpcNodeModel, OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-opcname-opc-uafx-opcnodeid)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified. |
| [OpcObjectNode(OpcNodeModel, OpcName, OpcNodeId, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcinstancenode-array)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` and with the initial child nodes specified by `children`. |
| [OpcObjectNode(OpcNodeModel, IOpcNode, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-iopcnode-opc-uafx-opcname)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given. |
| [OpcObjectNode(OpcNodeModel, IOpcNode, OpcName, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcinstancenode-array)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`. |
| [OpcObjectNode(OpcNodeModel, IOpcNode, OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given. |
| [OpcObjectNode(OpcNodeModel, IOpcNode, OpcName, OpcNodeId, params OpcInstanceNode\[\])](#opcobjectnode-opc-uafx-opcnodemodel-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcinstancenode-array)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`. |

#### OpcObjectNode(OpcName)

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified.

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

```csharp
public OpcObjectNode(OpcName name)
```

</div>

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

```vbnet
Public Sub New(name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |

#### OpcObjectNode(OpcName, params OpcInstanceNode\[\])

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and with the initial child nodes specified by `children`.

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

```csharp
public OpcObjectNode(OpcName name, params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Public Sub New(name As OpcName, ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

#### OpcObjectNode(OpcName, OpcNodeId)

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified.

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

```csharp
public OpcObjectNode(OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Public Sub New(name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |

#### OpcObjectNode(OpcName, OpcNodeId, params OpcInstanceNode\[\])

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` and with the initial child nodes specified by `children`.

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

```csharp
public OpcObjectNode(
    OpcName name,
    OpcNodeId id,
    params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Public Sub New(
    name As OpcName,
    id As OpcNodeId,
    ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

#### OpcObjectNode(IOpcNode, OpcName)

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given.

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

```csharp
public OpcObjectNode(IOpcNode parent, OpcName name)
```

</div>

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

```vbnet
Public Sub New(parent As IOpcNode, name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |

#### OpcObjectNode(IOpcNode, OpcName, params OpcInstanceNode\[\])

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`.

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

```csharp
public OpcObjectNode(
    IOpcNode parent,
    OpcName name,
    params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Public Sub New(
    parent As IOpcNode,
    name As OpcName,
    ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

#### OpcObjectNode(IOpcNode, OpcName, OpcNodeId)

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given.

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

```csharp
public OpcObjectNode(IOpcNode parent, OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Public Sub New(parent As IOpcNode, name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |

#### OpcObjectNode(IOpcNode, OpcName, OpcNodeId, params OpcInstanceNode\[\])

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`.

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

```csharp
public OpcObjectNode(
    IOpcNode parent,
    OpcName name,
    OpcNodeId id,
    params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Public Sub New(
    parent As IOpcNode,
    name As OpcName,
    id As OpcNodeId,
    ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

#### OpcObjectNode(BaseObjectState)

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class using the `content` as the instance to wrap.

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

```csharp
protected OpcObjectNode(BaseObjectState content)
```

</div>

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

```vbnet
Protected Sub New(content As BaseObjectState)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `content` | <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseObjectState">BaseObjectState</abbr> | The <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseObjectState">BaseObjectState</abbr> to wrap. |

**Exceptions**

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

#### OpcObjectNode(BaseObjectState, OpcNodeModel)

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class using the `content` as the instance to wrap.

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

```csharp
protected OpcObjectNode(BaseObjectState content, OpcNodeModel model)
```

</div>

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

```vbnet
Protected Sub New(content As BaseObjectState, model As OpcNodeModel)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `content` | <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseObjectState">BaseObjectState</abbr> | The <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseObjectState">BaseObjectState</abbr> to wrap. |
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |

**Exceptions**

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

#### OpcObjectNode(OpcNodeModel, OpcName)

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified.

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

```csharp
protected OpcObjectNode(OpcNodeModel model, OpcName name)
```

</div>

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

```vbnet
Protected Sub New(model As OpcNodeModel, name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |

#### OpcObjectNode(OpcNodeModel, OpcName, params OpcInstanceNode\[\])

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and with the initial child nodes specified by `children`.

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

```csharp
protected OpcObjectNode(
    OpcNodeModel model,
    OpcName name,
    params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Protected Sub New(
    model As OpcNodeModel,
    name As OpcName,
    ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

#### OpcObjectNode(OpcNodeModel, OpcName, OpcNodeId)

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified.

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

```csharp
protected OpcObjectNode(OpcNodeModel model, OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Protected Sub New(model As OpcNodeModel, name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |

#### OpcObjectNode(OpcNodeModel, OpcName, OpcNodeId, params OpcInstanceNode\[\])

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` and with the initial child nodes specified by `children`.

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

```csharp
protected OpcObjectNode(
    OpcNodeModel model,
    OpcName name,
    OpcNodeId id,
    params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Protected Sub New(
    model As OpcNodeModel,
    name As OpcName,
    id As OpcNodeId,
    ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

#### OpcObjectNode(OpcNodeModel, IOpcNode, OpcName)

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given.

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

```csharp
protected OpcObjectNode(OpcNodeModel model, IOpcNode parent, OpcName name)
```

</div>

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

```vbnet
Protected Sub New(model As OpcNodeModel, parent As IOpcNode, name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |

#### OpcObjectNode(OpcNodeModel, IOpcNode, OpcName, params OpcInstanceNode\[\])

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`.

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

```csharp
protected OpcObjectNode(
    OpcNodeModel model,
    IOpcNode parent,
    OpcName name,
    params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Protected Sub New(
    model As OpcNodeModel,
    parent As IOpcNode,
    name As OpcName,
    ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

#### OpcObjectNode(OpcNodeModel, IOpcNode, OpcName, OpcNodeId)

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given.

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

```csharp
protected OpcObjectNode(
    OpcNodeModel model,
    IOpcNode parent,
    OpcName name,
    OpcNodeId id)
```

</div>

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

```vbnet
Protected Sub New(
    model As OpcNodeModel,
    parent As IOpcNode,
    name As OpcName,
    id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |

#### OpcObjectNode(OpcNodeModel, IOpcNode, OpcName, OpcNodeId, params OpcInstanceNode\[\])

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

Initializes a new instance of the [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) class accessible by the `name`, `id` specified as a child node of the `parent` node given and with the initial child nodes specified by `children`.

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

```csharp
protected OpcObjectNode(
    OpcNodeModel model,
    IOpcNode parent,
    OpcName name,
    OpcNodeId id,
    params OpcInstanceNode[] children)
```

</div>

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

```vbnet
Protected Sub New(
    model As OpcNodeModel,
    parent As IOpcNode,
    name As OpcName,
    id As OpcNodeId,
    ParamArray children As OpcInstanceNode())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new object node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new object node can be identified and accessed. |
| `children` | params [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/)[] | The initial child nodes of the node. |

## Properties

### DefaultReferenceTypeId

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

Gets the default identifier which identifies the type that defines the underlying node reference within this [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/) is referenced by its parent node.

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

```csharp
protected override OpcNodeId DefaultReferenceTypeId { get; }
```

</div>

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

```vbnet
Protected Overrides ReadOnly Property DefaultReferenceTypeId As OpcNodeId
```

</div>

**Property value**

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

The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) of the reference wihin this [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/) is referenced. These reference defines the typical behaviour of an instance node and its role in the address space regarding its parent. If there exists no specific reference type a null reference (Nothing in Visual Basic).

**Overrides**

[DefaultReferenceTypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#defaultreferencetypeid)

### DefaultTypeDefinitionId

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

Gets the default identifier which identifies the node that defines the underlying node type from that this [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/) has been created.

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

```csharp
protected override OpcNodeId DefaultTypeDefinitionId { get; }
```

</div>

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

```vbnet
Protected Overrides ReadOnly Property DefaultTypeDefinitionId As OpcNodeId
```

</div>

**Property value**

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

The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) of the type node from that this [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/) has been created from. These type node defines the typical structure of an instance node of its type definition. If there exists no specific type definition node a null reference (Nothing in Visual Basic).

**Overrides**

[DefaultTypeDefinitionId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#defaulttypedefinitionid)

### IsHistorizingEvents

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

Gets or sets a value indiciating whether there exists an event history for the node.

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

```csharp
public bool IsHistorizingEvents { get; set; }
```

</div>

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

```vbnet
Public Property IsHistorizingEvents As Boolean
```

</div>

**Property value**

[Boolean](https://learn.microsoft.com/dotnet/api/system.boolean)

The value true if an event history exists; otherwise the value false. The default value is false.

## Methods

### AddNotifier

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

Adds the `node` to the collection of notifiers (= event sources) of this node.

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

```csharp
public override sealed void AddNotifier(OpcContext context, IOpcNode node)
```

</div>

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

```vbnet
Public NotOverridable Overrides Sub AddNotifier(
    context As OpcContext,
    node As IOpcNode)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use to add the `node` as the notifying event source. |
| `node` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) instance acting as the notifier. |

**Exceptions**

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

**Overrides**

[AddNotifier](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#addnotifier)

**Remarks**

If the `node` is the first notifier being added to the collection of notifiers the [EventNotifier](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#eventnotifier) attribute of this [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) is set to 'SubscribeToEvents'.

### RemoveNotifier

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

Removes the `node` from the collection of notifiers (= event sources) of this node.

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

```csharp
public override void RemoveNotifier(OpcContext context, IOpcNode node)
```

</div>

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

```vbnet
Public Overrides Sub RemoveNotifier(context As OpcContext, node As IOpcNode)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use to remove the `node` as the notifying event source. |
| `node` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) instance no longer acting as the notifier. |

**Exceptions**

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

**Overrides**

[RemoveNotifier](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#removenotifier)

**Remarks**

If the `node` is the last notifier being removed from the collection of notifiers the [EventNotifier](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#eventnotifier) attribute of this [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) is unset from 'SubscribeToEvents'.
