# OpcModellingRule Enum

<span class="api-meta">since v2.27</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>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

Specifies the modelling rule of a node of a type, as defined by OPC UA, which determines whether the node is to be created for each instance of the type.

## Syntax

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

```csharp
public enum OpcModellingRule
```

</div>

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

```vbnet
Public Enum OpcModellingRule
```

</div>

## Inheritance

[Object](https://learn.microsoft.com/dotnet/api/system.object) → [ValueType](https://learn.microsoft.com/dotnet/api/system.valuetype) → [Enum](https://learn.microsoft.com/dotnet/api/system.enum) → **OpcModellingRule**

## Fields

| Name | Value | Description |
|---|---|---|
| <a id="exposesitsarray"></a>`ExposesItsArray` | `2` | The node is a variable whose value is an array and each element of the array is exposed as a node. |
| <a id="mandatory"></a>`Mandatory` | `0` | Each instance of the type has the node. |
| <a id="mandatoryplaceholder"></a>`MandatoryPlaceholder` | `4` | The node is a placeholder for at least one node each instance of the type has. |
| <a id="optional"></a>`Optional` | `1` | An instance of the type may have the node. |
| <a id="optionalplaceholder"></a>`OptionalPlaceholder` | `3` | The node is a placeholder for any number of nodes an instance of the type may have, including none. |

## Applies to

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