Reference🔗

Reference to either a model element of the same or another AAS or to an external entity.

A reference is an ordered list of keys.

A model reference is an ordered list of keys, each key referencing an element. The complete list of keys may for example be concatenated to a path that then gives unique access to an element.

A global reference is a reference to an external entity.

Constraint AASd-121🔗
For Reference's the Key.type of the first key of Reference.keys shall be one of GloballyIdentifiables.
Constraint AASd-122🔗
For global references, i.e. Reference's with Reference.type = ReferenceTypes.GlobalReference, the type of the first key of Reference.keys shall be one of GenericGloballyIdentifiables.
Constraint AASd-123🔗
For model references, i.e. Reference's with Reference.type = ReferenceTypes.ModelReference, the type of the first key of Reference.keys shall be one of AasIdentifiables.
Constraint AASd-124🔗
For global references, i.e. Reference's with Reference.type = ReferenceTypes.GlobalReference, the last key of Reference.keys shall be either one of GenericGloballyIdentifiables or one of GenericFragmentKeys.
Constraint AASd-125🔗

For model references, i.e. Reference's with Reference.type = ReferenceTypes.ModelReference, with more than one key in Reference.keys the type of the keys following the first key of Reference.keys shall be one of FragmentKeys.

AASd-125 ensures that the shortest path is used.
Constraint AASd-126🔗
For model references, i.e. Reference's with Reference.type = ReferenceTypes.ModelReference, with more than one key in Reference.keys the type of the last key in the reference key chain may be one of GenericFragmentKeys or no key at all shall have a value out of GenericFragmentKeys.
Constraint AASd-127🔗

For model references, i.e. Reference's with Reference.type = ReferenceTypes.ModelReference, with more than one key in Reference.keys a key with Key.type KeyTypes.FragmentReference shall be preceded by a key with Key.type KeyTypes.File or KeyTypes.Blob. All other AAS fragments, i.e. type values out of AasSubmodelElementsAsKeys, do not support fragments.

Which kind of fragments are supported depends on the content type and the specification of allowed fragment identifiers for the corresponding resource being referenced via the reference.
Constraint AASd-128🔗
For model references, i.e. Reference's with Reference.type = ReferenceTypes.ModelReference, the Key.value of a Key preceded by a Key with Key.type = KeyTypes.SubmodelElementList is an integer number denoting the position in the array of the submodel element list.

Properties 🔗

type: ReferenceTypes 🔗
Type of the reference.
Denotes, whether reference is a global reference or a model reference.
referredSemanticId: Optional[Reference] 🔗

For global references there typically is no semantic ID.

It is recommended to use a global reference.
keys: List[Key] 🔗
Unique references in their name space.

Invariants 🔗

Usages

HasSemantics HasSemantics.semanticId, HasSemantics.supplementalSemanticIds
Extension Extension.semanticId, Extension.supplementalSemanticIds, Extension.refersTo
Qualifier Qualifier.semanticId, Qualifier.supplementalSemanticIds, Qualifier.valueId
AssetAdministrationShell AssetAdministrationShell.derivedFrom, AssetAdministrationShell.submodels
AssetInformation AssetInformation.globalAssetId
SpecificAssetId SpecificAssetId.semanticId, SpecificAssetId.supplementalSemanticIds, SpecificAssetId.externalSubjectId
Submodel Submodel.semanticId, Submodel.supplementalSemanticIds
SubmodelElement SubmodelElement.semanticId, SubmodelElement.supplementalSemanticIds
RelationshipElement RelationshipElement.semanticId, RelationshipElement.supplementalSemanticIds, RelationshipElement.first, RelationshipElement.second
SubmodelElementList SubmodelElementList.semanticId, SubmodelElementList.supplementalSemanticIds, SubmodelElementList.semanticIdListElement
SubmodelElementCollection SubmodelElementCollection.semanticId, SubmodelElementCollection.supplementalSemanticIds
DataElement DataElement.semanticId, DataElement.supplementalSemanticIds
Property Property.semanticId, Property.supplementalSemanticIds, Property.valueId
MultiLanguageProperty MultiLanguageProperty.semanticId, MultiLanguageProperty.supplementalSemanticIds, MultiLanguageProperty.valueId
Range Range.semanticId, Range.supplementalSemanticIds
ReferenceElement ReferenceElement.semanticId, ReferenceElement.supplementalSemanticIds, ReferenceElement.value
Blob Blob.semanticId, Blob.supplementalSemanticIds
File File.semanticId, File.supplementalSemanticIds
AnnotatedRelationshipElement AnnotatedRelationshipElement.semanticId, AnnotatedRelationshipElement.supplementalSemanticIds, AnnotatedRelationshipElement.first, AnnotatedRelationshipElement.second
Entity Entity.semanticId, Entity.supplementalSemanticIds, Entity.globalAssetId
EventPayload EventPayload.source, EventPayload.sourceSemanticId, EventPayload.observableReference, EventPayload.observableSemanticId, EventPayload.subjectId
EventElement EventElement.semanticId, EventElement.supplementalSemanticIds
BasicEventElement BasicEventElement.semanticId, BasicEventElement.supplementalSemanticIds, BasicEventElement.observed, BasicEventElement.messageBroker
Operation Operation.semanticId, Operation.supplementalSemanticIds
Capability Capability.semanticId, Capability.supplementalSemanticIds
ConceptDescription ConceptDescription.isCaseOf
EmbeddedDataSpecification EmbeddedDataSpecification.dataSpecification
ValueReferencePair ValueReferencePair.valueId
DataSpecificationIec61360 DataSpecificationIec61360.unitId