Click or drag to resize

Definitions

Home
InstanceDeclaration

An InstanceDeclaration is an Object, ObjectType or Method that references a ModellingRule with a HasModellingRule Reference and is the TargetNode of a hierarchical Reference from a TypeDefinitionNode or another InstanceDeclaration.

Instances without ModellingRules

If no ModellingRule exists then the Node is neither considered for instantiation of a type nor considered for subtyping.

If a Node referenced by a TypeDefinitionNode does not reference a ModellingRule it indicates that this Node only belongs to the TypeDefinitionNode and not to the instances. For example, an ObjectType Node may contain a Property that describes scenarios where the type could be used. This Property would not be considered when creating instances of the type. This is also true for subtyping, that is, subtypes of the type definition would not inherit the referenced Node.

InstanceDeclarationHierarchy

The InstanceDeclarationHierarchy of a TypeDefinitionNode contains the TypeDefinitionNode and all InstanceDeclarations that are directly or indirectly referenced from the TypeDefinitionNode using hierarchical References in forward direction.

Similar Node of InstanceDeclaration

A similar Node of an InstanceDeclaration is a Node that has the same BrowseName and NodeClass as the InstanceDeclaration and in cases of Variables and Objects the same TypeDefinitionNode or a subtype of it.

BrowsePath

All targets of forward hierarchical References from a TypeDefinitionNode shall have a BrowseName that is unique within the TypeDefinitionNode. The same restriction applies to the targets of hierarchical References in forward direction from any InstanceDeclaration. This means that any InstanceDeclaration within the InstanceDeclarationHierarchy can be uniquely identified by a sequence of BrowseNames. This sequence of BrowseNames is called a BrowsePath.

Attribute Handling of InstanceDeclarations

Some restrictions exist regarding the Attributes of InstanceDeclarations when the InstanceDeclaration is overridden or instantiated. The BrowseName and the NodeClass shall never change and always be the same as the original InstanceDeclaration.

In addition, the rules defined in 6.2.7 apply for InstanceDeclarations of the NodeClass ObjectType.

Attribute Handling of Variable and VariableTypes

Some restrictions exist regarding the Attributes of a VariableType or a ObjectType used as an InstanceDeclaration with regard to the data type of the Value Attribute.

When a ObjectType used as InstanceDeclaration or a VariableType is overridden or instantiated the following rules apply:

  1. The DataType Attribute can only be changed to a new DataType if the new DataType is a subtype of the DataType originally used.

  2. The ValueRank Attribute may only be further restricted

    • ‘Any’ may be set to any other value;

    • ‘ScalarOrOneDimension’ may be set to ‘Scalar’ or ‘OneDimension’;

    • ‘OneOrMoreDimensions’ may be set to a concrete number of dimensions (value > 0)

    • All other values of this Attribute shall not be changed.

  3. The ArrayDimensions Attribute may be added if it was not provided or modify the value of an entry in the array from 0 to a different value. All other values in the array shall remain the same.