6.8 SubmodelElementType specialization
To meet the range of aspects of the assets which have to be described in the AAS a set of submodel element types are defined. Each submodel element type represents one of these aspects. Figure 14 provides a general overview.

6.8.1 AASSubmodelElementType common attributes
Figure 15 shows an overview about the AASSubmodelElement ObjectType.

A data element is a submodel element that is not further composed of other submodel elements (Table 27). A data element is a submodel element that has a value. The type of value may differ for different data elements.
| Attribute | Value | ||||
| BrowseName | AASSubmodelElementType | ||||
| IsAbstract | True | ||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others |
|---|---|---|---|---|---|
| Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. | |||||
| 0:HasInterface | ObjectType | IAASReferableType | - | - | |
| 0:HasProperty | Variable | ModelingKind | AASModelingKindDataType | 0:PropertyType | M |
| 0:HasComponent | Object | <Qualifier> | AASQualifierType | OP | |
| 0:HasComponent | Object | <DataSpecification> | AASReferenceType | OP | |
| 0:HasDictionaryEntry | Object | <IRDI_or_IRI_or_Custom_concept_description_entry> | AASIriConceptDescriptionType | ||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/SubmodelElement | AASIriConceptDescriptionType | ||
| Applied from IAASReferableType | |||||
| 0:HasProperty | Variable | Category | 0:String | 0:PropertyType | M |
The default value of the variable “ModelingKind” is “Instance”.
For each AASSubmodelElementType instance the semanticId is mapped to the OPC UA HasDictionaryEntry. This is at instance level because the DictionaryEntry refers to the concept dictionary element, which describes the individual instance and not the submodel element type.
The components of the AASSubmodelElementType have additional references which are defined in Table 28.
| Source Path | Reference Type | Is Forward | Target Path |
| <DataSpecification> | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/hasDataSpecification/dataSpecification |
| ModelingKind | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/SubmodelElement/kind |
| <Qualifier> | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/SubmodelElement/qualifiers |
6.8.2 AASSubmodelElementCollectionType
Figure 16 shows an overview about the AASSubmodelElementCollection ObjectType.

A submodel element collection is a set or list of submodel elements. The AASSubmodelElementCollectionType is defined in Table 29
| Attribute | Value | |||||
| BrowseName | AASSubmodelElementCollectionType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasComponent | Object | <SubmodelElement> | AASSubmodelElementType | OP | ||
| 0:HasProperty | Variable | AllowDuplicates | 0:Boolean | 0:PropertyType | O | |
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/SubmodelElementCollection | AASIriConceptDescriptionType | |||
The components of the AASSubmodelElementCollectionType have additional references which are defined in Table 30.
| Source Path | Reference Type | Is Forward | Target Path |
| <SubmodelElement> | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/SubmodelElementCollection/values |
| AllowDuplicates | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/SubmodelElementCollection/allowDuplicates |
The value elements in this collection are not ordered (i.e. http://Admin-shell.io/aas/2/0/ SubmodelElementCollection/ordered == False).
6.8.3 AASOrderedSubmodelElementCollectionType
Figure 17 shows an overview about the AASOrderedSubmodelElementCollection ObjectType.

Table 31 defines the AASOrderedSubmodelElementCollection ObjectType.
| Attribute | Value | |||||
| BrowseName | AASOrderedSubmodelElementCollectionType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementCollectionType defined in Table 29 and Table 30 i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasOrderedComponent | Object | <SubmodelElement> | AASSubmodelElementType | OP | ||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/SubmodelElementCollection | AASIriConceptDescriptionType | |||
The components of the AASOrderedSubmodelElementCollectionType have additional references which are defined in Table 32.
| Source Path | Reference Type | Is Forward | Target Path |
| <SubmodelElement> | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/SubmodelElementCollection/values |
The value elements in this collection are ordered (i.e. http://Admin-shell.io/aas/2/0/ SubmodelElementCollection/ordered == True).
6.8.4 AASMultiLanguagePropertyType
Figure 18 shows an overview about the AASMultiLanguageProperty ObjectType

This submodel element type is used for properties with a value that can be provided in multiple languages (see Table 33).
| Attribute | Value | |||||
| BrowseName | AASMultiLanguagePropertyType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node | ||||||
| 0:HasComponent | Object | ValueId | AASReferenceType | O | ||
| 0:HasProperty | Variable | Value | 0:LocalizedText[] | 0:PropertyType | O | |
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/MultiLanguageProperty | AASIriConceptDescriptionType | |||
The components of the AASMultiLanguagePropertyType have additional references which are defined in Table 34.
| Source Path | Reference Type | Is Forward | Target Path |
| ValueId | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/MultiLanguageProperty/valueId |
| Value | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/MultiLanguageProperty/value |
6.8.5 AASPropertyType
Figure 19 shows an overview about the AASProperty ObjectType.

The valueId attribute references a DictionaryEntry. Table 35 defines the AASProperty ObjectType.
| Attribute | Value | |||||
| BrowseName | AASPropertyType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasProperty | Variable | Value | 0:BaseDataType | 0:PropertyType | O | |
| 0:HasProperty | Variable | ValueType | AASValueTypeDataType | 0:PropertyType | M | |
| 0:HasComponent | Object | ValueId | - | AASReferenceType | O | |
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/Property | AASIriConceptDescriptionType | |||
The components of the AASPropertyType have additional references which are defined in Table 36.
| Source Path | Reference Type | Is Forward | Target Path |
| Value | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Property/value |
| ValueType | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Property/valueType |
| ValueId | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Property/valueId |
6.8.6 AASCapabilityType
Table 37 defines the AASCapability ObjectType.
| Attribute | Value | |||||
| BrowseName | AASCapabilityType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/Property | AASIriConceptDescriptionType | |||
6.8.7 AASOperationType
Figure 20 shows an overview about the AASOperation ObjectType.

AASOperationType is defined in Table 38. It encapsulates the standard OPC UA Method “Operation”. All rules for the OPC UA Method NodeClass declaration apply. “Operation” is defined without Arguments but with the OptionalPlaceholder ModellingRule. As defined in OPC 10000-3, this rule allows the inclusion of Arguments to this Method on sub-types or on instances.
| Attribute | Value | |||||
| BrowseName | AASOperationType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | Data Type | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasComponent | Method | Operation | MP | |||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/Operation | AASIriConceptDescriptionType | |||
An example of a method definition is:
Signature
Method_xy_name (
| [InputArgument] | |
| 0:PropertyType | BrowseNameA |
| 0:PropertyType | BrowseNameB |
| … |
| [OutputArgument] | |
| 0:PropertyType | BrowseNameK |
| 0:PropertyType | BrowseNameL |
| … |
)
Each individual element of the InputArgument and OutputArgument has to be referenced by a 0:HasDictionaryEntry to its semantic definition.
6.8.8 AASBlobType
Figure 21 shows an overview about the AASBlob ObjectType.

Table 39 defines the AASBlob ObjectType.
| Attribute | Value | |||||
| BrowseName | AASBlobType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasComponent | Object | File | 0:FileType | M | ||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/Blob | AASIriConceptDescriptionType | |||
The components of the AASBlobType have additional references which are defined in Table 40.
| Source Path | Reference Type | Is Forward | Target Path |
| File | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Blob/value |
6.8.9 AASFileType
Figure 22 shows an overview about the AASFile ObjectType.

Table 41 defines the AASFile ObjectType.
| Attribute | Value | |||||
| BrowseName | AASFileType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasProperty | Variable | Value | 0:String | 0:PropertyType | M | |
| 0:HasProperty | Variable | MimeType | AASMimeDataType | 0:PropertyType | M | |
| 0:HasComponent | Object | File | 0:FileType | O | ||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/File | AASIriConceptDescriptionType | |||
The components of the AASFileType have additional references which are defined in Table 42.
| Source Path | Reference Type | Is Forward | Target Path |
| File | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/File/value |
| MimeType | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/File/mimeType |
The additional reference to the real file of type 0:FileType is optional and not specified as such in the asset administration shell metamodel.
6.8.10 AASRelationshipElementType
Figure 23 shows an overview about the AASRelationElement ObjectType.

A relationship element is used to define a relationship between two referable elements (Table 43).
| Attribute | Value | |||||
| BrowseName | AASRelationshipElementType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasComponent | Object | First | AASReferenceType | M | ||
| 0:HasComponent | Object | Second | AASReferenceType | M | ||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/RelationshipElement | AASIriConceptDescriptionType | |||
Objects which have the AASReferenceType shall reference another type. According to Table 43 these are the following references:
the “First” node shall reference the Referable Type instance having the role of the subject
the “Second” node shall reference the Referable Type instance having the role of the object
The components of the AASRelationshipType have additional references defined in Table 44.
| Source Path | Reference Type | Is Forward | Target Path |
| First | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/RelationshipElement/first |
| Second | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/RelationshipElement/second |
Table 45 defines the AASAnnotatedRelationshipElement ObjectType.
| Attribute | Value | |||||
| BrowseName | AASAnnotatedRelationshipElementType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASRelationshipElementType defined in Table 45, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasComponent | Object | <DataElement> | AASSubmodelElementType | OP | ||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/AnnotatedRelationshipElement | AASIriConceptDescriptionType | |||
The components of the AASAnnotatedRelationshipElementType have additional references which are defined in Table 46.
| Source Path | Reference Type | Is Forward | Target Path |
| <DataElement> | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/AnnotatedRelationshipElement/annotations |
The following SubmodelElement objects are allowed for AASAnnotatedRelationshipElementType:
AASProperty
AASMultiLanguageProperty
AASRangeType
AASReferenceElementType
AASFileType
AASBlobType
6.8.11 AASReferenceElementType
Figure 24 shows an overview about the AASReferenceElement ObjectType.

An AASReferenceElement has a Reference as value (Table 47). This reference has an aggregation of keys (see Table 47) which represents a key chain. The resolved key chain points to an element.
| Attribute | Value | |||||
| BrowseName | AASReferenceElementType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasComponent | Object | Value | AASReferenceType | M | ||
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/ReferenceElement | AASIriConceptDescriptionType | |||
The Object which has the AASReferenceType shall reference another type. According to Table 47 the “Value” can contain the allowed subtypes of AASSubmodelElementTypes as defined in chapter 6.3.
The components of the AASReferenceElementType have additional references which are defined in Table 48.
| Source Path | Reference Type | Is Forward | Target Path |
| Value | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/ReferenceElement/value |
6.8.12 AASEventType
Figure 25 shows an overview about the AASEvent ObjectType.

Table 49 defines the AASEvent ObjectType.
| Attribute | Value | |||||
| BrowseName | AASEventType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| The attribute “observed” of the BasicEvent submodel element in the AAS metamodel is mapped to the OPC UA eventing mechanism using GeneratesEvent-references pointing from instances of this AASEventType to ObjectTypeNodes of type BaseEventType or its customized subclasses. | ||||||
6.8.13 AASEntityType
Figure 26 shows an overview about the AASEntity ObjectType.

Table 50 defines the AASEntity ObjectType.
| Attribute | Value | |||||
| BrowseName | AASEntityType | |||||
| IsAbstract | False | |||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | ||||||
| 0:HasComponent | Object | <SubmodelElement> | - | AASSubmodelElementType | OP | |
| 0:HasProperty | Variable | EntityType | AASEntityTypeDataType | 0:PropertyType | M | |
| 0:HasComponent | Object | Asset | - | AASReferenceType | O | |
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/Entity | AASIriConceptDescriptionType | |||
The components of the AASEntityType have additional references which are defined in Table 51.
| Source Path | Reference Type | Is Forward | Target Path |
| <SubmodelElement> | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Entity/statements |
| EntityType | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Entity/entityType |
| Asset | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Entity/asset |
6.8.14 AASRangeType
If Min missing then negative open range infinitely, if max missing the open range infinitely.| Attribute | Value | ||||
| BrowseName | AASRangeType | ||||
| IsAbstract | False | ||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Others |
|---|---|---|---|---|---|
| Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. | |||||
| 0:HasProperty | Variable | ValueType | AASValueTypeDataType | 0:PropertyType | M |
| 0:HasProperty | Variable | Min | 0:BaseDataType | 0:PropertyType | O |
| 0:HasProperty | Variable | Max | 0:BaseDataType | 0:PropertyType | O |
| 0:HasDictionaryEntry | Object | Admin-shell.io/aas/2/0/Range | AASIriConceptDescriptionType | ||
Only simple data type of the OPC UA specification are allowed.
The components of the AASRangeType have additional references which are defined in Table 53.
| Source Path | Reference Type | Is Forward | Target Path |
| ValueType | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Range/valueType |
| Min | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Range/min |
| Max | 0:HasDictionaryEntry | True | Admin-shell.io/aas/2/0/Range/max |