ReferenceType
In OPC UA, a ReferenceType is the NodeClass that defines the meaning of a reference between two nodes. Every reference is typed, directed and named by a ReferenceType node. The types form a hierarchy under References, split into HierarchicalReferences, which build browse trees, and NonHierarchicalReferences, which do not.
The hierarchy
References at i=31 is the abstract root. Beneath it HierarchicalReferences at i=33 covers Organizes, Aggregates - and its subtypes HasComponent, HasProperty, HasOrderedComponent - plus HasSubtype, HasEventSource and HasNotifier. NonHierarchicalReferences at i=32 covers HasTypeDefinition, HasModellingRule, HasEncoding, HasDescription, GeneratesEvent, HasInterface and the Part 17 alias references. Only hierarchical references contribute to the tree a browse client draws.
Symmetric, InverseName and direction
A ReferenceType node adds two attributes to the usual set. Symmetric says whether the reference means the same in both directions; if it does not, InverseName gives the LocalizedText for the reverse reading - HasComponent inverse is ComponentOf, HasSubtype inverse is SubtypeOf. Every reference exists in both directions in the address space model; whether a server will let you browse it backwards is another matter.
Using ReferenceTypeId as a browse filter
Browse takes a ReferenceTypeId plus an IncludeSubtypes flag. Browsing with HierarchicalReferences and IncludeSubtypes true gives you the tree; browsing with HasComponent only gives you composition and skips folder membership. Filtering here rather than client-side is the single biggest win when browsing a large PLC address space, and it avoids exhausting the server's continuation points.
Example
The reference type hierarchy, with the well-known numeric identifiers
References (i=31, abstract)
+- HierarchicalReferences (i=33, abstract) builds the browse tree
| +- HasChild (i=34, abstract)
| | +- Aggregates (i=44, abstract)
| | | +- HasComponent (i=47) inverse: ComponentOf
| | | +- HasProperty (i=46) inverse: PropertyOf
| | | +- HasOrderedComponent
| | +- HasSubtype (i=45) inverse: SubtypeOf
| +- Organizes (i=35) inverse: OrganizedBy
| +- HasEventSource / HasNotifier
+- NonHierarchicalReferences (i=32, abstract)
+- HasTypeDefinition (i=40) inverse: TypeDefinitionOf
+- HasModellingRule / HasEncoding / HasDescription
+- HasInterface / GeneratesEvent
Defined in: Part 3 - Address Space Model, ReferenceType NodeClass and the standard reference type hierarchy.
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.