QuickOPC User's Guide and Reference
UABrowsePath Class
Members 



OpcLabs.EasyOpcUA Assembly > OpcLabs.EasyOpc.UA.Navigation Namespace : UABrowsePath Class
OPC-UA absolute browse path. A starting node, and sequence of browse path elements that denotes a path from the starting node in the OPC-UA address space.
Object Model
UABrowsePath ClassUABrowsePathElementCollection ClassUABrowsePathElement ClassUABrowsePath ClassUANodeDescriptor ClassUANodeId Class
Syntax
'Declaration
 
<ComDefaultInterfaceAttribute(OpcLabs.EasyOpc.UA.Navigation.ComTypes._UABrowsePath)>
<ComVisibleAttribute(True)>
<GuidAttribute("0FC7DFD3-0C59-46D2-BEDD-9514964943CF")>
<TypeConverterAttribute(OpcLabs.EasyOpc.UA.Navigation.Implementation.UABrowsePathConverter)>
<CLSCompliantAttribute(True)>
<ValueControlAttribute("OpcLabs.BaseLib.Forms.Common.ObjectSerializationControl, OpcLabs.BaseLibForms, Version=5.72.465.1, Culture=neutral, PublicKeyToken=6faddca41dacb409", 
   DefaultReadWrite=False, 
   Export=True, 
   PageId=10001)>
<SerializableAttribute()>
Public NotInheritable Class UABrowsePath 
   Inherits OpcLabs.BaseLib.Info
   Implements LINQPad.ICustomMemberProvider, OpcLabs.BaseLib.ComTypes._Info, OpcLabs.BaseLib.ComTypes._Object2, OpcLabs.EasyOpc.UA.Navigation.ComTypes._UABrowsePath, System.ICloneable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable 
'Usage
 
Dim instance As UABrowsePath
[ComDefaultInterface(OpcLabs.EasyOpc.UA.Navigation.ComTypes._UABrowsePath)]
[ComVisible(true)]
[Guid("0FC7DFD3-0C59-46D2-BEDD-9514964943CF")]
[TypeConverter(OpcLabs.EasyOpc.UA.Navigation.Implementation.UABrowsePathConverter)]
[CLSCompliant(true)]
[ValueControl("OpcLabs.BaseLib.Forms.Common.ObjectSerializationControl, OpcLabs.BaseLibForms, Version=5.72.465.1, Culture=neutral, PublicKeyToken=6faddca41dacb409", 
   DefaultReadWrite=false, 
   Export=true, 
   PageId=10001)]
[Serializable()]
public sealed class UABrowsePath : OpcLabs.BaseLib.Info, LINQPad.ICustomMemberProvider, OpcLabs.BaseLib.ComTypes._Info, OpcLabs.BaseLib.ComTypes._Object2, OpcLabs.EasyOpc.UA.Navigation.ComTypes._UABrowsePath, System.ICloneable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable  
[ComDefaultInterface(OpcLabs.EasyOpc.UA.Navigation.ComTypes._UABrowsePath)]
[ComVisible(true)]
[Guid("0FC7DFD3-0C59-46D2-BEDD-9514964943CF")]
[TypeConverter(OpcLabs.EasyOpc.UA.Navigation.Implementation.UABrowsePathConverter)]
[CLSCompliant(true)]
[ValueControl("OpcLabs.BaseLib.Forms.Common.ObjectSerializationControl, OpcLabs.BaseLibForms, Version=5.72.465.1, Culture=neutral, PublicKeyToken=6faddca41dacb409", 
   DefaultReadWrite=false, 
   Export=true, 
   PageId=10001)]
[Serializable()]
public ref class UABrowsePath sealed : public OpcLabs.BaseLib.Info, LINQPad.ICustomMemberProvider, OpcLabs.BaseLib.ComTypes._Info, OpcLabs.BaseLib.ComTypes._Object2, OpcLabs.EasyOpc.UA.Navigation.ComTypes._UABrowsePath, System.ICloneable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable  
Remarks

 

Browse Paths In General

An alternative way (to using a node ID) of specifying a node in OPC address space is using a browse path. The browse path is a sequence of node names, starting from a known location (e.g. the root of the OPC address space). The browse path can also be expressed as a string, where the individual node names are separated by delimiters (e.g. “/”, a slash).

Browse paths can be absolute (starting from a specified node), or relative.

The advantage of the browse paths is that you can construct them yourself, with just knowledge of the node names, without knowing the full node IDs. In the end, each item must be addressed by its node ID, and QuickOPC will resolve the browse path to a node ID as necessary.

OPC UA Browse Paths Specifics

In OPC Unified Architecture, each element of the browse path is not a simple string, but instead, it is a structured object (UABrowsePathElement) which contains more information that allows identifying the child node.

The OPC-UA browse path element contains a qualified name of the child node (a name qualified with a namespace URI), in the UABrowsePathElement.TargetName property. This allows ensuring the uniqueness of browse path elements in complex OPC-UA servers, such as when the address space is aggregated from multiple sources.

Because in OPC-UA there may be various references that lead from the parent node to a child node, the OPC-UA browse paths need to specify which type of reference should be used. This is done by the UABrowsePathElement.ReferenceTypeId property; in addition, it is possible to specify whether the reference should be followed in reverse direction (UABrowsePathElement.ReferenceIsInverse), and whether subtypes of the given reference type should also be considered.

An absolute browse path for OPC-UA is contained in a UABrowsePath object. The starting node of an OPC-UA browse path is contained in the UABrowsePath.StartingNodeId property. Browse paths are commonly specified by the BrowsePath property of the UANodeDescriptor object.

The UABrowsePath can be a null browse path, in case its StartingNodeId is a null node ID. A null browse path is used to specify that no browse path is known or given. Note that passing a null browse path object is different from passing a null reference to UABrowsePath (which is not allowed in most places).

If a non-null NodeId is specified in the descriptor, QuickOPC will use this node Id and ignore the browse path. If NodeId is null, QuickOPC will attempt to resolve the browse path contained in the BrowsePath property of the descriptor. Either node ID, or browse path (or both) must be specified. 

 

Inheritance Hierarchy

System.Object
   OpcLabs.BaseLib.Object2
      OpcLabs.BaseLib.Info
         OpcLabs.EasyOpc.UA.Navigation.UABrowsePath

Requirements

Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows

See Also