Glossary · Address space

NodeClass

In OPC UA, NodeClass is the mandatory attribute stating what kind of node you are looking at. There are exactly eight: Object, Variable, Method, ObjectType, VariableType, ReferenceType, DataType and View. The class determines which further attributes the node has and which services may be applied to it.

The eight classes

Objects structure the address space and hold Variables, Methods and events. Variables carry values. Methods are callable. ObjectType, VariableType, ReferenceType and DataType are the type-definition classes that populate the TypesFolder at i=86. View defines a restricted subset of the address space for browsing. Nothing else exists: if you think you need a ninth class, you actually need a type under one of these eight.

Attributes are class-dependent

Every node has NodeId, NodeClass, BrowseName and DisplayName, plus optional Description, WriteMask, UserWriteMask and RolePermissions. Beyond that the class decides: a Variable adds Value, DataType, ValueRank, ArrayDimensions, AccessLevel, UserAccessLevel, MinimumSamplingInterval and Historizing; a Method adds Executable and UserExecutable; the type classes add IsAbstract; ReferenceType adds Symmetric and InverseName. Reading an attribute a class does not have returns BadAttributeIdInvalid, not a null value.

NodeClassMask, the cheap optimisation nobody uses

The Browse service takes a NodeClassMask, a bitmask that makes the server return only the classes you asked for. Browsing a large PLC address space for Variables only, instead of filtering client-side, cuts response size substantially and avoids continuation-point churn. Combine it with a ReferenceTypeId filter and a ResultMask before you resort to BrowseNext tuning.

Example

The eight NodeClasses and the services that apply to each

Object          instance container; event notifier      Browse, Read attributes
Variable        holds a Value                           Read, Write, HistoryRead, monitor
Method          callable procedure                      Call
ObjectType      type definition for Objects             Browse, instantiate offline
VariableType    type definition for Variables           Browse
ReferenceType   type definition for references          Browse, used as filter
DataType        type definition for values              Browse, DataTypeDefinition
View            a scoped subset of the address space    Browse with ViewDescription

NodeClassMask bit values used by Browse:
  Object 1, Variable 2, Method 4, ObjectType 8,
  VariableType 16, ReferenceType 32, DataType 64, View 128
  Objects + Variables = 3;  0 means all classes
The mistake people make: Assuming anything with a value is a Variable and anything without one is an Object. A Property is a Variable, an ObjectType has no value but is not an Object, and calling Read on a Method's Value attribute returns BadAttributeIdInvalid. Check the NodeClass attribute rather than inferring it from what the browse tree looks like in a client.

Defined in: Part 3 - Address Space Model defines the NodeClasses and their attributes; the normative attribute identifier list ships as Schema/AttributeIds.csv in the UA-Nodeset repository.

Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.

Free download
OPC UA Server Acceptance Test Pack
A 40-check acceptance test you run against a vendor's server before commissioning sign-off. Weighted scoring, three hard gates, and a one-page verdict for the supplier meeting.
Get the free test pack →
Free, no course, no login