# IOpcType Members

> Reference: Represents type declarations used for objects, variables, events, references and data.

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

### Category

Gets the category the [IOpcType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/) falls within.

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

```csharp
OpcTypeCategory Category { get; }
```

</div>

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

```vbnet
ReadOnly Property Category As OpcTypeCategory
```

</div>

**Property value**

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

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

### IsUnknown

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

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

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

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

</div>

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

```vbnet
ReadOnly Property IsUnknown As Boolean
```

</div>

**Property value**

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

The value true if the [IOpcType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/) acts as a placeholder for an unresolved type declaration; 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 type declaration uses the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/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 type.

### TypeId

Gets a value which identifies the type represented. A node which represents this type declaration uses the [TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/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 type.

### UnderlyingType

Gets the type which provides the implementation of the type declaration.

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