# OpcDataTypeNode Members

> Reference: Defines a data type node.

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

## Properties

### TypeInfo

Gets the type information of the data type represented by the node.

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

```csharp
public OpcDataTypeInfo TypeInfo { get; }
```

</div>

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

```vbnet
Public ReadOnly Property TypeInfo As OpcDataTypeInfo
```

</div>

**Property value**

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

The [OpcDataTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/) of the data type, or a null reference (Nothing in Visual Basic) until the node has been created by its node manager or if no type information could be created for the data type.

## Methods

### Create

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

| Overload | Description |
|---|---|
| [Create&lt;T&gt;()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#create-t1)<span class="api-meta">static · since v2.14</span> | Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `T`. |
| [Create(Type)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#create-system-type)<span class="api-meta">static · since v2.14</span> | Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `dataType`. |
| [Create(IOpcDataTypeBuilder)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#create-opc-uafx-iopcdatatypebuilder)<span class="api-meta">static · since v2.53</span> | Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the data type defined at runtime by the `builder` specified. |
| [Create&lt;T&gt;(OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#create-t1-opc-uafx-opcnodeid)<span class="api-meta">static · since v2.14</span> | Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `T` which can be identified by the `id`. |
| [Create(Type, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#create-system-type-opc-uafx-opcnodeid)<span class="api-meta">static · since v2.14</span> | Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `dataType` which can be identified by the `id`. |
| [Create&lt;T&gt;(OpcNodeId, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#create-t1-opc-uafx-opcnodeid-opc-uafx-opcname)<span class="api-meta">static · since v2.14</span> | Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `T` which can be identified by the `id` and `name`. |
| [Create(Type, OpcNodeId, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#create-system-type-opc-uafx-opcnodeid-opc-uafx-opcname)<span class="api-meta">static · since v2.14</span> | Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `dataType` which can be identified by the `id` and `name`. |

#### Create&lt;T&gt;()

<span class="api-meta">static · since v2.14</span>

Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `T`.

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

```csharp
public static OpcDataTypeNode Create<T>()
```

</div>

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

```vbnet
Public Shared Function Create(Of T)() As OpcDataTypeNode
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type of data to represent. |

**Returns**

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

A new instance of the [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) initialized with defaults determined by the global data type system and the `T` specified.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `T` is not a supported data type. |

#### Create(Type)

<span class="api-meta">static · since v2.14</span>

Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `dataType`.

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

```csharp
public static OpcDataTypeNode Create(Type dataType)
```

</div>

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

```vbnet
Public Shared Function Create(dataType As Type) As OpcDataTypeNode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `dataType` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type of data to represent. |

**Returns**

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

A new instance of the [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) initialized with defaults determined by the global data type system and the `dataType` specified.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `dataType` is a null reference (Nothing in Visual Basic). |
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `dataType` specified is not a supported data type. |

#### Create(IOpcDataTypeBuilder)

<span class="api-meta">static · since v2.53</span>

Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the data type defined at runtime by the `builder` specified.

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

```csharp
public static OpcDataTypeNode Create(IOpcDataTypeBuilder builder)
```

</div>

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

```vbnet
Public Shared Function Create(builder As IOpcDataTypeBuilder) As OpcDataTypeNode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `builder` | [IOpcDataTypeBuilder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypebuilder/) | The [IOpcDataTypeBuilder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypebuilder/) which defines the data type, e.g. an [OpcStruct](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstruct/) or [OpcEnum](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcenum/). |

**Returns**

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

A new instance of the [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) identified by the [Id](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypebuilder/members#id) and named by the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypebuilder/members#name) of the `builder`.

**Exceptions**

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

**Remarks**

The `builder` creates the type information when the node is created by its node manager (see [TypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/members#typeinfo)).

#### Create&lt;T&gt;(OpcNodeId)

<span class="api-meta">static · since v2.14</span>

Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `T` which can be identified by the `id`.

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

```csharp
public static OpcDataTypeNode Create<T>(OpcNodeId id)
```

</div>

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

```vbnet
Public Shared Function Create(Of T)(id As OpcNodeId) As OpcDataTypeNode
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type of data to represent. |

**Parameters**

| Name | Type | Description |
|---|---|---|
| `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 data type node can be identified and accessed. |

**Returns**

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

A new instance of the [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) initialized with defaults determined by the global data type system and the `T` repecting the `id` specified.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `T` is not a supported data type. |

#### Create(Type, OpcNodeId)

<span class="api-meta">static · since v2.14</span>

Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `dataType` which can be identified by the `id`.

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

```csharp
public static OpcDataTypeNode Create(Type dataType, OpcNodeId id)
```

</div>

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

```vbnet
Public Shared Function Create(
    dataType As Type,
    id As OpcNodeId) As OpcDataTypeNode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `dataType` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type of data to represent. |
| `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 data type node can be identified and accessed. |

**Returns**

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

A new instance of the [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) initialized with defaults determined by the global data type system and the `dataType` repecting the `id` specified.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `dataType` specified is not a supported data type. |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `dataType` is a null reference (Nothing in Visual Basic). |

#### Create&lt;T&gt;(OpcNodeId, OpcName)

<span class="api-meta">static · since v2.14</span>

Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `T` which can be identified by the `id` and `name`.

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

```csharp
public static OpcDataTypeNode Create<T>(OpcNodeId id, OpcName name)
```

</div>

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

```vbnet
Public Shared Function Create(Of T)(
    id As OpcNodeId,
    name As OpcName) As OpcDataTypeNode
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The type of data to represent. |

**Parameters**

| Name | Type | Description |
|---|---|---|
| `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 data type node can be identified and accessed. |
| `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 data type node can be accessed. |

**Returns**

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

A new instance of the [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) initialized with defaults determined by the global data type system and the `T` repecting the `id` and `name` specified.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `T` is not a supported data type. |

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

<span class="api-meta">static · since v2.14</span>

Creates a new [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) used to represent the type specified by `dataType` which can be identified by the `id` and `name`.

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

```csharp
public static OpcDataTypeNode Create(Type dataType, OpcNodeId id, OpcName name)
```

</div>

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

```vbnet
Public Shared Function Create(
    dataType As Type,
    id As OpcNodeId,
    name As OpcName) As OpcDataTypeNode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `dataType` | [Type](https://learn.microsoft.com/dotnet/api/system.type) | The type of data to represent. |
| `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 data type node can be identified and accessed. |
| `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 data type node can be accessed. |

**Returns**

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

A new instance of the [OpcDataTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypenode/) initialized with defaults determined by the global data type system and the `dataType` repecting the `id` and `name` specified.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `dataType` specified is not a supported data type. |
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `dataType` is a null reference (Nothing in Visual Basic). |
