# IOpcNodeTypeInfo Members

> Reference: Defines type declaration information used for node types.

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

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

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

```csharp
IOpcNodeTypeInfo BaseType { get; }
```

</div>

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

```vbnet
ReadOnly Property BaseType As IOpcNodeTypeInfo
```

</div>

**Property value**

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

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

### IsObject

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
bool IsObject { get; }
```

</div>

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

```vbnet
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.

### IsSystemType

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
bool IsSystemType { get; }
```

</div>

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

```vbnet
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.

### IsVariable

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
bool IsVariable { get; }
```

</div>

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

```vbnet
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.

### Name

Gets a value which defines the non-localizable human-readable name of the type represented. A node which represents this [IOpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/) uses the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/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
OpcName Name { get; }
```

</div>

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

```vbnet
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 [IOpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/).

### TypeId

Gets a value which identifies the type represented. A node which represents this [IOpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/) uses the [TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/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
OpcNodeId TypeId { get; }
```

</div>

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

```vbnet
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 [IOpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/).

### UnderlyingType

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

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

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

</div>

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

```vbnet
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 [IOpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/).

## Methods

### GetMember

Searches for the member with the specified `name`.

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

```csharp
IOpcNodeMemberInfo GetMember(string name)
```

</div>

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

```vbnet
Function GetMember(name As String) As IOpcNodeMemberInfo
```

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

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

An instance of the [IOpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodememberinfo/) 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

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

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

```csharp
IOpcNodeMemberInfo[] GetMembers()
```

</div>

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

```vbnet
Function GetMembers() As IOpcNodeMemberInfo()
```

</div>

**Returns**

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

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

### References

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

Retrieves a sequence of immutable references between this node type and other nodes.

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

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

</div>

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

```vbnet
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 hierarchical and non-hierarchical references from this node type to other nodes.
