# OpcConditionNode Members

> Reference: Defines all general characteristics of a condition.

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

Inherits members from [OpcEventNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members), [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members), [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members), [OpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members).

## Constructors

### OpcConditionNode

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

| Overload | Description |
|---|---|
| [OpcConditionNode(OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-opcname) | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified. |
| [OpcConditionNode(OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-opcname-opc-uafx-opcnodeid) | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified. |
| [OpcConditionNode(IOpcNode, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-iopcnode-opc-uafx-opcname) | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified as a child node of the `parent` node given. |
| [OpcConditionNode(IOpcNode, OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid) | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given. |
| [OpcConditionNode(ConditionState)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-ua-conditionstate)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class using the `content` as the instance to wrap. |
| [OpcConditionNode(ConditionState, OpcNodeModel)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-ua-conditionstate-opc-uafx-opcnodemodel)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class using the `content` as the instance to wrap. |
| [OpcConditionNode(OpcNodeModel, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-opcnodemodel-opc-uafx-opcname)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified. |
| [OpcConditionNode(OpcNodeModel, OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-opcnodemodel-opc-uafx-opcname-opc-uafx-opcnodeid)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified. |
| [OpcConditionNode(OpcNodeModel, IOpcNode, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-opcnodemodel-opc-uafx-iopcnode-opc-uafx-opcname)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified as a child node of the `parent` node given. |
| [OpcConditionNode(OpcNodeModel, IOpcNode, OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#opcconditionnode-opc-uafx-opcnodemodel-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid)<span class="api-meta">protected · since v2.50</span> | Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given. |

#### OpcConditionNode(OpcName)

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified.

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

```csharp
public OpcConditionNode(OpcName name)
```

</div>

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

```vbnet
Public Sub New(name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |

#### OpcConditionNode(OpcName, OpcNodeId)

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified.

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

```csharp
public OpcConditionNode(OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Public Sub New(name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new condition node can be identified and accessed. |

#### OpcConditionNode(IOpcNode, OpcName)

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified as a child node of the `parent` node given.

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

```csharp
public OpcConditionNode(IOpcNode parent, OpcName name)
```

</div>

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

```vbnet
Public Sub New(parent As IOpcNode, name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |

#### OpcConditionNode(IOpcNode, OpcName, OpcNodeId)

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given.

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

```csharp
public OpcConditionNode(IOpcNode parent, OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Public Sub New(parent As IOpcNode, name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new condition node can be identified and accessed. |

#### OpcConditionNode(ConditionState)

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

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class using the `content` as the instance to wrap.

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

```csharp
protected OpcConditionNode(ConditionState content)
```

</div>

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

```vbnet
Protected Sub New(content As ConditionState)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `content` | <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.ConditionState">ConditionState</abbr> | The <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.ConditionState">ConditionState</abbr> to wrap. |

**Exceptions**

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

#### OpcConditionNode(ConditionState, OpcNodeModel)

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

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class using the `content` as the instance to wrap.

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

```csharp
protected OpcConditionNode(ConditionState content, OpcNodeModel model)
```

</div>

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

```vbnet
Protected Sub New(content As ConditionState, model As OpcNodeModel)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `content` | <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.ConditionState">ConditionState</abbr> | The <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.ConditionState">ConditionState</abbr> to wrap. |
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |

**Exceptions**

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

#### OpcConditionNode(OpcNodeModel, OpcName)

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

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified.

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

```csharp
protected OpcConditionNode(OpcNodeModel model, OpcName name)
```

</div>

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

```vbnet
Protected Sub New(model As OpcNodeModel, name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |

#### OpcConditionNode(OpcNodeModel, OpcName, OpcNodeId)

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

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified.

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

```csharp
protected OpcConditionNode(OpcNodeModel model, OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Protected Sub New(model As OpcNodeModel, name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new condition node can be identified and accessed. |

#### OpcConditionNode(OpcNodeModel, IOpcNode, OpcName)

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

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` specified as a child node of the `parent` node given.

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

```csharp
protected OpcConditionNode(OpcNodeModel model, IOpcNode parent, OpcName name)
```

</div>

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

```vbnet
Protected Sub New(model As OpcNodeModel, parent As IOpcNode, name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |

#### OpcConditionNode(OpcNodeModel, IOpcNode, OpcName, OpcNodeId)

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

Initializes a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given.

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

```csharp
protected OpcConditionNode(
    OpcNodeModel model,
    IOpcNode parent,
    OpcName name,
    OpcNodeId id)
```

</div>

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

```vbnet
Protected Sub New(
    model As OpcNodeModel,
    parent As IOpcNode,
    name As OpcName,
    id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new condition node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new condition node can be identified and accessed. |

## Properties

### AddCommentCallback

Gets or sets a callback used to add a comment to the condition node.

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

```csharp
public OpcAddCommentCallback AddCommentCallback { get; set; }
```

</div>

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

```vbnet
Public Property AddCommentCallback As OpcAddCommentCallback
```

</div>

**Property value**

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

A [OpcAddCommentCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddcommentcallback/) used to add a comment to the condition node. The value can also be a null reference (Nothing in Visual Basic).

### AddCommentNode

Gets the [OpcAddCommentMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddcommentmethodnode/) used to handle 'AddComment' method calls to add a comment to the condition node.

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

```csharp
public OpcAddCommentMethodNode AddCommentNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property AddCommentNode As OpcAddCommentMethodNode
```

</div>

**Property value**

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

An instance of the [OpcAddCommentMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaddcommentmethodnode/) class. Which uses an [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) defined callback to add a comment to the condition node.

### AutoReportChanges

Gets or sets a value indicating whether the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) will automatically report an event when a change method call completes.

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

```csharp
public bool AutoReportChanges { get; set; }
```

</div>

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

```vbnet
Public Property AutoReportChanges As Boolean
```

</div>

**Property value**

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

The value true, if the event automatically reports any change performed using a method to modify the node; otherwise the value false (the default value is false).

### BranchId

Gets or sets an identifier which identifies the branch to that the event does belong.

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

```csharp
public OpcNodeId BranchId { get; set; }
```

</div>

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

```vbnet
Public Property BranchId As OpcNodeId
```

</div>

**Property value**

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

A null reference (Nothing in Visual Basic) if the event relates to the current state of the condition. Otherwise it identifies a previous state of this condition that still needs attention by an operator. If the current condition branch is transformed into a previous condition branch then the server needs to assign a non-null branch identifier. An initial event for the branch will generated with the values of the condition branch and the new branch identifier. The condition branch can be updated many times before it is no longer needed. When the condition branch no longer requires operator input the final event will have [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) set to false. The [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) property on the current event is true, as long as any condition branches require operator input.

### BranchIdNode

Gets the [OpcNodeIdPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidpropertynode/) of the [BranchId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#branchid) property.

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

```csharp
public OpcNodeIdPropertyNode BranchIdNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property BranchIdNode As OpcNodeIdPropertyNode
```

</div>

**Property value**

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

An instance of the [OpcNodeIdPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidpropertynode/) class.

### ClientUserId

Gets or sets an identifier that is related to the [Comment](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#comment) and contains the identity of the user who inserted the most recent [Comment](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#comment).

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

```csharp
public string ClientUserId { get; set; }
```

</div>

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

```vbnet
Public Property ClientUserId As String
```

</div>

**Property value**

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

A value which identifies the user who inserted the most recent [Comment](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#comment).

### ClientUserIdNode

Gets the [OpcPropertyNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/) of the [ClientUserId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#clientuserid) property.

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

```csharp
public OpcPropertyNode<string> ClientUserIdNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property ClientUserIdNode As OpcPropertyNode(Of String)
```

</div>

**Property value**

[OpcPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/)&lt;[String](https://learn.microsoft.com/dotnet/api/system.string)&gt;

An instance of the [OpcPropertyNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/) class.

### Comment

Gets or sets the last comment provided for a certain state (condition branch).

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

```csharp
public OpcText Comment { get; set; }
```

</div>

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

```vbnet
Public Property Comment As OpcText
```

</div>

**Property value**

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

The last comment provided for a certian state (condition branch).

**Remarks**

It may have been provided by an 'AddComment' method, some other method or in some other manner. The initial value of this variable is a null reference (Nothing in Visual Basic), unless it is provided in some other manner. If a method provides as an option the ability to set a comment, then the value of this variable is reset to a null reference (Nothing in Visual Basic) if an optional comment is not provided.

### CommentNode

Gets the [OpcTextConditionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctextconditionvariablenode/) of the [Comment](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#comment) property.

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

```csharp
public OpcTextConditionVariableNode CommentNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property CommentNode As OpcTextConditionVariableNode
```

</div>

**Property value**

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

An instance of the [OpcTextConditionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctextconditionvariablenode/) class.

### ConditionClassId

Gets or sets a value which specifies in which domain this condition is used. It is the [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) of the corresponding condition class type.

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

```csharp
public OpcNodeId ConditionClassId { get; set; }
```

</div>

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

```vbnet
Public Property ConditionClassId As OpcNodeId
```

</div>

**Property value**

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

An [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) which identifies the corresponding condition class type.

### ConditionClassIdNode

Gets the [OpcNodeIdPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidpropertynode/) of the [ConditionClassId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#conditionclassid) property.

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

```csharp
public OpcNodeIdPropertyNode ConditionClassIdNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property ConditionClassIdNode As OpcNodeIdPropertyNode
```

</div>

**Property value**

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

An instance of the [OpcNodeIdPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidpropertynode/) class.

### ConditionClassName

Gets or sets a value that matches the display name of the condition class type.

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

```csharp
public OpcText ConditionClassName { get; set; }
```

</div>

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

```vbnet
Public Property ConditionClassName As OpcText
```

</div>

**Property value**

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

The display name of the condition class referenced by the [ConditionClassId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#conditionclassid).

### ConditionClassNameNode

Gets the [OpcTextPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctextpropertynode/) of the [ConditionClassName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#conditionclassname) property.

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

```csharp
public OpcTextPropertyNode ConditionClassNameNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property ConditionClassNameNode As OpcTextPropertyNode
```

</div>

**Property value**

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

An instance of the [OpcTextPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctextpropertynode/) class.

### ConditionName

Gets or sets a value which identifies the condition instance that the event originated from.

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

```csharp
public string ConditionName { get; set; }
```

</div>

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

```vbnet
Public Property ConditionName As String
```

</div>

**Property value**

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

A value which identifies the condition instance that the event originated from.

**Remarks**

It can be used together with the [SourceName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#sourcename) in a user display to distinguish between different condition instances. If a condition source has only one instance of a condition type, and the server has no instance name, the server shall supply the condition type browse name.

### ConditionNameNode

Gets the [OpcPropertyNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/) of the [ConditionName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#conditionname) property.

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

```csharp
public OpcPropertyNode<string> ConditionNameNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property ConditionNameNode As OpcPropertyNode(Of String)
```

</div>

**Property value**

[OpcPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/)&lt;[String](https://learn.microsoft.com/dotnet/api/system.string)&gt;

An instance of the [OpcPropertyNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/) class.

### DefaultTypeDefinitionId

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

Gets the default identifier which identifies the node that defines the underlying node type from that this [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/) has been created.

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

```csharp
protected override OpcNodeId DefaultTypeDefinitionId { get; }
```

</div>

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

```vbnet
Protected Overrides ReadOnly Property DefaultTypeDefinitionId As OpcNodeId
```

</div>

**Property value**

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

The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) of the type node from that this [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/) has been created from. These type node defines the typical structure of an instance node of its type definition. If there exists no specific type definition node a null reference (Nothing in Visual Basic).

**Overrides**

[DefaultTypeDefinitionId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#defaulttypedefinitionid)

### DisableCallback

Gets or sets a callback used to disable the condition node.

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

```csharp
public OpcNodeFunc<OpcConditionNode> DisableCallback { get; set; }
```

</div>

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

```vbnet
Public Property DisableCallback As OpcNodeFunc(Of OpcConditionNode)
```

</div>

**Property value**

[OpcNodeFunc](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodefunc-1/)&lt;[OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/)&gt;

A [OpcNodeFunc&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodefunc-1/) used to disable the condition node. The value can also be a null reference (Nothing in Visual Basic).

### DisableNode

Gets the [OpcActionMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcactionmethodnode/) used to handle 'Disable' method calls to disable the condition.

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

```csharp
public OpcActionMethodNode DisableNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property DisableNode As OpcActionMethodNode
```

</div>

**Property value**

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

An instance of the [OpcActionMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcactionmethodnode/) class. Which uses an [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) defined callback to disable the condition.

### EnableCallback

Gets or sets a callback used to enable the condition node.

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

```csharp
public OpcNodeFunc<OpcConditionNode> EnableCallback { get; set; }
```

</div>

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

```vbnet
Public Property EnableCallback As OpcNodeFunc(Of OpcConditionNode)
```

</div>

**Property value**

[OpcNodeFunc](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodefunc-1/)&lt;[OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/)&gt;

A [OpcNodeFunc&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodefunc-1/) used to enable the condition node. The value can also be a null reference (Nothing in Visual Basic).

### EnableNode

Gets the [OpcActionMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcactionmethodnode/) used to handle 'Enable' method calls to enable the condition.

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

```csharp
public OpcActionMethodNode EnableNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property EnableNode As OpcActionMethodNode
```

</div>

**Property value**

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

An instance of the [OpcActionMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcactionmethodnode/) class. Which uses an [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) defined callback to enable the condition.

### IsEnabled

Gets a value indicating whether the condition is enabled.

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

```csharp
public bool IsEnabled { get; }
```

</div>

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

```vbnet
Public ReadOnly Property IsEnabled As Boolean
```

</div>

**Property value**

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

A value indicating whether the condition is enabled.

**Remarks**

A condition's [IsEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isenabled) state effects the generation of event notifications and as such results in the following specific behaviour:

- When the condition enters the disabled state, the [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) property of this condition is set to the false enabled state by the server so indicate to the client that the condition is currently not of interest to clients.
- When the condition enters the enabled state, the condition is to be evaluated and all of its properties updated to reflect the current values. If this evaluation causes the [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) property to transition to to true for any condition branch, then an event notification is generated for that condition branch.
- The server may choose to continue to test for a condition while it is disabled. However, no event notifications will be generated while the condition is disabled.
- For any condition that exists in the address space the attributes and the following variables will continue to have valid values even in the disabled state; [EventId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#eventid), [EventTypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#eventtypeid), [SourceNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#sourcenodeid), [SourceName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#sourcename), [Time](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#time), and [IsEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isenabled). Other properties may no longer provide current valid values. All variables that are no longer provided will return a status of [BadConditionDisabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#badconditiondisabled). The event that reports the disabled state will report the properties as a null reference (Nothing in Visual Basic) or with a status of [BadConditionDisabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#badconditiondisabled).

### IsEnabledNode

Gets the [OpcTwoStateVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctwostatevariablenode/) of the [IsEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isenabled) property.

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

```csharp
public OpcTwoStateVariableNode IsEnabledNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property IsEnabledNode As OpcTwoStateVariableNode
```

</div>

**Property value**

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

An instance of the [OpcTwoStateVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctwostatevariablenode/) class.

### IsRetained

Gets or sets a value indicating whether the condition is in a state that is interesting for a client wishing to synchronize its state with the server's state.

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

```csharp
public bool IsRetained { get; set; }
```

</div>

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

```vbnet
Public Property IsRetained As Boolean
```

</div>

**Property value**

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

The value true if the condition (or condition branch) is being in a state that is interesting for a client wishing to synchronize its state with the server's state. The logic to determine how this flag is set is server specific. Typically all active alarms would have the [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) flag set; however, it is also possible for inactive alarms to have their [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) flag set to true. In general events are only generated for conditions that have their [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) property set to the value true.

### IsRetainedNode

Gets the [OpcPropertyNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/) of the [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) property.

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

```csharp
public OpcPropertyNode<bool> IsRetainedNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property IsRetainedNode As OpcPropertyNode(Of Boolean)
```

</div>

**Property value**

[OpcPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/)&lt;[Boolean](https://learn.microsoft.com/dotnet/api/system.boolean)&gt;

An instance of the [OpcPropertyNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode-1/) class.

### IsRetainedPolicy

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

Gets or sets the evaluation policy that controls the lifecycle of the [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) property for this [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/).

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

```csharp
public OpcConditionRetainPolicy IsRetainedPolicy { get; set; }
```

</div>

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

```vbnet
Public Property IsRetainedPolicy As OpcConditionRetainPolicy
```

</div>

**Property value**

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

One of the members defined by the [OpcConditionRetainPolicy](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionretainpolicy/) enumeration determining when the condition is automatically cleared from active client lists.

**Remarks**

**SDK Architecture Note:** The [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained) property indictates whether a condition appears in a client's active alarm view or is returned during a `ConditionRefresh` operation. By changing this policy, you control the underlying state machine that automatically recalculates the [IsRetained](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isretained)&gt; value when states like `ActiveState`, `AckedState`, or `LatchedState` change.

**Default Behavior:**

- Initializes as [EnabledOnly](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionretainpolicy/#enabledonly) for base [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/).
- Initializes as [ActiveOrUnacknowledged](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionretainpolicy/#activeorunacknowledged) for [OpcAcknowledgeableConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcacknowledgeableconditionnode/) and [OpcAlarmConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcalarmconditionnode/).

**Compliance Rule:** Regardless of the selected policy, if [IsEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#isenabled) transitions to `Disabled` (False), the SDK will override the policy and strictly force `Retain = false` to comply with the OPC UA Part 9 specification.

### LastSeverity

Gets or sets a value which provides the previous severity of the condition branch.

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

```csharp
public OpcEventSeverity LastSeverity { get; set; }
```

</div>

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

```vbnet
Public Property LastSeverity As OpcEventSeverity
```

</div>

**Property value**

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

The initial value of this property is [Undefined](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventseverity/#undefined); it will provide a more meaningful value only after a severity change. The new severity is supplied via the [Severity](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#severity) property.

### LastSeverityNode

Gets the [OpcConditionVariableNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionvariablenode-1/) of the [LastSeverity](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#lastseverity) property.

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

```csharp
public OpcConditionVariableNode<ushort> LastSeverityNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property LastSeverityNode As OpcConditionVariableNode(Of UShort)
```

</div>

**Property value**

[OpcConditionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionvariablenode-1/)&lt;[UInt16](https://learn.microsoft.com/dotnet/api/system.uint16)&gt;

An instance of the [OpcConditionVariableNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionvariablenode-1/) class.

### Quality

Gets or sets a value which reveals the status of process values or other resources that this condition is based upon.

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

```csharp
public OpcStatus Quality { get; set; }
```

</div>

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

```vbnet
Public Property Quality As OpcStatus
```

</div>

**Property value**

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

The quality of data that this condition is based upon. If, for example, a process value is 'Uncertain', the associated 'LevelAlarm' condition is also questionable. Values for the [Quality](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#quality) can be any of the [OpcStatusCode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/) enumeration members as well as [Good](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#good), [Uncertain](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#uncertain) and [Bad](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#bad). These status codes are similar to but slightly more generic than the description of data quality in the various field bus specifications. It is the responsibility of the server to map internal status information to these codes. A server which supports no quality information returns [Good](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#good). This quality can also reflect the communication status associated with the system that this value or resource is based on and from which this alarm was received. For communication errors to the underlying system, especially those that result in some unavailable event fields, the quality is [BadNoCommunication](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#badnocommunication).

### QualityNode

Gets the [OpcStatusConditionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatusconditionvariablenode/) of the [Quality](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#quality) property.

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

```csharp
public OpcStatusConditionVariableNode QualityNode { get; }
```

</div>

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

```vbnet
Public ReadOnly Property QualityNode As OpcStatusConditionVariableNode
```

</div>

**Property value**

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

An instance of the [OpcStatusConditionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatusconditionvariablenode/) class.

## Methods

### AddComment

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

| Overload | Description |
|---|---|
| [AddComment(OpcContext, OpcText)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#addcomment-opc-uafx-opccontext-opc-uafx-opctext) | Applies a comment to the state reported by an event notification which can be identified by the [EventId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#eventid) using the specified `context`. |
| [AddComment(OpcContext, byte\[\], OpcText)](#addcomment-opc-uafx-opccontext-system-byte-array-opc-uafx-opctext) | Applies a comment to the state reported by an event notification which can be identified by the `eventId` using the specified `context`. |

**Exceptions (all overloads)**

| Exception | Condition |
|---|---|
| [OpcException](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexception/) | The call failed (see exception details for more information). |

#### AddComment(OpcContext, OpcText)

Applies a comment to the state reported by an event notification which can be identified by the [EventId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#eventid) using the specified `context`.

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

```csharp
public void AddComment(OpcContext context, OpcText comment)
```

</div>

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

```vbnet
Public Sub AddComment(context As OpcContext, comment As OpcText)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use. |
| `comment` | [OpcText](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/) | The text to apply on the condition state. |

**Exceptions**

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

#### AddComment(OpcContext, byte\[\], OpcText)

Applies a comment to the state reported by an event notification which can be identified by the `eventId` using the specified `context`.

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

```csharp
public void AddComment(OpcContext context, byte[] eventId, OpcText comment)
```

</div>

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

```vbnet
Public Sub AddComment(
    context As OpcContext,
    eventId As Byte(),
    comment As OpcText)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use. |
| `eventId` | [Byte](https://learn.microsoft.com/dotnet/api/system.byte)[] | The identifier which identifies the particular event notification its reported state for the condition node is to be commented. |
| `comment` | [OpcText](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/) | The text to apply on the condition state. |

**Exceptions**

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

### AddCommentCore

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

Applies the `comment` to the state of the condition node.

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

```csharp
protected virtual OpcStatusCode AddCommentCore(
    OpcNodeContext<OpcConditionNode> context,
    byte[] eventId,
    OpcText comment)
```

</div>

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

```vbnet
Protected Overridable Function AddCommentCore(
    context As OpcNodeContext(Of OpcConditionNode),
    eventId As Byte(),
    comment As OpcText) As OpcStatusCode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcNodeContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecontext-1/)&lt;[OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/)&gt; | The [OpcNodeContext&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecontext-1/) to use to apply the comment. |
| `eventId` | [Byte](https://learn.microsoft.com/dotnet/api/system.byte)[] | The identifier identifying a particular event notification where a state was reported for a condition. |
| `comment` | [OpcText](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/) | A localized text to be applied to the condition. |

**Returns**

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

The [OpcStatusCode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/) specifying the outcome of the operation using the [AddCommentCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#addcommentcallback) or [Good](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#good) if there is no custom callback routine defined.

### CreateBranch

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

| Overload | Description |
|---|---|
| [CreateBranch(OpcContext)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#createbranch-opc-uafx-opccontext) | Creates a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class which can be used to maintain branched event information. |
| [CreateBranch(OpcContext, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#createbranch-opc-uafx-opccontext-opc-uafx-opcnodeid) | Creates a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class using the `branchId` specified to maintain branched event information. |

#### CreateBranch(OpcContext)

Creates a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class which can be used to maintain branched event information.

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

```csharp
public OpcConditionNode CreateBranch(OpcContext context)
```

</div>

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

```vbnet
Public Function CreateBranch(context As OpcContext) As OpcConditionNode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use. |

**Returns**

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

A new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class there its [BranchId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#branchid) is set to a [Guid](https://learn.microsoft.com/dotnet/api/system.guid) created using [NewGuid()](https://learn.microsoft.com/dotnet/api/system.guid.newguid).

#### CreateBranch(OpcContext, OpcNodeId)

Creates a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class using the `branchId` specified to maintain branched event information.

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

```csharp
public OpcConditionNode CreateBranch(OpcContext context, OpcNodeId branchId)
```

</div>

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

```vbnet
Public Function CreateBranch(
    context As OpcContext,
    branchId As OpcNodeId) As OpcConditionNode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use. |
| `branchId` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) to use to define the custom branch identifier to use for the [BranchId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#branchid) of the new [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) instance to create. |

**Returns**

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

A new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) class there its [BranchId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#branchid) is set to the `branchId` specified.

### CreateBranchCore

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

Creates a new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) using the same [Id](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#id) and [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#name) as this node.

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

```csharp
protected virtual OpcConditionNode CreateBranchCore()
```

</div>

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

```vbnet
Protected Overridable Function CreateBranchCore() As OpcConditionNode
```

</div>

**Returns**

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

A new instance of the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) identifiable and accessible througth the same [Id](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#id) and [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#name) as this node.

### Disable

Changes the condition state to 'Disabled' using the specified `context`.

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

```csharp
public void Disable(OpcContext context)
```

</div>

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

```vbnet
Public Sub Disable(context As OpcContext)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `context` is a null reference (Nothing in Visual Basic). |
| [OpcException](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexception/) | The call failed (see exception details for more information). |

### DisableCore

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

Disables the condition node.

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

```csharp
protected virtual OpcStatusCode DisableCore(
    OpcNodeContext<OpcConditionNode> context)
```

</div>

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

```vbnet
Protected Overridable Function DisableCore(
    context As OpcNodeContext(Of OpcConditionNode)) As OpcStatusCode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcNodeContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecontext-1/)&lt;[OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/)&gt; | The [OpcNodeContext&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecontext-1/) to use to disable the condition node. |

**Returns**

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

The [OpcStatusCode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/) specifying the outcome of the operation using the [DisableCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#disablecallback) or [Good](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#good) if there is no custom callback routine defined.

### Enable

Changes the condition state to 'Enabled' using the specified `context`.

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

```csharp
public void Enable(OpcContext context)
```

</div>

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

```vbnet
Public Sub Enable(context As OpcContext)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) | The [OpcContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/) to use. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `context` is a null reference (Nothing in Visual Basic). |
| [OpcException](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexception/) | The call failed (see exception details for more information). |

### EnableCore

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

Enables the condition node.

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

```csharp
protected virtual OpcStatusCode EnableCore(
    OpcNodeContext<OpcConditionNode> context)
```

</div>

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

```vbnet
Protected Overridable Function EnableCore(
    context As OpcNodeContext(Of OpcConditionNode)) As OpcStatusCode
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcNodeContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecontext-1/)&lt;[OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/)&gt; | The [OpcNodeContext&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecontext-1/) to use to enable the condition node. |

**Returns**

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

The [OpcStatusCode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/) specifying the outcome of the operation using the [EnableCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/members#enablecallback) or [Good](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatuscode/#good) if there is no custom callback routine defined.

### InitializeDefaults

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

Initializes the default values used by the [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/).

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

```csharp
protected override void InitializeDefaults()
```

</div>

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

```vbnet
Protected Overrides Sub InitializeDefaults()
```

</div>

**Overrides**

[InitializeDefaults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/members#initializedefaults)

**Remarks**

This method is used to ensure the availability of appropriate node specific default values. For more information like when this method is to be overwritten see [InitializeDefaults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#initializedefaults).
