# OpcNodeTypeInfo Class

<span class="api-meta">abstract · since v2.9</span>

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

Represents type declarations used for node types.

## Syntax

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

```csharp
public abstract class OpcNodeTypeInfo
```

</div>

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

```vbnet
Public MustInherit Class OpcNodeTypeInfo
```

</div>

## Inheritance

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

## Implements

<ul class="api-implements">
<li><a href="../opc.uafx.iopcnodeinfo/">IOpcNodeInfo</a></li>
<li><a href="../opc.uafx.iopcnodetypeinfo/">IOpcNodeTypeInfo</a></li>
<li><a href="../opc.uafx.iopctype/">IOpcType</a></li>
</ul>

## Derived types

- [OpcObjectTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjecttypeinfo/)
- [OpcVariableTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariabletypeinfo/)

## Properties

| Name | Description |
|---|---|
| [BaseType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#basetype)<span class="api-meta">virtual</span> | Gets the type from which the current OpcNodeTypeInfo directly inherits. |
| [Category](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |
| [Documentation](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#documentation)<span class="api-meta">virtual</span> | Gets any semantic information that would help a human to understand what the type represents. |
| [Empty](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#empty)<span class="api-meta">static</span> | Gets the type to use if their is no specific type data available. |
| [IsAbstract](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |
| [IsEmpty](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#isempty)<span class="api-meta">virtual</span> | Gets a value indicating whether the current OpcNodeTypeInfo represents a type to use if there is no specific type described. |
| [IsObject](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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)). |
| [IsSystemType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |
| [IsUnknown](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#isunknown)<span class="api-meta">virtual</span> | Gets a value indicating whether the OpcNodeTypeInfo acts as a placeholder for a referenced type its type declaration could not resolved. |
| [IsVariable](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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)). |
| [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#name) | Gets a value which defines the human-readable name of the type represented. |
| [SymbolicName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#symbolicname)<span class="api-meta">virtual</span> | Gets a symbolic name for the type which is not expected to be globally unique. |
| [TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#typeid) | Gets a value which identifies the type represented. |
| [TypeSystem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |
| [UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#underlyingtype) | Gets the type which provides the implementation of the OpcNodeTypeInfo. |
| [UserWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |
| [WriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |

## Methods

| Name | Description |
|---|---|
| [AttributeValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#attributevalue)<span class="api-meta">2 overloads</span> | Retrieves the value of the `attribute` specified. |
| [Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#child)<span class="api-meta">3 overloads</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. |
| [Children](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#children)<span class="api-meta">virtual</span> | Retrieves a sequence of all nodes declared as children of the type. |
| [Description](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#description) | Retrieves the description of the type in the culture specified. |
| [Descriptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#descriptions)<span class="api-meta">virtual</span> | Retrieves the descriptions of the type in all cultures available. |
| [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#displayname) | Retrieves the display name of the type in the culture specified. |
| [DisplayNames](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#displaynames)<span class="api-meta">virtual</span> | Retrieves the display names of the type in all cultures available. |
| [GetMember](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#getmember)<span class="api-meta">since v2.20</span> | Searches for the member with the specified `name`. |
| [GetMembers](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#getmembers)<span class="api-meta">since v2.20</span> | Returns all the members of the current OpcNodeTypeInfo. |
| [GetMembersCore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |
| [GetUnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |
| [References](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#references)<span class="api-meta">virtual</span> | Retrieves a sequence of the references between the type and other nodes. |
| [ToString](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#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. |

## Applies to

| Package | Versions |
|---|---|
| Opc.UaFx.Advanced | v2.9–v2.59 |
