# OpcNodeTypeInfo Members

> Reference: Represents type declarations used for node types.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcNodeTypeInfo</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

### BaseType

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

Gets the type from which the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) directly inherits.

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

```csharp
public virtual OpcNodeTypeInfo BaseType { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property BaseType As OpcNodeTypeInfo
```

</div>

**Property value**

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

An instance of the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) which represents the type from which the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) directly inherits or a null reference (Nothing in Visual Basic) if the type does not inherit from a different [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

### Category

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

Gets the [NodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#nodecategory) attribute which identifies the kind of node and is therefore used to classify the node regarding its use and purpose.

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

```csharp
public abstract OpcNodeCategory Category { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property Category As OpcNodeCategory
```

</div>

**Property value**

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

One of the members defined by the [OpcNodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/) enumeration.

**Implements**

[Category](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#category)

### Documentation

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

Gets any semantic information that would help a human to understand what the type represents.

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

```csharp
public virtual string Documentation { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property Documentation As String
```

</div>

**Property value**

[String](https://learn.microsoft.com/dotnet/api/system.string)

A human readable text that describes the type and that would help a human to understand what the type represents.

### Empty

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

Gets the type to use if their is no specific type data available.

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

```csharp
public static OpcNodeTypeInfo Empty { get; }
```

</div>

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

```vbnet
Public Shared ReadOnly Property Empty As OpcNodeTypeInfo
```

</div>

**Property value**

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

An instance of the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) class which refers to the [Empty](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/members#empty).

### IsAbstract

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

Gets a value indicating whether the type is abstract, so that no node can be an instance of it directly.

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

```csharp
public virtual bool IsAbstract { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property IsAbstract As Boolean
```

</div>

**Property value**

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

The value true if the type is abstract; otherwise the value false.

### IsEmpty

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

Gets a value indicating whether the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) represents a type to use if there is no specific type described.

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

```csharp
public virtual bool IsEmpty { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property IsEmpty As Boolean
```

</div>

**Property value**

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

The value true if the type does not declare a specific type; otherwise the value false.

### IsObject

<span class="api-meta">virtual · since v2.20</span>

Gets a value indicating whether the type is an object node (see [Object](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/#object)).

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

```csharp
public virtual bool IsObject { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property IsObject As Boolean
```

</div>

**Property value**

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

The value true if the current type is an object node; otherwise the value false.

**Implements**

[IsObject](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/members#isobject)

### IsSystemType

<span class="api-meta">virtual · since v2.20</span>

Gets a value indicating whether the current [IOpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/) represents one of the predefined built-in node types defined by the OPC UA.

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

```csharp
public virtual bool IsSystemType { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property IsSystemType As Boolean
```

</div>

**Property value**

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

The value true if the current node type represents a OPC UA is a built-in type; otherwise the value false.

**Implements**

[IsSystemType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/members#issystemtype)

### IsUnknown

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

Gets a value indicating whether the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) acts as a placeholder for a referenced type its type declaration could not resolved.

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

```csharp
public virtual bool IsUnknown { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property IsUnknown As Boolean
```

</div>

**Property value**

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

The value true if the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) acts as a placeholder for an unresolved type declaration; otherwise the value false.

**Implements**

[IsUnknown](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/members#isunknown)

### IsVariable

<span class="api-meta">virtual · since v2.20</span>

Gets a value indicating whether the type is an object node (see [Variable](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/#variable)).

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

```csharp
public virtual bool IsVariable { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property IsVariable As Boolean
```

</div>

**Property value**

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

The value true if the current type is a variable node; otherwise the value false.

**Implements**

[IsVariable](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/members#isvariable)

### Name

Gets a value which defines the human-readable name of the type represented. A node which represents this [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) uses the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) as its [BrowseName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#browsename).

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

```csharp
public OpcName Name { get; }
```

</div>

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

```vbnet
Public ReadOnly Property Name As OpcName
```

</div>

**Property value**

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

An instance of the [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) class with the [string](https://learn.microsoft.com/dotnet/api/system.string) used as the name of the type which does not unambiguously identify the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

**Implements**

[Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/members#name), [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/members#name), [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#name)

### SymbolicName

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

Gets a symbolic name for the type which is not expected to be globally unique.

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

```csharp
public virtual string SymbolicName { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property SymbolicName As String
```

</div>

**Property value**

[String](https://learn.microsoft.com/dotnet/api/system.string)

The symbolic name of the type, or a null reference (Nothing in Visual Basic) if there is no symbolic name assigned.

**Implements**

[SymbolicName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#symbolicname)

### TypeId

Gets a value which identifies the type represented. A node which represents this [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) uses the [TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#typeid) as its [NodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#nodeid).

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

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

</div>

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

```vbnet
Public ReadOnly Property TypeId As OpcNodeId
```

</div>

**Property value**

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

An instance of the [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) class used as the identifier of the type which unambiguously identifies the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

**Implements**

[TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/members#typeid), [TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/members#typeid)

### TypeSystem

Gets the the [OpcNodeTypeSystem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/) which conains the node type declaration represented.

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

```csharp
public OpcNodeTypeSystem TypeSystem { get; }
```

</div>

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

```vbnet
Public ReadOnly Property TypeSystem As OpcNodeTypeSystem
```

</div>

**Property value**

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

An instance of the [OpcNodeTypeSystem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/) class which defines the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

### UnderlyingType

Gets the type which provides the implementation of the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

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

```csharp
public Type UnderlyingType { get; }
```

</div>

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

```vbnet
Public ReadOnly Property UnderlyingType As Type
```

</div>

**Property value**

[Type](https://learn.microsoft.com/dotnet/api/system.type)

The [Type](https://learn.microsoft.com/dotnet/api/system.type) which implements the type declared or a null reference (Nothing in Visual Basic) if there does not exist a declaration of the type described by this [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

**Implements**

[UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/members#underlyingtype), [UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/members#underlyingtype)

### UserWriteAccess

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

Gets the value of the optional [UserWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#userwriteaccess) attribute of the type which exposes the possibilities of a client to write the attributes of the type taking user access rights into account.

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

```csharp
public virtual OpcAttributeWriteAccess UserWriteAccess { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property UserWriteAccess As OpcAttributeWriteAccess
```

</div>

**Property value**

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

A combination of the members defined by the [OpcAttributeWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattributewriteaccess/) enumeration.

**Implements**

[UserWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#userwriteaccess)

### WriteAccess

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

Gets the value of the optional [WriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#writeaccess) attribute of the type which exposes the possibilities of a client to write the attributes of the type.

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

```csharp
public virtual OpcAttributeWriteAccess WriteAccess { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property WriteAccess As OpcAttributeWriteAccess
```

</div>

**Property value**

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

A combination of the members defined by the [OpcAttributeWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattributewriteaccess/) enumeration.

**Implements**

[WriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#writeaccess)

## Methods

### AttributeValue

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

| Overload | Description |
|---|---|
| [AttributeValue(OpcAttribute)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#attributevalue-opc-uafx-opcattribute)<span class="api-meta">virtual</span> | Retrieves the value of the `attribute` specified. |
| [AttributeValue&lt;T&gt;(OpcAttribute)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#attributevalue-t1-opc-uafx-opcattribute) | Retrieves the value of the `attribute` specified. |

#### AttributeValue(OpcAttribute)

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

Retrieves the value of the `attribute` specified.

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

```csharp
public virtual object AttributeValue(OpcAttribute attribute)
```

</div>

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

```vbnet
Public Overridable Function AttributeValue(attribute As OpcAttribute) As Object
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `attribute` | [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) | One of the members defined by the [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) enumeration which identifies the attribute its value is queried. |

**Returns**

[Object](https://learn.microsoft.com/dotnet/api/system.object)

The value of the `attribute` specified or a null reference (Nothing in Visual Basic) in case there the value of the attribute is a null reference or it is not supported by the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

**Implements**

[AttributeValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#attributevalue-opc-uafx-opcattribute)

#### AttributeValue&lt;T&gt;(OpcAttribute)

Retrieves the value of the `attribute` specified.

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

```csharp
public T AttributeValue<T>(OpcAttribute attribute)
```

</div>

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

```vbnet
Public Function AttributeValue(Of T)(attribute As OpcAttribute) As T
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The expected type of value the attribute shall offer. |

**Parameters**

| Name | Type | Description |
|---|---|---|
| `attribute` | [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) | One of the members defined by the [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) enumeration which identifies the attribute its value is queried. |

**Returns**

T

The value of the `attribute` as the type `T` specified or the default value of the type `T` in case there the value of the attribute is a null reference (Nothing in Visual Basic) or it is not supported by the current [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/).

**Implements**

[AttributeValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#attributevalue-t1-opc-uafx-opcattribute)

### Child

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

| Overload | Description |
|---|---|
| [Child(string)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#child-system-string)<span class="api-meta">since v2.27</span> | Retrieves the immutable child node its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#value)) or [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#displayname) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/members#value)) matches the specified `name` of the node. |
| [Child(OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#child-opc-uafx-opcname) | Retrieves the immutable child node its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) matches exactly the `name` specified. |
| [Child(OpcNamePath)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#child-opc-uafx-opcnamepath)<span class="api-meta">since v2.19</span> | Retrieves the immutable child node following the path-of-names using the nodes its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) matches exactly the parts of the `namePath` specified. |

#### Child(string)

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

Retrieves the immutable child node its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#value)) or [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#displayname) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/members#value)) matches the specified `name` of the node.

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

```csharp
public IOpcNodeInfo Child(string name)
```

</div>

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

```vbnet
Public Function Child(name As String) As IOpcNodeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [String](https://learn.microsoft.com/dotnet/api/system.string) | The nominal information of the child node to retrieve. |

**Returns**

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

An instance implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface that is known using the specified `name`; otherwise a null reference (Nothing in Visual Basic) in case there the server does not provide such a child node for the node.

**Exceptions**

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

**Implements**

[Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#child-system-string)

#### Child(OpcName)

Retrieves the immutable child node its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) matches exactly the `name` specified.

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

```csharp
public IOpcNodeInfo Child(OpcName name)
```

</div>

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

```vbnet
Public Function Child(name As OpcName) As IOpcNodeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The full qualified [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) of the node to lookup. |

**Returns**

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

An instance implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) exactly matches the `name` specified, if such a node is a known child of this node. Otherwise a null reference (Nothing in Visual Basic).

**Exceptions**

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

**Implements**

[Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#child-opc-uafx-opcname)

#### Child(OpcNamePath)

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

Retrieves the immutable child node following the path-of-names using the nodes its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) matches exactly the parts of the `namePath` specified.

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

```csharp
public IOpcNodeInfo Child(OpcNamePath namePath)
```

</div>

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

```vbnet
Public Function Child(namePath As OpcNamePath) As IOpcNodeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `namePath` | [OpcNamePath](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamepath/) | The [OpcNamePath](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamepath/) of full qualified [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/)s of the nodes to follow. |

**Returns**

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

An instance implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface that has been lookup following the `namePath` specified, if such a node is a known child of this node (and its children). Otherwise a null reference (Nothing in Basic).

**Exceptions**

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

**Implements**

[Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#child-opc-uafx-opcnamepath)

### Children

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

Retrieves a sequence of all nodes declared as children of the type.

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

```csharp
public virtual IEnumerable<IOpcNodeInfo> Children()
```

</div>

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

```vbnet
Public Overridable Function Children() As IEnumerable(Of IOpcNodeInfo)
```

</div>

**Returns**

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

A sequence of instances implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface which represent the child nodes of the type, or an empty sequence if the type does not declare any child nodes.

**Implements**

[Children](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#children)

### Description

Retrieves the description of the type in the culture specified.

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

```csharp
public OpcText Description(string cultureName)
```

</div>

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

```vbnet
Public Function Description(cultureName As String) As OpcText
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `cultureName` | [String](https://learn.microsoft.com/dotnet/api/system.string) | The name of the culture of the description to retrieve. |

**Returns**

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

The first of the [Descriptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#descriptions) whose [CultureName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/members#culturename) equals the `cultureName` ignoring case, or a null reference (Nothing in Visual Basic) if there is none.

### Descriptions

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

Retrieves the descriptions of the type in all cultures available.

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

```csharp
public virtual IEnumerable<OpcText> Descriptions()
```

</div>

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

```vbnet
Public Overridable Function Descriptions() As IEnumerable(Of OpcText)
```

</div>

**Returns**

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

A sequence of the descriptions of the type, or an empty sequence if there is no description associated with the type.

### DisplayName

Retrieves the display name of the type in the culture specified.

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

```csharp
public OpcText DisplayName(string cultureName)
```

</div>

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

```vbnet
Public Function DisplayName(cultureName As String) As OpcText
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `cultureName` | [String](https://learn.microsoft.com/dotnet/api/system.string) | The name of the culture of the display name to retrieve. |

**Returns**

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

The first of the [DisplayNames](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#displaynames) whose [CultureName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/members#culturename) equals the `cultureName` ignoring case, or a null reference (Nothing in Visual Basic) if there is none.

### DisplayNames

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

Retrieves the display names of the type in all cultures available.

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

```csharp
public virtual IEnumerable<OpcText> DisplayNames()
```

</div>

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

```vbnet
Public Overridable Function DisplayNames() As IEnumerable(Of OpcText)
```

</div>

**Returns**

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

A sequence of the display names of the type, or an empty sequence if there is no display name associated with the type.

### GetMember

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

Searches for the member with the specified `name`.

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

```csharp
public OpcNodeMemberInfo GetMember(string name)
```

</div>

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

```vbnet
Public Function GetMember(name As String) As OpcNodeMemberInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [String](https://learn.microsoft.com/dotnet/api/system.string) | The [string](https://learn.microsoft.com/dotnet/api/system.string) containing the name of the node member to get. |

**Returns**

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

An instance of the [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/) representing the member with the specified name, if found; otherwise a null reference (Nothing in Visual Basic).

**Exceptions**

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

**Remarks**

The `name` specified is compared using [Ordinal](https://learn.microsoft.com/dotnet/api/system.stringcomparison#system-stringcomparison-ordinal).

### GetMembers

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

Returns all the members of the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

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

```csharp
public OpcNodeMemberInfo[] GetMembers()
```

</div>

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

```vbnet
Public Function GetMembers() As OpcNodeMemberInfo()
```

</div>

**Returns**

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

An array of [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/) objects representing all the members defined for the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) or an empty array of type [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/) if no members are defined for the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

### GetMembersCore

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

When overriden in a derived class, searches for the members defined for the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

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

```csharp
protected virtual IEnumerable<OpcNodeMemberInfo> GetMembersCore()
```

</div>

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

```vbnet
Protected Overridable Function GetMembersCore() As IEnumerable(Of OpcNodeMemberInfo)
```

</div>

**Returns**

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

A sequence of [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/) objects representing all fields defined for the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

### GetUnderlyingType

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

Retrieves the [Type](https://learn.microsoft.com/dotnet/api/system.type) which provides the implementation of the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

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

```csharp
protected virtual Type GetUnderlyingType()
```

</div>

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

```vbnet
Protected Overridable Function GetUnderlyingType() As Type
```

</div>

**Returns**

[Type](https://learn.microsoft.com/dotnet/api/system.type)

The [Type](https://learn.microsoft.com/dotnet/api/system.type) which implements the type declared or a null reference (Nothing in Visual Basic) if there does not exist a declaration of the type described by this [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

### References

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

Retrieves a sequence of the references between the type and other nodes.

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

```csharp
public virtual IEnumerable<OpcReference> References()
```

</div>

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

```vbnet
Public Overridable Function References() As IEnumerable(Of OpcReference)
```

</div>

**Returns**

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

A sequence of [OpcReference](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreference/) instances providing the references from the type to other nodes, or an empty sequence if there are none.

**Implements**

[References](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/members#references), [References](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#references)

### ToString

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

Returns a [string](https://learn.microsoft.com/dotnet/api/system.string) representing the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) or the [UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#underlyingtype) of the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

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

```csharp
public override string ToString()
```

</div>

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

```vbnet
Public Overrides Function ToString() As String
```

</div>

**Returns**

[String](https://learn.microsoft.com/dotnet/api/system.string)

A [string](https://learn.microsoft.com/dotnet/api/system.string) representing the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) or the [UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#underlyingtype) of the current [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/).

**Overrides**

[ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)
