# OpcAddObjectNode.TypeDefinition Members

> Reference: Refers to a type definition which can be used to define typed OpcAddObjectNode command instances.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcAddObjectNode.TypeDefinition</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>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

## Properties

### TypeDefinitionId

Gets the identifier which identifies the node that defines the node definition represented by this instance.

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

```csharp
public OpcNodeId TypeDefinitionId { get; }
```

</div>

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

```vbnet
Public ReadOnly Property TypeDefinitionId 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 additional nodes can be created from.

## Methods

### Create

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

| Overload | Description |
|---|---|
| [Create(OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/members#create-opc-uafx-opcname) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add. |
| [Create(OpcName, params OpcAddInstanceNode\[\])](#create-opc-uafx-opcname-opc-uafx-opcaddinstancenode-array) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add. |
| [Create(OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/members#create-opc-uafx-opcname-opc-uafx-opcnodeid) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |
| [Create(OpcName, OpcNodeId, params OpcAddInstanceNode\[\])](#create-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcaddinstancenode-array) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |
| [Create(OpcName, OpcNodeId, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/members#create-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |
| [Create(OpcName, OpcNodeId, OpcNodeId, params OpcAddInstanceNode\[\])](#create-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid-opc-uafx-opcaddinstancenode-array) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |
| [Create(OpcName, OpcNodeId, OpcNodeId, OpcReferenceType)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/members#create-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid-opc-uafx-opcreferencetype) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |
| [Create(OpcName, OpcNodeId, OpcNodeId, OpcReferenceType, params OpcAddInstanceNode\[\])](#create-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid-opc-uafx-opcreferencetype-opc-uafx-opcaddinstancenode-array) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |
| [Create(OpcName, OpcNodeId, OpcNodeId, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/members#create-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid-opc-uafx-opcnodeid) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |
| [Create(OpcName, OpcNodeId, OpcNodeId, OpcNodeId, params OpcAddInstanceNode\[\])](#create-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid-opc-uafx-opcnodeid-opc-uafx-opcaddinstancenode-array) | Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. |

#### Create(OpcName)

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add. The according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) to identify and access the new node is determined by the service. The new node will be a child of the [ObjectsFolder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjecttypes/members#objectsfolder) node using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference.

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

```csharp
public OpcAddObjectNode Create(OpcName name)
```

</div>

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

```vbnet
Public Function Create(name As OpcName) As OpcAddObjectNode
```

</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. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, params OpcAddInstanceNode\[\])

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add. The according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) to identify and access the new node is determined by the service. The new node will be a child of the [ObjectsFolder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjecttypes/members#objectsfolder) node using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    params OpcAddInstanceNode[] children)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    ParamArray children As OpcAddInstanceNode()) As OpcAddObjectNode
```

</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 [OpcAddInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddinstancenode/)[] | The initial child nodes of the node to add. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId)

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the [ObjectsFolder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjecttypes/members#objectsfolder) node using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference.

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

```csharp
public OpcAddObjectNode Create(OpcName name, OpcNodeId nodeId)
```

</div>

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

```vbnet
Public Function Create(name As OpcName, nodeId As OpcNodeId) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name` or `nodeId` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId, params OpcAddInstanceNode\[\])

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the [ObjectsFolder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjecttypes/members#objectsfolder) node using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    OpcNodeId nodeId,
    params OpcAddInstanceNode[] children)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    nodeId As OpcNodeId,
    ParamArray children As OpcAddInstanceNode()) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |
| `children` | params [OpcAddInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddinstancenode/)[] | The initial child nodes of the node to add. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name` or `nodeId` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId, OpcNodeId)

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the node identified by `parentNodeId` using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    OpcNodeId nodeId,
    OpcNodeId parentNodeId)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    nodeId As OpcNodeId,
    parentNodeId As OpcNodeId) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |
| `parentNodeId` | [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 parent node to reference using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `parentNodeId` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) or `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name`, `nodeId` or `parentNodeId` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId, OpcNodeId, params OpcAddInstanceNode\[\])

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the node identified by `parentNodeId` using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    OpcNodeId nodeId,
    OpcNodeId parentNodeId,
    params OpcAddInstanceNode[] children)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    nodeId As OpcNodeId,
    parentNodeId As OpcNodeId,
    ParamArray children As OpcAddInstanceNode()) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |
| `parentNodeId` | [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 parent node to reference using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference. |
| `children` | params [OpcAddInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddinstancenode/)[] | The initial child nodes of the node to add. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `parentNodeId` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) or `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name`, `nodeId` or `parentNodeId` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId, OpcNodeId, OpcReferenceType)

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the node identified by `parentNodeId` using the `referenceType` specified as the type of reference.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    OpcNodeId nodeId,
    OpcNodeId parentNodeId,
    OpcReferenceType referenceType)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    nodeId As OpcNodeId,
    parentNodeId As OpcNodeId,
    referenceType As OpcReferenceType) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |
| `parentNodeId` | [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 parent node to reference using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference. |
| `referenceType` | [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) | One of the members defined by the [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) enumeration to use to setup the reference between the new node and the existing parent node identified by `parentNodeId`. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `parentNodeId` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) or `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name`, `nodeId` or `parentNodeId` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId, OpcNodeId, OpcReferenceType, params OpcAddInstanceNode\[\])

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the node identified by `parentNodeId` using the `referenceType` specified as the type of reference.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    OpcNodeId nodeId,
    OpcNodeId parentNodeId,
    OpcReferenceType referenceType,
    params OpcAddInstanceNode[] children)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    nodeId As OpcNodeId,
    parentNodeId As OpcNodeId,
    referenceType As OpcReferenceType,
    ParamArray children As OpcAddInstanceNode()) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |
| `parentNodeId` | [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 parent node to reference using [Organizes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/#organizes) as the type of reference. |
| `referenceType` | [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) | One of the members defined by the [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) enumeration to use to setup the reference between the new node and the existing parent node identified by `parentNodeId`. |
| `children` | params [OpcAddInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddinstancenode/)[] | The initial child nodes of the node to add. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `parentNodeId` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) or `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name`, `nodeId` or `parentNodeId` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId, OpcNodeId, OpcNodeId)

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the node identified by `parentNodeId` using the type of reference identified by the `referenceTypeId` specified.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    OpcNodeId nodeId,
    OpcNodeId parentNodeId,
    OpcNodeId referenceTypeId)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    nodeId As OpcNodeId,
    parentNodeId As OpcNodeId,
    referenceTypeId As OpcNodeId) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |
| `parentNodeId` | [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 parent node to reference using the type of reference identified by `referenceTypeId`. |
| `referenceTypeId` | [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/) which identifies the type of reference to use for the new node and the existing parent node identified by `parentNodeId`. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `parentNodeId` or `referenceTypeId` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) or `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name`, `nodeId`, `parentNodeId` or `referenceTypeId` is a null reference (Nothing in Visual Basic). |

#### Create(OpcName, OpcNodeId, OpcNodeId, OpcNodeId, params OpcAddInstanceNode\[\])

Provides a new instance of the [OpcAddObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode/) class using the `name` of the [OpcAddObjectNode.TypeDefinition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddobjectnode.typedefinition/) specific object node to add, which shall be additionally accessible by the `nodeId` defined. The new node will be a child of the node identified by `parentNodeId` using the type of reference identified by the `referenceTypeId` specified.

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

```csharp
public OpcAddObjectNode Create(
    OpcName name,
    OpcNodeId nodeId,
    OpcNodeId parentNodeId,
    OpcNodeId referenceTypeId,
    params OpcAddInstanceNode[] children)
```

</div>

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

```vbnet
Public Function Create(
    name As OpcName,
    nodeId As OpcNodeId,
    parentNodeId As OpcNodeId,
    referenceTypeId As OpcNodeId,
    ParamArray children As OpcAddInstanceNode()) As OpcAddObjectNode
```

</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. |
| `nodeId` | [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 node can be identified and accessed. In case there [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is specified the server will determine the according [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) by its own. |
| `parentNodeId` | [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 parent node to reference using the type of reference identified by `referenceTypeId`. |
| `referenceTypeId` | [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/) which identifies the type of reference to use for the new node and the existing parent node identified by `parentNodeId`. |
| `children` | params [OpcAddInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddinstancenode/)[] | The initial child nodes of the node to add. |

**Returns**

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

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `parentNodeId` or `referenceTypeId` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) or `name` is equals [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#null). |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `name`, `nodeId`, `parentNodeId` or `referenceTypeId` is a null reference (Nothing in Visual Basic). |
