# API Changes in v2.20

> Reference: API changes of Opc.UaFx.Advanced in v2.20: 47 added, 0 removed, 44 changed, 0 obsoleted.

<dl class="api-definition">
<dt>Releases</dt>
<dd>v2.20.0, v2.20.1, v2.20.2, v2.20.3, v2.20.4</dd>
<dt>Compared with</dt>
<dd>v2.19.2</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced</dd>
</dl>

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [IOpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodememberinfo/)<span class="api-meta">7 members</span> | `public interface IOpcNodeMemberInfo` |
| [IOpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodetypeinfo/)<span class="api-meta">9 members</span> | `public interface IOpcNodeTypeInfo` |
| [OpcEnumAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcenumattribute/)<span class="api-meta">5 members</span> | `[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false, Inherited = false)] public class OpcEnumAttribute : Attribute` |
| [OpcEnumMemberOrigins](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcenummemberorigins/)<span class="api-meta">2 members</span> | `[Flags] public enum OpcEnumMemberOrigins` |
| [OpcEnumType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcenumtype/)<span class="api-meta">3 members</span> | `public enum OpcEnumType` |
| [OpcInstanceNode.GetNodeValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#getnodevalue-t1-opc-uafx-opcname) | `public T GetNodeValue<T>(OpcName name)` |
| [OpcInstanceNode.GetNodeValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#getnodevalue-t1-system-string) | `public T GetNodeValue<T>(string name = "")` |
| [OpcInstanceNode.SetNodeValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#setnodevalue-t1-opc-uafx-opcname-t0) | `public void SetNodeValue<T>(OpcName name, T value)` |
| [OpcInstanceNode.SetNodeValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#setnodevalue-t1-system-string-t0) | `public void SetNodeValue<T>(string name = "", T value = default)` |
| [OpcMemberOrigins.Method](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmemberorigins/#method) | `Method = 4` |
| [OpcNode.GetType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#gettype) | `public static Type GetType(OpcNodeId typeId)` |
| [OpcNode.GetTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#gettypeinfo-opc-uafx-opcnodeid) | `public static OpcNodeTypeInfo GetTypeInfo(OpcNodeId typeId)` |
| [OpcNode.GetTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#gettypeinfo-system-type) | `public static OpcNodeTypeInfo GetTypeInfo(Type underlyingType)` |
| [OpcNode.GetTypeInfo&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#gettypeinfo-t1) | `public static OpcNodeTypeInfo GetTypeInfo<T>()` |
| [OpcNode.RegisterType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#registertype-system-type-opc-uafx-opcnodeid) | `public static void RegisterType(Type nodeType, OpcNodeId nodeTypeId)` |
| [OpcNode.RegisterType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#registertype-system-type) | `public static void RegisterType(Type nodeType)` |
| [OpcNode.RegisterType&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#registertype-t1) | `public static void RegisterType<T>()` |
| [OpcNode.RegisterType&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#registertype-t1-opc-uafx-opcnodeid) | `public static void RegisterType<T>(OpcNodeId nodeTypeId)` |
| [OpcNode.RegisterTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#registertypes-system-reflection-assembly) | `public static void RegisterTypes(Assembly assembly)` |
| [OpcNode.RegisterTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#registertypes-system-collections-generic-ienumerable-of-system-type) | `public static void RegisterTypes(IEnumerable<Type> nodeTypes)` |
| [OpcNode.RegisterTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#registertypes-system-type-system-type-array) | `public static void RegisterTypes(Type nodeType, params Type[] nodeTypes)` |
| [OpcNode.UnregisterType&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#unregistertype-t1) | `public static void UnregisterType<T>()` |
| [OpcNode.UnregisterType&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#unregistertype-t1-opc-uafx-opcnodeid) | `public static void UnregisterType<T>(OpcNodeId nodeTypeId)` |
| [OpcNode.UnregisterTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#unregistertypes-system-reflection-assembly) | `public static void UnregisterTypes(Assembly assembly)` |
| [OpcNode.UnregisterTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#unregistertypes-system-collections-generic-ienumerable-of-system-type) | `public static void UnregisterTypes(IEnumerable<Type> nodeTypes)` |
| [OpcNode.UnregisterTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#unregistertypes-system-type-system-type-array) | `public static void UnregisterTypes(Type nodeType, params Type[] nodeTypes)` |
| [OpcNodeFieldInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodefieldinfo/)<span class="api-meta">1 member</span> | `public abstract class OpcNodeFieldInfo : OpcNodeMemberInfo, IOpcNodeMemberInfo` |
| [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/)<span class="api-meta">9 members</span> | `public abstract class OpcNodeMemberInfo : IOpcNodeMemberInfo` |
| [OpcNodeMethodInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemethodinfo/) | `public abstract class OpcNodeMethodInfo : OpcNodeMemberInfo, IOpcNodeMemberInfo` |
| [OpcNodeObjectInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeobjectinfo/) | `public abstract class OpcNodeObjectInfo : OpcNodeMemberInfo, IOpcNodeMemberInfo` |
| [OpcNodePropertyInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodepropertyinfo/)<span class="api-meta">1 member</span> | `public abstract class OpcNodePropertyInfo : OpcNodeMemberInfo, IOpcNodeMemberInfo` |
| [OpcNodeTypeAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeattribute/)<span class="api-meta">14 members</span> | `[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] public class OpcNodeTypeAttribute : Attribute` |
| [OpcNodeTypeIgnoreMemberAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeignorememberattribute/)<span class="api-meta">1 member</span> | `[AttributeUsage(AttributeTargets.Method\|AttributeTargets.Property\|AttributeTargets.Field, AllowMultiple = false, Inherited = false)] public class OpcNodeTypeIgnoreMemberAttribute : Attribute` |
| [OpcNodeTypeInfo.GetMember](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#getmember) | `public OpcNodeMemberInfo GetMember(string name)` |
| [OpcNodeTypeInfo.GetMembers](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#getmembers) | `public OpcNodeMemberInfo[] GetMembers()` |
| [OpcNodeTypeInfo.GetMembersCore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#getmemberscore) | `protected virtual IEnumerable<OpcNodeMemberInfo> GetMembersCore()` |
| [OpcNodeTypeInfo.IsObject](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#isobject) | `public virtual bool IsObject { get; }` |
| [OpcNodeTypeInfo.IsSystemType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#issystemtype) | `public virtual bool IsSystemType { get; }` |
| [OpcNodeTypeInfo.IsVariable](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#isvariable) | `public virtual bool IsVariable { get; }` |
| [OpcNodeTypeMemberAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypememberattribute/)<span class="api-meta">5 members</span> | `[AttributeUsage(AttributeTargets.Method\|AttributeTargets.Property\|AttributeTargets.Field, AllowMultiple = false, Inherited = false)] public class OpcNodeTypeMemberAttribute : Attribute` |
| [OpcNodeTypeMembersAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypemembersattribute/)<span class="api-meta">2 members</span> | `[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] public class OpcNodeTypeMembersAttribute : Attribute` |
| [OpcNodeTypeNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypenode/)<span class="api-meta">7 members</span> | `public abstract class OpcNodeTypeNode : OpcTypeNode, IOpcNode, IOpcNodeInfo` |
| [OpcNodeTypeNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypenode-1/)<span class="api-meta">4 members</span> | `public class OpcNodeTypeNode<T> : OpcNodeTypeNode, IOpcNode, IOpcNodeInfo` |
| [OpcNodeTypeOptionalMemberAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeoptionalmemberattribute/)<span class="api-meta">1 member</span> | `[AttributeUsage(AttributeTargets.Method\|AttributeTargets.Property\|AttributeTargets.Field, AllowMultiple = false, Inherited = false)] public class OpcNodeTypeOptionalMemberAttribute : Attribute` |
| [OpcNodeTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypes/)<span class="api-meta">5 members</span> | `public static class OpcNodeTypes` |
| [OpcNodeTypeSystem.Current](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/members#current) | `public static OpcNodeTypeSystem Current { get; }` |
| [OpcNodeTypeSystem.Default](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypesystem/members#default) | `public static OpcNodeTypeSystem Default { get; }` |

## Changed

### Opc.UaFx

| Symbol | Signature (old, new) |
|---|---|
| [OpcAcknowledgeableConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcacknowledgeableconditionnode/) | `[OpcEventType(typeof(OpcAcknowledgeableCondition))] public class OpcAcknowledgeableConditionNode : OpcConditionNode, IOpcNode, IOpcNodeInfo`<br>`[OpcEventType(typeof(OpcAcknowledgeableCondition))] [OpcNodeType(2881)] public class OpcAcknowledgeableConditionNode : OpcConditionNode, IOpcNode, IOpcNodeInfo` |
| [OpcAggregateConfigurationNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcaggregateconfigurationnode/) | `public class OpcAggregateConfigurationNode : OpcObjectNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(11187)] public class OpcAggregateConfigurationNode : OpcObjectNode, IOpcNode, IOpcNodeInfo` |
| [OpcAlarmConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcalarmconditionnode/) | `[OpcEventType(typeof(OpcAlarmCondition))] public class OpcAlarmConditionNode : OpcAcknowledgeableConditionNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2915)] [OpcEventType(typeof(OpcAlarmCondition))] public class OpcAlarmConditionNode : OpcAcknowledgeableConditionNode, IOpcNode, IOpcNodeInfo` |
| [OpcAnalogItemNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcanalogitemnode/) | `public class OpcAnalogItemNode : OpcDataItemNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2368)] public class OpcAnalogItemNode : OpcDataItemNode, IOpcNode, IOpcNodeInfo` |
| [OpcConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionnode/) | `[OpcEventType(typeof(OpcCondition))] public class OpcConditionNode : OpcEventNode, IOpcNode, IOpcNodeInfo`<br>`[OpcEventType(typeof(OpcCondition))] [OpcNodeType(2782)] public class OpcConditionNode : OpcEventNode, IOpcNode, IOpcNodeInfo` |
| [OpcConditionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcconditionvariablenode/) | `public class OpcConditionVariableNode : OpcDataVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(9002)] public class OpcConditionVariableNode : OpcDataVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcDataItemNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdataitemnode/) | `public class OpcDataItemNode : OpcDataVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2365)] public class OpcDataItemNode : OpcDataVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcDataVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatavariablenode/) | `public class OpcDataVariableNode : OpcVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(63)] public class OpcDataVariableNode : OpcVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcDialogConditionNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdialogconditionnode/) | `[OpcEventType(typeof(OpcDialogCondition))] public class OpcDialogConditionNode : OpcConditionNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2830)] [OpcEventType(typeof(OpcDialogCondition))] public class OpcDialogConditionNode : OpcConditionNode, IOpcNode, IOpcNodeInfo` |
| [OpcDiscreteAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdiscretealarmnode/) | `[OpcEventType(typeof(OpcDiscreteAlarm))] public class OpcDiscreteAlarmNode : OpcAlarmConditionNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(10523)] [OpcEventType(typeof(OpcDiscreteAlarm))] public class OpcDiscreteAlarmNode : OpcAlarmConditionNode, IOpcNode, IOpcNodeInfo` |
| [OpcEventNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnode/) | `[OpcEventType(typeof(OpcEvent))] public class OpcEventNode : OpcObjectNode, IOpcNode, IOpcNodeInfo`<br>`[OpcEventType(typeof(OpcEvent))] [OpcNodeType(2041)] public class OpcEventNode : OpcObjectNode, IOpcNode, IOpcNodeInfo` |
| [OpcExclusiveDeviationAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexclusivedeviationalarmnode/) | `[OpcEventType(typeof(OpcExclusiveDeviationAlarm))] public class OpcExclusiveDeviationAlarmNode : OpcExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(9764)] [OpcEventType(typeof(OpcExclusiveDeviationAlarm))] public class OpcExclusiveDeviationAlarmNode : OpcExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcExclusiveLevelAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexclusivelevelalarmnode/) | `[OpcEventType(typeof(OpcExclusiveLevelAlarm))] public class OpcExclusiveLevelAlarmNode : OpcExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcEventType(typeof(OpcExclusiveLevelAlarm))] [OpcNodeType(9482)] public class OpcExclusiveLevelAlarmNode : OpcExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcExclusiveLimitAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexclusivelimitalarmnode/) | `[OpcEventType(typeof(OpcExclusiveLimitAlarm))] public class OpcExclusiveLimitAlarmNode : OpcLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcEventType(typeof(OpcExclusiveLimitAlarm))] [OpcNodeType(9341)] public class OpcExclusiveLimitAlarmNode : OpcLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcExclusiveLimitStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexclusivelimitstatemachinenode/) | `public class OpcExclusiveLimitStateMachineNode : OpcFiniteStateMachineNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(9318)] public class OpcExclusiveLimitStateMachineNode : OpcFiniteStateMachineNode, IOpcNode, IOpcNodeInfo` |
| [OpcExclusiveRateOfChangeAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexclusiverateofchangealarmnode/) | `[OpcEventType(typeof(OpcExclusiveRateOfChangeAlarm))] public class OpcExclusiveRateOfChangeAlarmNode : OpcExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(9623)] [OpcEventType(typeof(OpcExclusiveRateOfChangeAlarm))] public class OpcExclusiveRateOfChangeAlarmNode : OpcExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcFileNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfilenode/) | `public class OpcFileNode : OpcObjectNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(11575)] public class OpcFileNode : OpcObjectNode, IOpcNode, IOpcNodeInfo` |
| [OpcFiniteStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/) | `public class OpcFiniteStateMachineNode : OpcStateMachineNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2771)] public class OpcFiniteStateMachineNode : OpcStateMachineNode, IOpcNode, IOpcNodeInfo` |
| [OpcFiniteStateVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatevariablenode/) | `public class OpcFiniteStateVariableNode : OpcStateVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2760)] public class OpcFiniteStateVariableNode : OpcStateVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcFiniteTransitionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitetransitionvariablenode/) | `public class OpcFiniteTransitionVariableNode : OpcTransitionVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2767)] public class OpcFiniteTransitionVariableNode : OpcTransitionVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcFolderNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfoldernode/) | `public class OpcFolderNode : OpcObjectNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(61)] public class OpcFolderNode : OpcObjectNode, IOpcNode, IOpcNodeInfo` |
| [OpcHistoryConfigurationNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opchistoryconfigurationnode/) | `public class OpcHistoryConfigurationNode : OpcObjectNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2318)] public class OpcHistoryConfigurationNode : OpcObjectNode, IOpcNode, IOpcNodeInfo` |
| [OpcMemberOrigins.Default](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmemberorigins/#default) | `Default = Field \| Property \| Public`<br>`Default = Field \| Property \| Method \| Public` |
| [OpcMemberOrigins.Explicit](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmemberorigins/#explicit) | `Explicit = 4`<br>`Explicit = 8` |
| [OpcMemberOrigins.Internal](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmemberorigins/#internal) | `Internal = 16`<br>`Internal = 32` |
| [OpcMemberOrigins.Private](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmemberorigins/#private) | `Private = 64`<br>`Private = 128` |
| [OpcMemberOrigins.Protected](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmemberorigins/#protected) | `Protected = 32`<br>`Protected = 64` |
| [OpcMemberOrigins.Public](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmemberorigins/#public) | `Public = 8`<br>`Public = 16` |
| [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) | `public abstract class OpcNodeTypeInfo : IOpcType, IOpcNodeInfo`<br>`public abstract class OpcNodeTypeInfo : IOpcType, IOpcNodeTypeInfo, IOpcNodeInfo` |
| [OpcNonExclusiveDeviationAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnonexclusivedeviationalarmnode/) | `[OpcEventType(typeof(OpcNonExclusiveDeviationAlarm))] public class OpcNonExclusiveDeviationAlarmNode : OpcNonExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(10368)] [OpcEventType(typeof(OpcNonExclusiveDeviationAlarm))] public class OpcNonExclusiveDeviationAlarmNode : OpcNonExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcNonExclusiveLevelAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnonexclusivelevelalarmnode/) | `[OpcEventType(typeof(OpcNonExclusiveLevelAlarm))] public class OpcNonExclusiveLevelAlarmNode : OpcNonExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(10060)] [OpcEventType(typeof(OpcNonExclusiveLevelAlarm))] public class OpcNonExclusiveLevelAlarmNode : OpcNonExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcNonExclusiveLimitAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnonexclusivelimitalarmnode/) | `[OpcEventType(typeof(OpcNonExclusiveLimitAlarm))] public class OpcNonExclusiveLimitAlarmNode : OpcLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(9906)] [OpcEventType(typeof(OpcNonExclusiveLimitAlarm))] public class OpcNonExclusiveLimitAlarmNode : OpcLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcNonExclusiveRateOfChangeAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnonexclusiverateofchangealarmnode/) | `[OpcEventType(typeof(OpcNonExclusiveRateOfChangeAlarm))] public class OpcNonExclusiveRateOfChangeAlarmNode : OpcNonExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(10214)] [OpcEventType(typeof(OpcNonExclusiveRateOfChangeAlarm))] public class OpcNonExclusiveRateOfChangeAlarmNode : OpcNonExclusiveLimitAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/) | `public class OpcObjectNode : OpcInstanceNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(58)] public class OpcObjectNode : OpcInstanceNode, IOpcNode, IOpcNodeInfo` |
| [OpcObjectTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjecttypeinfo/) | `public abstract class OpcObjectTypeInfo : OpcNodeTypeInfo, IOpcType, IOpcNodeInfo`<br>`public abstract class OpcObjectTypeInfo : OpcNodeTypeInfo, IOpcType, IOpcNodeTypeInfo, IOpcNodeInfo` |
| [OpcOffNormalAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcoffnormalalarmnode/) | `[OpcEventType(typeof(OpcOffNormalAlarm))] public class OpcOffNormalAlarmNode : OpcDiscreteAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcEventType(typeof(OpcOffNormalAlarm))] [OpcNodeType(10637)] public class OpcOffNormalAlarmNode : OpcDiscreteAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcPropertyNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcpropertynode/) | `public class OpcPropertyNode : OpcVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(68)] public class OpcPropertyNode : OpcVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatemachinenode/) | `public class OpcStateMachineNode : OpcObjectNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2299)] public class OpcStateMachineNode : OpcObjectNode, IOpcNode, IOpcNodeInfo` |
| [OpcStateVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstatevariablenode/) | `public class OpcStateVariableNode : OpcTextVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2755)] public class OpcStateVariableNode : OpcTextVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcTransitionVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctransitionvariablenode/) | `public class OpcTransitionVariableNode : OpcTextVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2762)] public class OpcTransitionVariableNode : OpcTextVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcTripAlarmNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctripalarmnode/) | `[OpcEventType(typeof(OpcTripAlarm))] public class OpcTripAlarmNode : OpcOffNormalAlarmNode, IOpcNode, IOpcNodeInfo`<br>`[OpcEventType(typeof(OpcTripAlarm))] [OpcNodeType(10751)] public class OpcTripAlarmNode : OpcOffNormalAlarmNode, IOpcNode, IOpcNodeInfo` |
| [OpcTwoStateVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctwostatevariablenode/) | `public class OpcTwoStateVariableNode : OpcStateVariableNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(8995)] public class OpcTwoStateVariableNode : OpcStateVariableNode, IOpcNode, IOpcNodeInfo` |
| [OpcVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/) | `public abstract class OpcVariableNode : OpcInstanceNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(62)] public abstract class OpcVariableNode : OpcInstanceNode, IOpcNode, IOpcNodeInfo` |
| [OpcVariableTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariabletypeinfo/) | `public abstract class OpcVariableTypeInfo : OpcNodeTypeInfo, IOpcType, IOpcNodeInfo`<br>`public abstract class OpcVariableTypeInfo : OpcNodeTypeInfo, IOpcType, IOpcNodeTypeInfo, IOpcNodeInfo` |
