aas_core3.types

Provide an implementation of the Asset Administration Shell (AAS) V3.0.

The presented version of the Metamodel is related to the work of aas-core-works, which can be found here: https://github.com/aas-core-works.

The presented content is neither related to the IDTA nor Plattform Industrie 4.0 and does not represent an official publication.

We diverge from the book in the following points.

We did not implement the following constraints as they are too general and can not be formalized as part of the core library, but affects external components such as AAS registry or AAS server:

We did not implement the following constraints since they depend on registry and de-referencing of Reference objects:

Some constraints are not enforceable as they depend on the wider context such as language understanding, so we could not formalize them:

  • Constraint AASd-012: This constraint requires that the texts inside Multi_language_property shall have the same meanings in the separate languages. This cannot be tested.

  • Constraint AASd-116: In the book, Constraint AASd-116 imposes a case-insensitive equality against globalAssetId. This is culturally-dependent, and depends on the system settings. For example, the case-folding for the letters “i” and “I” is different in Turkish from English.

    We implement the constraint as case-sensitive instead to allow for interoperability across different culture settings.

Furthermore, we diverge from the book in the following points regarding the enumerations. We have to implement subsets of enumerations as sets as common programming languages do not support inheritance of enumerations. The relationship between the properties and the sets is defined through invariants. This causes the following divergences:

  • We decided therefore to remove the enumeration DataTypeDefRDF and keep only DataTypeDefXSD as enumeration. Otherwise, we would have to write redundant invariants all over the meta-model because DataTypeDefRDF is actually never used in any type definition.

  • The enumeration AASSubmodelElements is used in two different contexts. One context is the definition of key types in a reference. Another context is the definition of element types in a SubmodelElementList.

    To avoid confusion, we introduce two separate enumerations for the separate contexts. Firstly, a set of KeyTypes, constants.AAS_SUBMODEL_ELEMENTS_AS_KEYS to represent the first context (key type in a reference). Secondly, the enumeration AASSubmodelElements is kept as designator for SubmodelElementList.type_value_list_element.

  • The specification introduces several types of Lang_string_set. These types differ between the allowed length of their text inside the singular Lang_string objects. Since the native representation of Lang_string_set as List of Lang_string is required by specification, it is impossible to introduce separate Lang_string_set types. Therefore, the distinction is drawn here between the Lang_string types.

    DefinitionTypeIEC61360 is represented as a List of LangStringDefinitionTypeIEC61360

    MultiLanguageNameType is represented as a List of LangStringNameType

    PreferredNameTypeIEC61360 is represented as a List of LangStringPreferredNameTypeIEC61360

    ShortNameTypeIEC61360 is represented as a List of LangStringShortNameTypeIEC61360

    MultiLanguageTextType is represented as a List of LangStringTextType

    Furthermore, since Lang_string is not used anywhere, we rename it to AbstractLangString.

Concerning the data specifications, we embed them within HasDataSpecification instead of referencing them via an external reference. The working group decided to change the rules for serialization after the book was published. The data specifications are critical in applications, but there is no possibility to access them through a data channel as they are not part of an environment.

class aas_core3.types.Class[source]

Represent the most general class of an AAS model.

abstract descend_once() Iterator[Class][source]

Iterate over all the instances referenced from this one.

abstract descend() Iterator[Class][source]

Iterate recursively over all the instances referenced from this one.

abstract accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

Parameters

visitor – to be dispatched

abstract accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance with context.

Parameters
  • visitor – to be dispatched

  • context – of the visitation

abstract transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

Parameters

transformer – to be dispatched

Returns

transformed self

abstract transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance with context.

Parameters

transformer – to be dispatched

Returns

transformed self

class aas_core3.types.HasSemantics(semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None)[source]

Element that can have a semantic definition plus some supplemental semantic definitions.

Constraint AASd-118

If there are ID supplemental_semantic_ids defined then there shall be also a main semantic ID semantic_id.

over_supplemental_semantic_ids_or_empty() Iterator[Reference][source]

Yield from supplemental_semantic_ids if set.

__init__(semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None) None[source]

Initialize with the given values.

semantic_id: Optional[Reference]

Identifier of the semantic definition of the element. It is called semantic ID of the element or also main semantic ID of the element.

Note

It is recommended to use a global reference.

supplemental_semantic_ids: Optional[List[Reference]]

Identifier of a supplemental semantic definition of the element. It is called supplemental semantic ID of the element.

Note

It is recommended to use a global reference.

class aas_core3.types.Extension(name: str, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, value_type: Optional[DataTypeDefXSD] = None, value: Optional[str] = None, refers_to: Optional[List[Reference]] = None)[source]

Single extension of an element.

over_refers_to_or_empty() Iterator[Reference][source]

Yield from refers_to if set.

value_type_or_default() DataTypeDefXSD[source]

Return the value_type if set, or the default otherwise.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(name: str, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, value_type: Optional[DataTypeDefXSD] = None, value: Optional[str] = None, refers_to: Optional[List[Reference]] = None) None[source]

Initialize with the given values.

name: str

Name of the extension.

Constraint AASd-077

The name of an extension (Extension/name) within HasExtensions needs to be unique.

value_type: Optional[DataTypeDefXSD]

Type of the value of the extension.

Default: DataTypeDefXSD.STRING

value: Optional[str]

Value of the extension

refers_to: Optional[List[Reference]]

Reference to an element the extension refers to.

class aas_core3.types.HasExtensions(extensions: Optional[List[Extension]] = None)[source]

Element that can be extended by proprietary extensions.

Note

Extensions are proprietary, i.e. they do not support global interoperability.

over_extensions_or_empty() Iterator[Extension][source]

Yield from extensions if set.

__init__(extensions: Optional[List[Extension]] = None) None[source]

Initialize with the given values.

extensions: Optional[List[Extension]]

An extension of the element.

class aas_core3.types.Referable(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None)[source]

An element that is referable by its id_short.

This ID is not globally unique. This ID is unique within the name space of the element.

Constraint AASd-022

id_short of non-identifiable referables within the same name space shall be unique (case-sensitive).

over_display_name_or_empty() Iterator[LangStringNameType][source]

Yield from display_name if set.

over_description_or_empty() Iterator[LangStringTextType][source]

Yield from description if set.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None) None[source]

Initialize with the given values.

id_short: Optional[str]

In case of identifiables this attribute is a short name of the element. In case of referable this ID is an identifying string of the element within its name space.

Note

In case the element is a property and the property has a semantic definition (HasSemantics.semantic_id) conformant to IEC61360 the id_short is typically identical to the short name in English.

display_name: Optional[List[LangStringNameType]]

Display name. Can be provided in several languages.

category: Optional[str]

The category is a value that gives further meta information w.r.t. to the class of the element. It affects the expected existence of attributes and the applicability of constraints.

Note

The category is not identical to the semantic definition (HasSemantics) of an element. The category e.g. could denote that the element is a measurement value whereas the semantic definition of the element would denote that it is the measured temperature.

description: Optional[List[LangStringTextType]]

Description or comments on the element.

The description can be provided in several languages.

If no description is defined, then the definition of the concept description that defines the semantics of the element is used.

Additional information can be provided, e.g., if the element is qualified and which qualifier types can be expected in which context or which additional data specification templates are provided.

class aas_core3.types.Identifiable(id: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None)[source]

An element that has a globally unique identifier.

__init__(id: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None) None[source]

Initialize with the given values.

id: str

The globally unique identification of the element.

administration: Optional[AdministrativeInformation]

Administrative information of an identifiable element.

Note

Some of the administrative information like the version number might need to be part of the identification.

class aas_core3.types.ModellingKind(value)[source]

Enumeration for denoting whether an element is a template or an instance.

TEMPLATE = 'Template'

Specification of the common features of a structured element in sufficient detail that such a instance can be instantiated using it

INSTANCE = 'Instance'

Concrete, clearly identifiable element instance. Its creation and validation may be guided by a corresponding element template.

class aas_core3.types.HasKind(kind: Optional[ModellingKind] = None)[source]

An element with a kind is an element that can either represent a template or an instance.

Default for an element is that it is representing an instance.

kind_or_default() ModellingKind[source]

Return kind if set, and the default otherwise.

__init__(kind: Optional[ModellingKind] = None) None[source]

Initialize with the given values.

kind: Optional[ModellingKind]

Kind of the element: either type or instance.

Default: ModellingKind.INSTANCE

class aas_core3.types.HasDataSpecification(embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None)[source]

Element that can be extended by using data specification templates.

A data specification template defines a named set of additional attributes an element may or shall have. The data specifications used are explicitly specified with their global ID.

over_embedded_data_specifications_or_empty() Iterator[EmbeddedDataSpecification][source]

Yield from embedded_data_specifications if set.

__init__(embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None) None[source]

Initialize with the given values.

embedded_data_specifications: Optional[List[EmbeddedDataSpecification]]

Embedded data specification.

class aas_core3.types.AdministrativeInformation(embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, version: Optional[str] = None, revision: Optional[str] = None, creator: Optional[Reference] = None, template_id: Optional[str] = None)[source]

Administrative meta-information for an element like version information.

Constraint AASd-005

If version is not specified then also revision shall be unspecified. This means, a revision requires a version. If there is no version there is no revision neither. Revision is optional.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, version: Optional[str] = None, revision: Optional[str] = None, creator: Optional[Reference] = None, template_id: Optional[str] = None) None[source]

Initialize with the given values.

version: Optional[str]

Version of the element.

revision: Optional[str]

Revision of the element.

creator: Optional[Reference]

The subject ID of the subject responsible for making the element.

template_id: Optional[str]

Identifier of the template that guided the creation of the element.

Note

In case of a submodel the template_id is the identifier of the submodel template ID that guided the creation of the submodel

Note

The template_id is not relevant for validation in Submodels. For validation the Submodel.semantic_id shall be used.

Note

Usage of template_id is not restricted to submodel instances. So also the creation of submodel templates can be guided by another submodel template.

class aas_core3.types.Qualifiable(qualifiers: Optional[List[Qualifier]] = None)[source]

The value of a qualifiable element may be further qualified by one or more qualifiers.

Constraint AASd-119

If any Qualifier.kind value of qualifiers is equal to QualifierKind.TEMPLATE_QUALIFIER and the qualified element inherits from HasKind then the qualified element shall be of kind Template (HasKind.kind = ModellingKind.TEMPLATE).

Note

This constraint is checked at Submodel.

over_qualifiers_or_empty() Iterator[Qualifier][source]

Yield from qualifiers if set.

__init__(qualifiers: Optional[List[Qualifier]] = None) None[source]

Initialize with the given values.

qualifiers: Optional[List[Qualifier]]

Additional qualification of a qualifiable element.

Constraint AASd-021

Every qualifiable can only have one qualifier with the same Qualifier.type.

class aas_core3.types.QualifierKind(value)[source]

Enumeration for kinds of qualifiers.

Note

This element is experimental and therefore may be subject to change or may be removed completely in future versions of the meta-model.

VALUE_QUALIFIER = 'ValueQualifier'

qualifies the value of the element and can change during run-time.

Value qualifiers are only applicable to elements with kind ModellingKind.INSTANCE.

CONCEPT_QUALIFIER = 'ConceptQualifier'

qualifies the semantic definition the element is referring to (HasSemantics.semantic_id)

TEMPLATE_QUALIFIER = 'TemplateQualifier'

qualifies the elements within a specific submodel on concept level.

Template qualifiers are only applicable to elements with kind ModellingKind.TEMPLATE.

class aas_core3.types.Qualifier(type: str, value_type: DataTypeDefXSD, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, kind: Optional[QualifierKind] = None, value: Optional[str] = None, value_id: Optional[Reference] = None)[source]

A qualifier is a type-value-pair that makes additional statements w.r.t. the value of the element.

Constraint AASd-006

If both the value and the value_id of a Qualifier are present then the value needs to be identical to the value of the referenced coded value in value_id.

Constraint AASd-020

The value of value shall be consistent to the data type as defined in value_type.

kind_or_default() QualifierKind[source]

Return kind if set, and the default otherwise.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(type: str, value_type: DataTypeDefXSD, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, kind: Optional[QualifierKind] = None, value: Optional[str] = None, value_id: Optional[Reference] = None) None[source]

Initialize with the given values.

type: str

The qualifier type describes the type of the qualifier that is applied to the element.

value_type: DataTypeDefXSD

Data type of the qualifier value.

kind: Optional[QualifierKind]

The qualifier kind describes the kind of the qualifier that is applied to the element.

Default: QualifierKind.CONCEPT_QUALIFIER

value: Optional[str]

The qualifier value is the value of the qualifier.

value_id: Optional[Reference]

Reference to the global unique ID of a coded value.

Note

It is recommended to use a global reference.

class aas_core3.types.AssetAdministrationShell(id: str, asset_information: AssetInformation, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, derived_from: Optional[Reference] = None, submodels: Optional[List[Reference]] = None)[source]

An asset administration shell.

over_submodels_or_empty() Iterator[Reference][source]

Yield from submodels if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(id: str, asset_information: AssetInformation, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, derived_from: Optional[Reference] = None, submodels: Optional[List[Reference]] = None) None[source]

Initialize with the given values.

derived_from: Optional[Reference]

The reference to the AAS the AAS was derived from.

asset_information: AssetInformation

Meta-information about the asset the AAS is representing.

submodels: Optional[List[Reference]]

References to submodels of the AAS.

A submodel is a description of an aspect of the asset the AAS is representing.

The asset of an AAS is typically described by one or more submodels.

Temporarily no submodel might be assigned to the AAS.

class aas_core3.types.AssetInformation(asset_kind: AssetKind, global_asset_id: Optional[str] = None, specific_asset_ids: Optional[List[SpecificAssetID]] = None, asset_type: Optional[str] = None, default_thumbnail: Optional[Resource] = None)[source]

In AssetInformation identifying meta data of the asset that is represented by an AAS is defined.

The asset may either represent an asset type or an asset instance.

The asset has a globally unique identifier plus – if needed – additional domain specific (proprietary) identifiers. However, to support the corner case of very first phase of lifecycle where a stabilised/constant_set global asset identifier does not already exist, the corresponding attribute global_asset_id is optional.

Constraint AASd-116

globalAssetId is a reserved key. If used as value for SpecificAssetID.name then SpecificAssetID.value shall be identical to global_asset_id.

Note

Constraint AASd-116 is important to enable a generic search across global and specific asset IDs.

Note

In the book, Constraint AASd-116 imposes a case-insensitive equality against globalAssetId. This is culturally-dependent, and depends on the system settings. For example, the case-folding for the letters “i” and “I” is different in Turkish from English.

We implement the constraint as case-sensitive instead to allow for interoperability across different culture settings.

Constraint AASd-131

For AssetInformation either the global_asset_id shall be defined or at least one item in specific_asset_ids.

over_specific_asset_ids_or_empty() Iterator[SpecificAssetID][source]

Yield from specific_asset_ids if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(asset_kind: AssetKind, global_asset_id: Optional[str] = None, specific_asset_ids: Optional[List[SpecificAssetID]] = None, asset_type: Optional[str] = None, default_thumbnail: Optional[Resource] = None) None[source]

Initialize with the given values.

asset_kind: AssetKind

Denotes whether the Asset is of kind AssetKind.TYPE or AssetKind.INSTANCE.

global_asset_id: Optional[str]

Global identifier of the asset the AAS is representing.

This attribute is required as soon as the AAS is exchanged via partners in the life cycle of the asset. In a first phase of the life cycle the asset might not yet have a global ID but already an internal identifier. The internal identifier would be modelled via specific_asset_ids.

Note

This is a global reference.

specific_asset_ids: Optional[List[SpecificAssetID]]

Additional domain-specific, typically proprietary identifier for the asset like e.g., serial number etc.

asset_type: Optional[str]

In case asset_kind is applicable the asset_type is the asset ID of the type asset of the asset under consideration as identified by global_asset_id.

Note

In case asset_kind is “Instance” than the asset_type denotes which “Type” the asset is of. But it is also possible to have an asset_type of an asset of kind “Type”.

default_thumbnail: Optional[Resource]

Thumbnail of the asset represented by the Asset Administration Shell.

Used as default.

class aas_core3.types.Resource(path: str, content_type: Optional[str] = None)[source]

Resource represents an address to a file (a locator). The value is an URI that can represent an absolute or relative path

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(path: str, content_type: Optional[str] = None) None[source]

Initialize with the given values.

path: str

Path and name of the resource (with file extension).

The path can be absolute or relative.

content_type: Optional[str]

Content type of the content of the file.

The content type states which file extensions the file can have.

class aas_core3.types.AssetKind(value)[source]

Enumeration for denoting whether an asset is a type asset or an instance asset.

TYPE = 'Type'

Type asset

INSTANCE = 'Instance'

Instance asset

NOT_APPLICABLE = 'NotApplicable'

Neither a type asset nor an instance asset

class aas_core3.types.SpecificAssetID(name: str, value: str, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, external_subject_id: Optional[Reference] = None)[source]

A specific asset ID describes a generic supplementary identifying attribute of the asset.

The specific asset ID is not necessarily globally unique.

Constraint AASd-133

external_subject_id shall be an external reference, i.e. Reference.type = ReferenceTypes.EXTERNAL_REFERENCE.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(name: str, value: str, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, external_subject_id: Optional[Reference] = None) None[source]

Initialize with the given values.

name: str

Name of the identifier

value: str

The value of the specific asset identifier with the corresponding name.

external_subject_id: Optional[Reference]

The (external) subject the key belongs to or has meaning to.

Note

This is a global reference.

class aas_core3.types.Submodel(id: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None, kind: Optional[ModellingKind] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, submodel_elements: Optional[List[SubmodelElement]] = None)[source]

A submodel defines a specific aspect of the asset represented by the AAS.

A submodel is used to structure the digital representation and technical functionality of an Administration Shell into distinguishable parts. Each submodel refers to a well-defined domain or subject matter. Submodels can become standardized and, thus, become submodels templates.

over_submodel_elements_or_empty() Iterator[SubmodelElement][source]

Yield from submodel_elements if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(id: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None, kind: Optional[ModellingKind] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, submodel_elements: Optional[List[SubmodelElement]] = None) None[source]

Initialize with the given values.

submodel_elements: Optional[List[SubmodelElement]]

A submodel consists of zero or more submodel elements.

class aas_core3.types.SubmodelElement(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None)[source]

A submodel element is an element suitable for the description and differentiation of assets.

It is recommended to add a HasSemantics.semantic_id to a submodel element.

Constraint AASd-129

If any Qualifier.kind value of qualifiers (attribute qualifier inherited via Qualifiable) is equal to QualifierKind.TEMPLATE_QUALIFIER then the submodel element shall be part of a submodel template, i.e. a Submodel with Submodel.kind (attribute kind inherited via HasKind) value is equal to ModellingKind.TEMPLATE.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None) None[source]

Initialize with the given values.

category: Optional[str]

The category is a value that gives further meta information w.r.t. to the class of the element. It affects the expected existence of attributes and the applicability of constraints.

Note

The category is not identical to the semantic definition (HasSemantics) of an element. The category e.g. could denote that the element is a measurement value whereas the semantic definition of the element would denote that it is the measured temperature.

id_short: Optional[str]

In case of identifiables this attribute is a short name of the element. In case of referable this ID is an identifying string of the element within its name space.

Note

In case the element is a property and the property has a semantic definition (HasSemantics.semantic_id) conformant to IEC61360 the id_short is typically identical to the short name in English.

display_name: Optional[List[LangStringNameType]]

Display name. Can be provided in several languages.

description: Optional[List[LangStringTextType]]

Description or comments on the element.

The description can be provided in several languages.

If no description is defined, then the definition of the concept description that defines the semantics of the element is used.

Additional information can be provided, e.g., if the element is qualified and which qualifier types can be expected in which context or which additional data specification templates are provided.

extensions: Optional[List[Extension]]

An extension of the element.

class aas_core3.types.RelationshipElement(first: Reference, second: Reference, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None)[source]

A relationship element is used to define a relationship between two elements being either referable (model reference) or external (global reference).

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(first: Reference, second: Reference, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None) None[source]

Initialize with the given values.

first: Reference

Reference to the first element in the relationship taking the role of the subject.

second: Reference

Reference to the second element in the relationship taking the role of the object.

class aas_core3.types.AASSubmodelElements(value)[source]

Enumeration of all possible elements of a SubmodelElementList.

ANNOTATED_RELATIONSHIP_ELEMENT = 'AnnotatedRelationshipElement'
BASIC_EVENT_ELEMENT = 'BasicEventElement'
BLOB = 'Blob'
CAPABILITY = 'Capability'
DATA_ELEMENT = 'DataElement'
ENTITY = 'Entity'
EVENT_ELEMENT = 'EventElement'
FILE = 'File'
MULTI_LANGUAGE_PROPERTY = 'MultiLanguageProperty'
OPERATION = 'Operation'
PROPERTY = 'Property'
RANGE = 'Range'
REFERENCE_ELEMENT = 'ReferenceElement'
RELATIONSHIP_ELEMENT = 'RelationshipElement'
SUBMODEL_ELEMENT = 'SubmodelElement'
SUBMODEL_ELEMENT_LIST = 'SubmodelElementList'
SUBMODEL_ELEMENT_COLLECTION = 'SubmodelElementCollection'
class aas_core3.types.SubmodelElementList(type_value_list_element: AASSubmodelElements, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, order_relevant: Optional[bool] = None, semantic_id_list_element: Optional[Reference] = None, value_type_list_element: Optional[DataTypeDefXSD] = None, value: Optional[List[SubmodelElement]] = None)[source]

A submodel element list is an ordered list of submodel elements.

The numbering starts with zero (0).

Constraint AASd-107

If a first level child element in a SubmodelElementList has a HasSemantics.semantic_id it shall be identical to semantic_id_list_element.

Constraint AASd-114

If two first level child elements in a SubmodelElementList have a HasSemantics.semantic_id then they shall be identical.

Constraint AASd-115

If a first level child element in a SubmodelElementList does not specify a HasSemantics.semantic_id then the value is assumed to be identical to semantic_id_list_element.

Constraint AASd-120

The id_short of a SubmodelElement being a direct child of a SubmodelElementList shall not be specified.

Constraint AASd-108

All first level child elements in a SubmodelElementList shall have the same submodel element type as specified in type_value_list_element.

Constraint AASd-109

If type_value_list_element is equal to AASSubmodelElements.PROPERTY or AASSubmodelElements.RANGE value_type_list_element shall be set and all first level child elements in the SubmodelElementList shall have the value type as specified in value_type_list_element.

over_value_or_empty() Iterator[SubmodelElement][source]

Yield from value if set.

order_relevant_or_default() bool[source]

Return order_relevant if set, and the default otherwise.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(type_value_list_element: AASSubmodelElements, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, order_relevant: Optional[bool] = None, semantic_id_list_element: Optional[Reference] = None, value_type_list_element: Optional[DataTypeDefXSD] = None, value: Optional[List[SubmodelElement]] = None) None[source]

Initialize with the given values.

type_value_list_element: AASSubmodelElements

The submodel element type of the submodel elements contained in the list.

order_relevant: Optional[bool]

Defines whether order in list is relevant. If order_relevant = False then the list is representing a set or a bag.

Default: True

semantic_id_list_element: Optional[Reference]

Semantic ID the submodel elements contained in the list match to.

Note

It is recommended to use a global reference.

value_type_list_element: Optional[DataTypeDefXSD]

The value type of the submodel element contained in the list.

value: Optional[List[SubmodelElement]]

Submodel element contained in the list.

The list is ordered.

class aas_core3.types.SubmodelElementCollection(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[List[SubmodelElement]] = None)[source]

A submodel element collection is a kind of struct, i.e. a a logical encapsulation of multiple named values. It has a fixed number of submodel elements.

over_value_or_empty() Iterator[SubmodelElement][source]

Yield from value if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[List[SubmodelElement]] = None) None[source]

Initialize with the given values.

value: Optional[List[SubmodelElement]]

Submodel element contained in the collection.

class aas_core3.types.DataElement(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None)[source]

A data element is a submodel element that is not further composed out of other submodel elements.

A data element is a submodel element that has a value. The type of value differs for different subtypes of data elements.

Constraint AASd-090

For data elements category shall be one of the following values: CONSTANT, PARAMETER or VARIABLE.

Default: VARIABLE

category_or_default() str[source]

Return the category if set or the default value otherwise.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None) None[source]

Initialize with the given values.

category: Optional[str]

The category is a value that gives further meta information w.r.t. to the class of the element. It affects the expected existence of attributes and the applicability of constraints.

Note

The category is not identical to the semantic definition (HasSemantics) of an element. The category e.g. could denote that the element is a measurement value whereas the semantic definition of the element would denote that it is the measured temperature.

id_short: Optional[str]

In case of identifiables this attribute is a short name of the element. In case of referable this ID is an identifying string of the element within its name space.

Note

In case the element is a property and the property has a semantic definition (HasSemantics.semantic_id) conformant to IEC61360 the id_short is typically identical to the short name in English.

display_name: Optional[List[LangStringNameType]]

Display name. Can be provided in several languages.

description: Optional[List[LangStringTextType]]

Description or comments on the element.

The description can be provided in several languages.

If no description is defined, then the definition of the concept description that defines the semantics of the element is used.

Additional information can be provided, e.g., if the element is qualified and which qualifier types can be expected in which context or which additional data specification templates are provided.

extensions: Optional[List[Extension]]

An extension of the element.

semantic_id: Optional[Reference]

Identifier of the semantic definition of the element. It is called semantic ID of the element or also main semantic ID of the element.

Note

It is recommended to use a global reference.

supplemental_semantic_ids: Optional[List[Reference]]

Identifier of a supplemental semantic definition of the element. It is called supplemental semantic ID of the element.

Note

It is recommended to use a global reference.

qualifiers: Optional[List[Qualifier]]

Additional qualification of a qualifiable element.

Constraint AASd-021

Every qualifiable can only have one qualifier with the same Qualifier.type.

embedded_data_specifications: Optional[List[EmbeddedDataSpecification]]

Embedded data specification.

class aas_core3.types.Property(value_type: DataTypeDefXSD, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[str] = None, value_id: Optional[Reference] = None)[source]

A property is a data element that has a single value.

Constraint AASd-007

If both, the value and the value_id are present then the value of value needs to be identical to the value of the referenced coded value in value_id.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(value_type: DataTypeDefXSD, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[str] = None, value_id: Optional[Reference] = None) None[source]

Initialize with the given values.

value_type: DataTypeDefXSD

Data type of the value

value: Optional[str]

The value of the property instance.

value_id: Optional[Reference]

Reference to the global unique ID of a coded value.

Note

It is recommended to use a global reference.

class aas_core3.types.MultiLanguageProperty(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[List[LangStringTextType]] = None, value_id: Optional[Reference] = None)[source]

A property is a data element that has a multi-language value.

Constraint AASd-012

If both the value and the value_id are present then for each string in a specific language the meaning must be the same as specified in value_id.

over_value_or_empty() Iterator[LangStringTextType][source]

Yield from value if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[List[LangStringTextType]] = None, value_id: Optional[Reference] = None) None[source]

Initialize with the given values.

value: Optional[List[LangStringTextType]]

The value of the property instance.

value_id: Optional[Reference]

Reference to the global unique ID of a coded value.

Note

It is recommended to use a global reference.

class aas_core3.types.Range(value_type: DataTypeDefXSD, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, min: Optional[str] = None, max: Optional[str] = None)[source]

A range data element is a data element that defines a range with min and max.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(value_type: DataTypeDefXSD, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, min: Optional[str] = None, max: Optional[str] = None) None[source]

Initialize with the given values.

value_type: DataTypeDefXSD

Data type of the min und max

min: Optional[str]

The minimum value of the range.

If the min value is missing, then the value is assumed to be negative infinite.

max: Optional[str]

The maximum value of the range.

If the max value is missing, then the value is assumed to be positive infinite.

class aas_core3.types.ReferenceElement(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[Reference] = None)[source]

A reference element is a data element that defines a logical reference to another element within the same or another AAS or a reference to an external object or entity.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[Reference] = None) None[source]

Initialize with the given values.

value: Optional[Reference]

Global reference to an external object or entity or a logical reference to another element within the same or another AAS (i.e. a model reference to a Referable).

class aas_core3.types.Blob(content_type: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[bytes] = None)[source]

A Blob is a data element that represents a file that is contained with its source code in the value attribute.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(content_type: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[bytes] = None) None[source]

Initialize with the given values.

content_type: str

Content type of the content of the Blob.

The content type (MIME type) states which file extensions the file can have.

Valid values are content types like e.g. application/json, application/xls, image/jpg.

The allowed values are defined as in RFC2046.

value: Optional[bytes]

The value of the Blob instance of a blob data element.

Note

In contrast to the file property the file content is stored directly as value in the Blob data element.

class aas_core3.types.File(content_type: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[str] = None)[source]

A File is a data element that represents an address to a file (a locator).

The value is an URI that can represent an absolute or relative path.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(content_type: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, value: Optional[str] = None) None[source]

Initialize with the given values.

content_type: str

Content type of the content of the file.

The content type states which file extensions the file can have.

value: Optional[str]

Path and name of the referenced file (with file extension).

The path can be absolute or relative.

class aas_core3.types.AnnotatedRelationshipElement(first: Reference, second: Reference, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, annotations: Optional[List[DataElement]] = None)[source]

An annotated relationship element is a relationship element that can be annotated with additional data elements.

over_annotations_or_empty() Iterator[DataElement][source]

Yield from annotations if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(first: Reference, second: Reference, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, annotations: Optional[List[DataElement]] = None) None[source]

Initialize with the given values.

annotations: Optional[List[DataElement]]

A data element that represents an annotation that holds for the relationship between the two elements

class aas_core3.types.Entity(entity_type: EntityType, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, statements: Optional[List[SubmodelElement]] = None, global_asset_id: Optional[str] = None, specific_asset_ids: Optional[List[SpecificAssetID]] = None)[source]

An entity is a submodel element that is used to model entities.

Constraint AASd-014

Either the attribute global_asset_id or specific_asset_ids of an Entity must be set if entity_type is set to EntityType.SELF_MANAGED_ENTITY. They are not existing otherwise.

over_statements_or_empty() Iterator[SubmodelElement][source]

Yield from statements if set.

over_specific_asset_ids_or_empty() Iterator[SpecificAssetID][source]

Yield from specific_asset_ids if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(entity_type: EntityType, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, statements: Optional[List[SubmodelElement]] = None, global_asset_id: Optional[str] = None, specific_asset_ids: Optional[List[SpecificAssetID]] = None) None[source]

Initialize with the given values.

statements: Optional[List[SubmodelElement]]

Describes statements applicable to the entity by a set of submodel elements, typically with a qualified value.

entity_type: EntityType

Describes whether the entity is a co-managed entity or a self-managed entity.

global_asset_id: Optional[str]

Global identifier of the asset the entity is representing.

Note

This is a global reference.

specific_asset_ids: Optional[List[SpecificAssetID]]

Reference to a specific asset ID representing a supplementary identifier of the asset represented by the Asset Administration Shell.

class aas_core3.types.EntityType(value)[source]

Enumeration for denoting whether an entity is a self-managed entity or a co-managed entity.

CO_MANAGED_ENTITY = 'CoManagedEntity'

For co-managed entities there is no separate AAS. Co-managed entities need to be part of a self-managed entity.

SELF_MANAGED_ENTITY = 'SelfManagedEntity'

Self-Managed Entities have their own AAS but can be part of the bill of material of a composite self-managed entity.

The asset of an I4.0 Component is a self-managed entity per definition.

class aas_core3.types.Direction(value)[source]

Note

This element is experimental and therefore may be subject to change or may be removed completely in future versions of the meta-model.

INPUT = 'input'

Input direction.

OUTPUT = 'output'

Output direction

class aas_core3.types.StateOfEvent(value)[source]

State of an event

Note

This element is experimental and therefore may be subject to change or may be removed completely in future versions of the meta-model.

ON = 'on'

Event is on

OFF = 'off'

Event is off.

class aas_core3.types.EventPayload(source: Reference, observable_reference: Reference, time_stamp: str, source_semantic_id: Optional[Reference] = None, observable_semantic_id: Optional[Reference] = None, topic: Optional[str] = None, subject_id: Optional[Reference] = None, payload: Optional[bytes] = None)[source]

Defines the necessary information of an event instance sent out or received.

Note

This element is experimental and therefore may be subject to change or may be removed completely in future versions of the meta-model.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(source: Reference, observable_reference: Reference, time_stamp: str, source_semantic_id: Optional[Reference] = None, observable_semantic_id: Optional[Reference] = None, topic: Optional[str] = None, subject_id: Optional[Reference] = None, payload: Optional[bytes] = None) None[source]

Initialize with the given values.

source: Reference

Reference to the source event element, including identification of AssetAdministrationShell, Submodel, SubmodelElement’s.

observable_reference: Reference

Reference to the referable, which defines the scope of the event.

Can be AssetAdministrationShell, Submodel or SubmodelElement.

time_stamp: str

Timestamp in UTC, when this event was triggered.

source_semantic_id: Optional[Reference]

HasSemantics.semantic_id of the source event element, if available

Note

It is recommended to use a global reference.

observable_semantic_id: Optional[Reference]

HasSemantics.semantic_id of the referable which defines the scope of the event, if available.

Note

It is recommended to use a global reference.

topic: Optional[str]

Information for the outer message infrastructure for scheduling the event to the respective communication channel.

subject_id: Optional[Reference]

Subject, who/which initiated the creation.

Note

This is an external reference.

payload: Optional[bytes]

Event specific payload.

class aas_core3.types.EventElement(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None)[source]

An event element.

Note

This element is experimental and therefore may be subject to change or may be removed completely in future versions of the meta-model.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None) None[source]

Initialize with the given values.

category: Optional[str]

The category is a value that gives further meta information w.r.t. to the class of the element. It affects the expected existence of attributes and the applicability of constraints.

Note

The category is not identical to the semantic definition (HasSemantics) of an element. The category e.g. could denote that the element is a measurement value whereas the semantic definition of the element would denote that it is the measured temperature.

id_short: Optional[str]

In case of identifiables this attribute is a short name of the element. In case of referable this ID is an identifying string of the element within its name space.

Note

In case the element is a property and the property has a semantic definition (HasSemantics.semantic_id) conformant to IEC61360 the id_short is typically identical to the short name in English.

display_name: Optional[List[LangStringNameType]]

Display name. Can be provided in several languages.

description: Optional[List[LangStringTextType]]

Description or comments on the element.

The description can be provided in several languages.

If no description is defined, then the definition of the concept description that defines the semantics of the element is used.

Additional information can be provided, e.g., if the element is qualified and which qualifier types can be expected in which context or which additional data specification templates are provided.

extensions: Optional[List[Extension]]

An extension of the element.

semantic_id: Optional[Reference]

Identifier of the semantic definition of the element. It is called semantic ID of the element or also main semantic ID of the element.

Note

It is recommended to use a global reference.

supplemental_semantic_ids: Optional[List[Reference]]

Identifier of a supplemental semantic definition of the element. It is called supplemental semantic ID of the element.

Note

It is recommended to use a global reference.

qualifiers: Optional[List[Qualifier]]

Additional qualification of a qualifiable element.

Constraint AASd-021

Every qualifiable can only have one qualifier with the same Qualifier.type.

embedded_data_specifications: Optional[List[EmbeddedDataSpecification]]

Embedded data specification.

class aas_core3.types.BasicEventElement(observed: Reference, direction: Direction, state: StateOfEvent, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, message_topic: Optional[str] = None, message_broker: Optional[Reference] = None, last_update: Optional[str] = None, min_interval: Optional[str] = None, max_interval: Optional[str] = None)[source]

A basic event element.

Note

This element is experimental and therefore may be subject to change or may be removed completely in future versions of the meta-model.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(observed: Reference, direction: Direction, state: StateOfEvent, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, message_topic: Optional[str] = None, message_broker: Optional[Reference] = None, last_update: Optional[str] = None, min_interval: Optional[str] = None, max_interval: Optional[str] = None) None[source]

Initialize with the given values.

observed: Reference

Reference to the Referable, which defines the scope of the event. Can be AssetAdministrationShell, Submodel, or SubmodelElement.

Reference to a referable, e.g., a data element or a submodel, that is being observed.

direction: Direction

Direction of event.

Can be { Input, Output }.

state: StateOfEvent

State of event.

Can be { On, Off }.

message_topic: Optional[str]

Information for the outer message infrastructure for scheduling the event to the respective communication channel.

message_broker: Optional[Reference]

Information, which outer message infrastructure shall handle messages for the EventElement. Refers to a Submodel, SubmodelElementList, SubmodelElementCollection or Entity, which contains DataElement’s describing the proprietary specification for the message broker.

Note

For different message infrastructure, e.g., OPC UA or MQTT or AMQP, this proprietary specification could be standardized by having respective Submodels.

last_update: Optional[str]

Timestamp in UTC, when the last event was received (input direction) or sent (output direction).

min_interval: Optional[str]

For input direction, reports on the maximum frequency, the software entity behind the respective Referable can handle input events.

For output events, specifies the maximum frequency of outputting this event to an outer infrastructure.

Might be not specified, that is, there is no minimum interval.

max_interval: Optional[str]

For input direction: not applicable.

For output direction: maximum interval in time, the respective Referable shall send an update of the status of the event, even if no other trigger condition for the event was not met.

Might be not specified, that is, there is no maximum interval

class aas_core3.types.Operation(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, input_variables: Optional[List[OperationVariable]] = None, output_variables: Optional[List[OperationVariable]] = None, inoutput_variables: Optional[List[OperationVariable]] = None)[source]

An operation is a submodel element with input and output variables.

Constraint AASd-134

For an Operation the Referable.id_short of all OperationVariable.value’s in input_variables, output_variables and inoutput_variables shall be unique.

over_input_variables_or_empty() Iterator[OperationVariable][source]

Yield from input_variables if set.

over_output_variables_or_empty() Iterator[OperationVariable][source]

Yield from output_variables if set.

over_inoutput_variables_or_empty() Iterator[OperationVariable][source]

Yield from inoutput_variables if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, input_variables: Optional[List[OperationVariable]] = None, output_variables: Optional[List[OperationVariable]] = None, inoutput_variables: Optional[List[OperationVariable]] = None) None[source]

Initialize with the given values.

input_variables: Optional[List[OperationVariable]]

Input parameter of the operation.

output_variables: Optional[List[OperationVariable]]

Output parameter of the operation.

inoutput_variables: Optional[List[OperationVariable]]

Parameter that is input and output of the operation.

class aas_core3.types.OperationVariable(value: SubmodelElement)[source]

The value of an operation variable is a submodel element that is used as input and/or output variable of an operation.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(value: SubmodelElement) None[source]

Initialize with the given values.

value: SubmodelElement

Describes an argument or result of an operation via a submodel element

class aas_core3.types.Capability(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None)[source]

A capability is the implementation-independent description of the potential of an asset to achieve a certain effect in the physical or virtual world.

Note

The semantic_id of a capability is typically an ontology. Thus, reasoning on capabilities is enabled.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, semantic_id: Optional[Reference] = None, supplemental_semantic_ids: Optional[List[Reference]] = None, qualifiers: Optional[List[Qualifier]] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None) None[source]

Initialize with the given values.

category: Optional[str]

The category is a value that gives further meta information w.r.t. to the class of the element. It affects the expected existence of attributes and the applicability of constraints.

Note

The category is not identical to the semantic definition (HasSemantics) of an element. The category e.g. could denote that the element is a measurement value whereas the semantic definition of the element would denote that it is the measured temperature.

id_short: Optional[str]

In case of identifiables this attribute is a short name of the element. In case of referable this ID is an identifying string of the element within its name space.

Note

In case the element is a property and the property has a semantic definition (HasSemantics.semantic_id) conformant to IEC61360 the id_short is typically identical to the short name in English.

display_name: Optional[List[LangStringNameType]]

Display name. Can be provided in several languages.

description: Optional[List[LangStringTextType]]

Description or comments on the element.

The description can be provided in several languages.

If no description is defined, then the definition of the concept description that defines the semantics of the element is used.

Additional information can be provided, e.g., if the element is qualified and which qualifier types can be expected in which context or which additional data specification templates are provided.

extensions: Optional[List[Extension]]

An extension of the element.

semantic_id: Optional[Reference]

Identifier of the semantic definition of the element. It is called semantic ID of the element or also main semantic ID of the element.

Note

It is recommended to use a global reference.

supplemental_semantic_ids: Optional[List[Reference]]

Identifier of a supplemental semantic definition of the element. It is called supplemental semantic ID of the element.

Note

It is recommended to use a global reference.

qualifiers: Optional[List[Qualifier]]

Additional qualification of a qualifiable element.

Constraint AASd-021

Every qualifiable can only have one qualifier with the same Qualifier.type.

embedded_data_specifications: Optional[List[EmbeddedDataSpecification]]

Embedded data specification.

class aas_core3.types.ConceptDescription(id: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, is_case_of: Optional[List[Reference]] = None)[source]

The semantics of a property or other elements that may have a semantic description is defined by a concept description.

The description of the concept should follow a standardized schema (realized as data specification template).

Constraint AASc-3a-004

For a ConceptDescription with category PROPERTY or VALUE using data specification IEC61360, the DataSpecificationIEC61360.data_type is mandatory and shall be one of: DATE, STRING, STRING_TRANSLATABLE, INTEGER_MEASURE, INTEGER_COUNT, INTEGER_CURRENCY, REAL_MEASURE, REAL_COUNT, REAL_CURRENCY, BOOLEAN, RATIONAL, RATIONAL_MEASURE, TIME, TIMESTAMP.

Note

Note: categories are deprecated since V3.0 of Part 1a of the document series “Details of the Asset Administration Shell”.

Constraint AASc-3a-005

For a ConceptDescription with category REFERENCE using data specification template IEC61360, the DataSpecificationIEC61360.data_type shall be one of: STRING, IRI, IRDI.

Note

Note: categories are deprecated since V3.0 of Part 1a of the document series “Details of the Asset Administration Shell”.

Constraint AASc-3a-006

For a ConceptDescription with category DOCUMENT using data specification IEC61360, the DataSpecificationIEC61360.data_type shall be one of FILE, BLOB, HTML

Note

Categories are deprecated since V3.0 of Part 1a of the document series “Details of the Asset Administration Shell”.

Constraint AASc-3a-007

For a ConceptDescription with category QUALIFIER_TYPE using data specification IEC61360, the DataSpecificationIEC61360.data_type is mandatory and shall be defined.

Note

Categories are deprecated since V3.0 of Part 1a of the document series “Details of the Asset Administration Shell”.

Constraint AASc-3a-008

For a ConceptDescription using data specification template IEC61360, DataSpecificationIEC61360.definition is mandatory and shall be defined at least in English.

Exception: The concept description describes a value, i.e. DataSpecificationIEC61360.value is defined.

Constraint AASc-3a-003

For a ConceptDescription using data specification template IEC61360, referenced via DataSpecificationIEC61360.value_list ValueReferencePair.value_id the DataSpecificationIEC61360.value shall be set.

over_is_case_of_or_empty() Iterator[Reference][source]

Yield from is_case_of if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(id: str, extensions: Optional[List[Extension]] = None, category: Optional[str] = None, id_short: Optional[str] = None, display_name: Optional[List[LangStringNameType]] = None, description: Optional[List[LangStringTextType]] = None, administration: Optional[AdministrativeInformation] = None, embedded_data_specifications: Optional[List[EmbeddedDataSpecification]] = None, is_case_of: Optional[List[Reference]] = None) None[source]

Initialize with the given values.

is_case_of: Optional[List[Reference]]

Reference to an external definition the concept is compatible to or was derived from.

Note

It is recommended to use a global reference.

Note

Compare to is-case-of relationship in ISO 13584-32 & IEC EN 61360

class aas_core3.types.ReferenceTypes(value)[source]

Reference types

EXTERNAL_REFERENCE = 'ExternalReference'

External reference.

MODEL_REFERENCE = 'ModelReference'

Model reference.

class aas_core3.types.Reference(type: ReferenceTypes, keys: List[Key], referred_semantic_id: Optional[Reference] = None)[source]

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.

An external reference is a reference to an external entity.

Constraint AASd-121

For Reference’s the value of Key.type of the first key of ” keys shall be one of constants.GLOBALLY_IDENTIFIABLES.

Constraint AASd-122

For external references, i.e. Reference’s with type = ReferenceTypes.EXTERNAL_REFERENCE, the value of Key.type of the first key of keys shall be one of constants.GENERIC_GLOBALLY_IDENTIFIABLES.

Constraint AASd-123

For model references, i.e. Reference’s with type = ReferenceTypes.MODEL_REFERENCE, the value of Key.type of the first key of keys shall be one of constants.AAS_IDENTIFIABLES.

Constraint AASd-124

For external references, i.e. Reference’s with type = ReferenceTypes.EXTERNAL_REFERENCE, the last key of keys shall be either one of constants.GENERIC_GLOBALLY_IDENTIFIABLES or one of constants.GENERIC_FRAGMENT_KEYS.

Constraint AASd-125

For model references, i.e. Reference’s with type = ReferenceTypes.MODEL_REFERENCE, with more than one key in keys the value of Key.type of each of the keys following the first key of keys shall be one of constants.FRAGMENT_KEYS.

Note

Constraint AASd-125 ensures that the shortest path is used.

Constraint AASd-126

For model references, i.e. Reference’s with type = ReferenceTypes.MODEL_REFERENCE, with more than one key in keys the value of Key.type of the last key in the reference key chain may be one of constants.GENERIC_FRAGMENT_KEYS or no key at all shall have a value out of constants.GENERIC_FRAGMENT_KEYS.

Constraint AASd-127

For model references, i.e. Reference’s with type = ReferenceTypes.MODEL_REFERENCE, with more than one key in keys a key with Key.type KeyTypes.FRAGMENT_REFERENCE shall be preceded by a key with Key.type KeyTypes.FILE or KeyTypes.BLOB. All other AAS fragments, i.e. Key.type values out of constants.AAS_SUBMODEL_ELEMENTS_AS_KEYS, do not support fragments.

Note

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 type = ReferenceTypes.MODEL_REFERENCE, the Key.value of a Key preceded by a Key with Key.type = KeyTypes.SUBMODEL_ELEMENT_LIST is an integer number denoting the position in the array of the submodel element list.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(type: ReferenceTypes, keys: List[Key], referred_semantic_id: Optional[Reference] = None) None[source]

Initialize with the given values.

type: ReferenceTypes

Type of the reference.

Denotes, whether reference is an external reference or a model reference.

keys: List[Key]

Unique references in their name space.

referred_semantic_id: Optional[Reference]

HasSemantics.semantic_id of the referenced model element (type = ReferenceTypes.MODEL_REFERENCE).

For external references there typically is no semantic ID.

Note

It is recommended to use a external reference.

class aas_core3.types.Key(type: KeyTypes, value: str)[source]

A key is a reference to an element by its ID.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(type: KeyTypes, value: str) None[source]

Initialize with the given values.

type: KeyTypes

Denotes which kind of entity is referenced.

In case type = KeyTypes.GLOBAL_REFERENCE, the key represents a reference to a source that can be globally identified.

In case type = KeyTypes.FRAGMENT_REFERENCE the key represents a bookmark or a similar local identifier within its parent element as specified by the key that precedes this key.

In all other cases the key references a model element of the same or of another AAS. The name of the model element is explicitly listed.

value: str

The key value, for example an IRDI or an URI

class aas_core3.types.KeyTypes(value)[source]

Enumeration of different key value types within a key.

ANNOTATED_RELATIONSHIP_ELEMENT = 'AnnotatedRelationshipElement'
ASSET_ADMINISTRATION_SHELL = 'AssetAdministrationShell'
BASIC_EVENT_ELEMENT = 'BasicEventElement'
BLOB = 'Blob'
CAPABILITY = 'Capability'
CONCEPT_DESCRIPTION = 'ConceptDescription'
DATA_ELEMENT = 'DataElement'

Data element.

Note

Data Element is abstract, i.e. if a key uses DATA_ELEMENT the reference may be a Property, a File etc.

ENTITY = 'Entity'
EVENT_ELEMENT = 'EventElement'

Event.

Note

EventElement is abstract.

FILE = 'File'
FRAGMENT_REFERENCE = 'FragmentReference'

Bookmark or a similar local identifier of a subordinate part of a primary resource

GLOBAL_REFERENCE = 'GlobalReference'
IDENTIFIABLE = 'Identifiable'

Identifiable.

Note

Identifiable is abstract, i.e. if a key uses “Identifiable” the reference may be an Asset Administration Shell, a Submodel or a Concept Description.

MULTI_LANGUAGE_PROPERTY = 'MultiLanguageProperty'

Property with a value that can be provided in multiple languages

OPERATION = 'Operation'
PROPERTY = 'Property'
RANGE = 'Range'

Range with min and max

REFERABLE = 'Referable'
REFERENCE_ELEMENT = 'ReferenceElement'

Reference

RELATIONSHIP_ELEMENT = 'RelationshipElement'

Relationship

SUBMODEL = 'Submodel'
SUBMODEL_ELEMENT = 'SubmodelElement'

Submodel Element

Note

Submodel Element is abstract, i.e. if a key uses SUBMODEL_ELEMENT the reference may be a Property, an Operation etc.

SUBMODEL_ELEMENT_COLLECTION = 'SubmodelElementCollection'

Struct of Submodel Elements

SUBMODEL_ELEMENT_LIST = 'SubmodelElementList'

List of Submodel Elements

class aas_core3.types.DataTypeDefXSD(value)[source]

Enumeration listing all XSD anySimpleTypes

ANY_URI = 'xs:anyURI'
BASE_64_BINARY = 'xs:base64Binary'
BOOLEAN = 'xs:boolean'
BYTE = 'xs:byte'
DATE = 'xs:date'
DATE_TIME = 'xs:dateTime'
DECIMAL = 'xs:decimal'
DOUBLE = 'xs:double'
DURATION = 'xs:duration'
FLOAT = 'xs:float'
G_DAY = 'xs:gDay'
G_MONTH = 'xs:gMonth'
G_MONTH_DAY = 'xs:gMonthDay'
G_YEAR = 'xs:gYear'
G_YEAR_MONTH = 'xs:gYearMonth'
HEX_BINARY = 'xs:hexBinary'
INT = 'xs:int'
INTEGER = 'xs:integer'
LONG = 'xs:long'
NEGATIVE_INTEGER = 'xs:negativeInteger'
NON_NEGATIVE_INTEGER = 'xs:nonNegativeInteger'
NON_POSITIVE_INTEGER = 'xs:nonPositiveInteger'
POSITIVE_INTEGER = 'xs:positiveInteger'
SHORT = 'xs:short'
STRING = 'xs:string'
TIME = 'xs:time'
UNSIGNED_BYTE = 'xs:unsignedByte'
UNSIGNED_INT = 'xs:unsignedInt'
UNSIGNED_LONG = 'xs:unsignedLong'
UNSIGNED_SHORT = 'xs:unsignedShort'
class aas_core3.types.AbstractLangString(language: str, text: str)[source]

Strings with language tags

__init__(language: str, text: str) None[source]

Initialize with the given values.

language: str

Language tag conforming to BCP 47

text: str

Text in the language

class aas_core3.types.LangStringNameType(language: str, text: str)[source]

String with length 128 maximum and minimum 1 characters and with language tags

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(language: str, text: str) None[source]

Initialize with the given values.

language: str

Language tag conforming to BCP 47

text: str

Text in the language

class aas_core3.types.LangStringTextType(language: str, text: str)[source]

String with length 1023 maximum and minimum 1 characters and with language tags

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(language: str, text: str) None[source]

Initialize with the given values.

language: str

Language tag conforming to BCP 47

text: str

Text in the language

class aas_core3.types.Environment(asset_administration_shells: Optional[List[AssetAdministrationShell]] = None, submodels: Optional[List[Submodel]] = None, concept_descriptions: Optional[List[ConceptDescription]] = None)[source]

Container for the sets of different identifiables.

Note

w.r.t. file exchange: There is exactly one environment independent on how many files the contained elements are split. If the file is split then there shall be no element with the same identifier in two different files.

over_asset_administration_shells_or_empty() Iterator[AssetAdministrationShell][source]

Yield from asset_administration_shells if set.

over_submodels_or_empty() Iterator[Submodel][source]

Yield from submodels if set.

over_concept_descriptions_or_empty() Iterator[ConceptDescription][source]

Yield from concept_descriptions if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(asset_administration_shells: Optional[List[AssetAdministrationShell]] = None, submodels: Optional[List[Submodel]] = None, concept_descriptions: Optional[List[ConceptDescription]] = None) None[source]

Initialize with the given values.

asset_administration_shells: Optional[List[AssetAdministrationShell]]

Asset administration shell

submodels: Optional[List[Submodel]]

Submodel

concept_descriptions: Optional[List[ConceptDescription]]

Concept description

class aas_core3.types.DataSpecificationContent[source]

Data specification content is part of a data specification template and defines which additional attributes shall be added to the element instance that references the data specification template and meta information about the template itself.

Constraint AASc-3a-050

If the DataSpecificationIEC61360 is used for an element, the value of HasDataSpecification.embedded_data_specifications shall contain the global reference to the IRI of the corresponding data specification template https://admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360/3/0

class aas_core3.types.EmbeddedDataSpecification(data_specification: Reference, data_specification_content: DataSpecificationContent)[source]

Embed the content of a data specification.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(data_specification: Reference, data_specification_content: DataSpecificationContent) None[source]

Initialize with the given values.

data_specification: Reference

Reference to the data specification

data_specification_content: DataSpecificationContent

Actual content of the data specification

class aas_core3.types.DataTypeIEC61360(value)[source]

An enumeration.

DATE = 'DATE'

values containing a calendar date, conformant to ISO 8601:2004 Format yyyy-mm-dd Example from IEC 61360-1:2017: “1999-05-31” is the [DATE] representation of: “31 May 1999”.

STRING = 'STRING'

values consisting of sequence of characters but cannot be translated into other languages

STRING_TRANSLATABLE = 'STRING_TRANSLATABLE'

values containing string but shall be represented as different string in different languages

INTEGER_MEASURE = 'INTEGER_MEASURE'

values containing values that are measure of type INTEGER. In addition such a value comes with a physical unit.

INTEGER_COUNT = 'INTEGER_COUNT'

values containing values of type INTEGER but are no currencies or measures

INTEGER_CURRENCY = 'INTEGER_CURRENCY'

values containing values of type INTEGER that are currencies

REAL_MEASURE = 'REAL_MEASURE'

values containing values that are measures of type REAL. In addition such a value comes with a physical unit.

REAL_COUNT = 'REAL_COUNT'

values containing numbers that can be written as a terminating or non-terminating decimal; a rational or irrational number but are no currencies or measures

REAL_CURRENCY = 'REAL_CURRENCY'

values containing values of type REAL that are currencies

BOOLEAN = 'BOOLEAN'

values representing truth of logic or Boolean algebra (TRUE, FALSE)

IRI = 'IRI'

values containing values of type STRING conformant to Rfc 3987

Note

In IEC61360-1 (2017) only URI is supported. An IRI type allows in particular to express an URL or an URI.

IRDI = 'IRDI'

values conforming to ISO/IEC 11179 series global identifier sequences

IRDI can be used instead of the more specific data types ICID or ISO29002_IRDI.

ICID values are value conformant to an IRDI, where the delimiter between RAI and ID is “#” while the delimiter between DI and VI is confined to “##”

ISO29002_IRDI values are values containing a global identifier that identifies an administrated item in a registry. The structure of this identifier complies with identifier syntax defined in ISO/TS 29002-5. The identifier shall fulfil the requirements specified in ISO/TS 29002-5 for an “international registration data identifier” (IRDI).

RATIONAL = 'RATIONAL'

values containing values of type rational

RATIONAL_MEASURE = 'RATIONAL_MEASURE'

values containing values of type rational. In addition such a value comes with a physical unit.

TIME = 'TIME'

values containing a time, conformant to ISO 8601:2004 but restricted to what is allowed in the corresponding type in xml.

Format hh:mm (ECLASS)

Example from IEC 61360-1:2017: “13:20:00-05:00” is the [TIME] representation of: 1.20 p.m. for Eastern Standard Time, which is 5 hours behind Coordinated Universal Time (UTC).

TIMESTAMP = 'TIMESTAMP'

values containing a time, conformant to ISO 8601:2004 but restricted to what is allowed in the corresponding type in xml.

Format yyyy-mm-dd hh:mm (ECLASS)

FILE = 'FILE'

values containing an address to a file. The values are of type URI and can represent an absolute or relative path.

Note

IEC61360 does not support the file type.

HTML = 'HTML'

Values containing string with any sequence of characters, using the syntax of HTML5 (see W3C Recommendation 28:2014)

BLOB = 'BLOB'

values containing the content of a file. Values may be binaries.

HTML conformant to HTML5 is a special blob.

In IEC61360 binary is for a sequence of bits, each bit being represented by “0” and “1” only. A binary is a blob but a blob may also contain other source code.

class aas_core3.types.LevelType(min: bool, nom: bool, typ: bool, max: bool)[source]

Value represented by up to four variants of a numeric value in a specific role: MIN, NOM, TYP and MAX. True means that the value is available, false means the value is not available.

EXAMPLE from [IEC61360-1]: In the case of having a property which is of the LEVEL_TYPE min/max − expressing a range − only those two values need to be provided.

Note

This is how AAS deals with the following combinations of level types:

  • Either all attributes are false. In this case the concept is mapped to a Property and level type is ignored.

  • At most one of the attributes is set to true. In this case the concept is mapped to a Property.

  • Min and max are set to true. In this case the concept is mapped to a Range.

  • More than one attribute is set to true but not min and max only (see second case). In this case the concept is mapped to a SubmodelElementCollection with the corresponding number of Properties. Example: If attribute min and nom are set to true then the concept is mapped to a SubmodelElementCollection with two Properties within: min and nom. The data type of both Properties is the same.

Note

In the cases 2. and 4. the Property.semantic_id of the Property or Properties within the SubmodelElementCollection needs to include information about the level type. Otherwise, the semantics is not described in a unique way. Please refer to the specification.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(min: bool, nom: bool, typ: bool, max: bool) None[source]

Initialize with the given values.

min: bool

Minimum of the value

nom: bool

Nominal value (value as designated)

typ: bool

Value as typically present

max: bool

Maximum of the value

class aas_core3.types.ValueReferencePair(value: str, value_id: Reference)[source]

A value reference pair within a value list. Each value has a global unique id defining its semantic.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(value: str, value_id: Reference) None[source]

Initialize with the given values.

value: str

The value of the referenced concept definition of the value in value_id.

value_id: Reference

Global unique id of the value.

Note

It is recommended to use a global reference.

class aas_core3.types.ValueList(value_reference_pairs: List[ValueReferencePair])[source]

A set of value reference pairs.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(value_reference_pairs: List[ValueReferencePair]) None[source]

Initialize with the given values.

value_reference_pairs: List[ValueReferencePair]

A pair of a value together with its global unique id.

class aas_core3.types.LangStringPreferredNameTypeIEC61360(language: str, text: str)[source]

String with length 255 maximum and minimum 1 characters and with language tags

Note

It is advised to keep the length of the name limited to 35 characters.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(language: str, text: str) None[source]

Initialize with the given values.

language: str

Language tag conforming to BCP 47

text: str

Text in the language

class aas_core3.types.LangStringShortNameTypeIEC61360(language: str, text: str)[source]

String with length 18 maximum and minimum 1 characters and with language tags

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(language: str, text: str) None[source]

Initialize with the given values.

language: str

Language tag conforming to BCP 47

text: str

Text in the language

class aas_core3.types.LangStringDefinitionTypeIEC61360(language: str, text: str)[source]

String with length 1023 maximum and minimum 1 characters and with language tags

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(language: str, text: str) None[source]

Initialize with the given values.

language: str

Language tag conforming to BCP 47

text: str

Text in the language

class aas_core3.types.DataSpecificationIEC61360(preferred_name: List[LangStringPreferredNameTypeIEC61360], short_name: Optional[List[LangStringShortNameTypeIEC61360]] = None, unit: Optional[str] = None, unit_id: Optional[Reference] = None, source_of_definition: Optional[str] = None, symbol: Optional[str] = None, data_type: Optional[DataTypeIEC61360] = None, definition: Optional[List[LangStringDefinitionTypeIEC61360]] = None, value_format: Optional[str] = None, value_list: Optional[ValueList] = None, value: Optional[str] = None, level_type: Optional[LevelType] = None)[source]

Content of data specification template for concept descriptions for properties, values and value lists conformant to IEC 61360.

Note

IEC61360 requires also a globally unique identifier for a concept description. This ID is not part of the data specification template. Instead the ConceptDescription.id as inherited via Identifiable is used. Same holds for administrative information like the version and revision.

Note

ConceptDescription.id_short and short_name are very similar. However, in this case the decision was to add short_name explicitly to the data specification. Same holds for ConceptDescription.display_name and preferred_name. Same holds for ConceptDescription.description and definition.

Constraint AASc-3a-010

If value is not empty then value_list shall be empty and vice versa.

Note

It is also possible that both value and value_list are empty. This is the case for concept descriptions that define the semantics of a property but do not have an enumeration (value_list) as data type.

Note

Although it is possible to define a ConceptDescription for a :attr:´value_list`, it is not possible to reuse this value_list. It is only possible to directly add a value_list as data type to a specific semantic definition of a property.

Constraint AASc-3a-009

If data_type one of: DataTypeIEC61360.INTEGER_MEASURE, DataTypeIEC61360.REAL_MEASURE, DataTypeIEC61360.RATIONAL_MEASURE, DataTypeIEC61360.INTEGER_CURRENCY, DataTypeIEC61360.REAL_CURRENCY, then unit or unit_id shall be defined.

over_short_name_or_empty() Iterator[LangStringShortNameTypeIEC61360][source]

Yield from short_name if set.

over_definition_or_empty() Iterator[LangStringDefinitionTypeIEC61360][source]

Yield from definition if set.

descend_once() Iterator[Class][source]

Iterate over the instances referenced from this instance.

We do not recurse into the referenced instance.

Yield

instances directly referenced from this instance

descend() Iterator[Class][source]

Iterate recursively over the instances referenced from this one.

Yield

instances recursively referenced from this instance

accept(visitor: AbstractVisitor) None[source]

Dispatch the visitor on this instance.

accept_with_context(visitor: AbstractVisitorWithContext[ContextT], context: ContextT) None[source]

Dispatch the visitor on this instance in context.

transform(transformer: AbstractTransformer[T]) T[source]

Dispatch the transformer on this instance.

transform_with_context(transformer: AbstractTransformerWithContext[ContextT, T], context: ContextT) T[source]

Dispatch the transformer on this instance in context.

__init__(preferred_name: List[LangStringPreferredNameTypeIEC61360], short_name: Optional[List[LangStringShortNameTypeIEC61360]] = None, unit: Optional[str] = None, unit_id: Optional[Reference] = None, source_of_definition: Optional[str] = None, symbol: Optional[str] = None, data_type: Optional[DataTypeIEC61360] = None, definition: Optional[List[LangStringDefinitionTypeIEC61360]] = None, value_format: Optional[str] = None, value_list: Optional[ValueList] = None, value: Optional[str] = None, level_type: Optional[LevelType] = None) None[source]

Initialize with the given values.

preferred_name: List[LangStringPreferredNameTypeIEC61360]

Preferred name

Note

It is advised to keep the length of the name limited to 35 characters.

Constraint AASc-3a-002

preferred_name shall be provided at least in English.

short_name: Optional[List[LangStringShortNameTypeIEC61360]]

Short name

unit: Optional[str]

Unit

unit_id: Optional[Reference]

Unique unit id

unit and unit_id need to be consistent if both attributes are set

Note

It is recommended to use an external reference ID.

source_of_definition: Optional[str]

Source of definition

symbol: Optional[str]

Symbol

data_type: Optional[DataTypeIEC61360]

Data Type

definition: Optional[List[LangStringDefinitionTypeIEC61360]]

Definition in different languages

value_format: Optional[str]

Value Format

Note

The value format is based on ISO 13584-42 and IEC 61360-2.

value_list: Optional[ValueList]

List of allowed values

value: Optional[str]

Value

level_type: Optional[LevelType]

Set of levels.

class aas_core3.types.AbstractVisitor[source]

Visit the instances of the model.

visit(that: Class) None[source]

Double-dispatch on that.

abstract visit_extension(that: Extension) None[source]

Visit that.

abstract visit_administrative_information(that: AdministrativeInformation) None[source]

Visit that.

abstract visit_qualifier(that: Qualifier) None[source]

Visit that.

abstract visit_asset_administration_shell(that: AssetAdministrationShell) None[source]

Visit that.

abstract visit_asset_information(that: AssetInformation) None[source]

Visit that.

abstract visit_resource(that: Resource) None[source]

Visit that.

abstract visit_specific_asset_id(that: SpecificAssetID) None[source]

Visit that.

abstract visit_submodel(that: Submodel) None[source]

Visit that.

abstract visit_relationship_element(that: RelationshipElement) None[source]

Visit that.

abstract visit_submodel_element_list(that: SubmodelElementList) None[source]

Visit that.

abstract visit_submodel_element_collection(that: SubmodelElementCollection) None[source]

Visit that.

abstract visit_property(that: Property) None[source]

Visit that.

abstract visit_multi_language_property(that: MultiLanguageProperty) None[source]

Visit that.

abstract visit_range(that: Range) None[source]

Visit that.

abstract visit_reference_element(that: ReferenceElement) None[source]

Visit that.

abstract visit_blob(that: Blob) None[source]

Visit that.

abstract visit_file(that: File) None[source]

Visit that.

abstract visit_annotated_relationship_element(that: AnnotatedRelationshipElement) None[source]

Visit that.

abstract visit_entity(that: Entity) None[source]

Visit that.

abstract visit_event_payload(that: EventPayload) None[source]

Visit that.

abstract visit_basic_event_element(that: BasicEventElement) None[source]

Visit that.

abstract visit_operation(that: Operation) None[source]

Visit that.

abstract visit_operation_variable(that: OperationVariable) None[source]

Visit that.

abstract visit_capability(that: Capability) None[source]

Visit that.

abstract visit_concept_description(that: ConceptDescription) None[source]

Visit that.

abstract visit_reference(that: Reference) None[source]

Visit that.

abstract visit_key(that: Key) None[source]

Visit that.

abstract visit_lang_string_name_type(that: LangStringNameType) None[source]

Visit that.

abstract visit_lang_string_text_type(that: LangStringTextType) None[source]

Visit that.

abstract visit_environment(that: Environment) None[source]

Visit that.

abstract visit_embedded_data_specification(that: EmbeddedDataSpecification) None[source]

Visit that.

abstract visit_level_type(that: LevelType) None[source]

Visit that.

abstract visit_value_reference_pair(that: ValueReferencePair) None[source]

Visit that.

abstract visit_value_list(that: ValueList) None[source]

Visit that.

abstract visit_lang_string_preferred_name_type_iec_61360(that: LangStringPreferredNameTypeIEC61360) None[source]

Visit that.

abstract visit_lang_string_short_name_type_iec_61360(that: LangStringShortNameTypeIEC61360) None[source]

Visit that.

abstract visit_lang_string_definition_type_iec_61360(that: LangStringDefinitionTypeIEC61360) None[source]

Visit that.

abstract visit_data_specification_iec_61360(that: DataSpecificationIEC61360) None[source]

Visit that.

class aas_core3.types.AbstractVisitorWithContext(*args, **kwds)[source]

Visit the instances of the model with context.

visit_with_context(that: Class, context: ContextT) None[source]

Double-dispatch on that.

abstract visit_extension_with_context(that: Extension, context: ContextT) None[source]

Visit that in context.

abstract visit_administrative_information_with_context(that: AdministrativeInformation, context: ContextT) None[source]

Visit that in context.

abstract visit_qualifier_with_context(that: Qualifier, context: ContextT) None[source]

Visit that in context.

abstract visit_asset_administration_shell_with_context(that: AssetAdministrationShell, context: ContextT) None[source]

Visit that in context.

abstract visit_asset_information_with_context(that: AssetInformation, context: ContextT) None[source]

Visit that in context.

abstract visit_resource_with_context(that: Resource, context: ContextT) None[source]

Visit that in context.

abstract visit_specific_asset_id_with_context(that: SpecificAssetID, context: ContextT) None[source]

Visit that in context.

abstract visit_submodel_with_context(that: Submodel, context: ContextT) None[source]

Visit that in context.

abstract visit_relationship_element_with_context(that: RelationshipElement, context: ContextT) None[source]

Visit that in context.

abstract visit_submodel_element_list_with_context(that: SubmodelElementList, context: ContextT) None[source]

Visit that in context.

abstract visit_submodel_element_collection_with_context(that: SubmodelElementCollection, context: ContextT) None[source]

Visit that in context.

abstract visit_property_with_context(that: Property, context: ContextT) None[source]

Visit that in context.

abstract visit_multi_language_property_with_context(that: MultiLanguageProperty, context: ContextT) None[source]

Visit that in context.

abstract visit_range_with_context(that: Range, context: ContextT) None[source]

Visit that in context.

abstract visit_reference_element_with_context(that: ReferenceElement, context: ContextT) None[source]

Visit that in context.

abstract visit_blob_with_context(that: Blob, context: ContextT) None[source]

Visit that in context.

abstract visit_file_with_context(that: File, context: ContextT) None[source]

Visit that in context.

abstract visit_annotated_relationship_element_with_context(that: AnnotatedRelationshipElement, context: ContextT) None[source]

Visit that in context.

abstract visit_entity_with_context(that: Entity, context: ContextT) None[source]

Visit that in context.

abstract visit_event_payload_with_context(that: EventPayload, context: ContextT) None[source]

Visit that in context.

abstract visit_basic_event_element_with_context(that: BasicEventElement, context: ContextT) None[source]

Visit that in context.

abstract visit_operation_with_context(that: Operation, context: ContextT) None[source]

Visit that in context.

abstract visit_operation_variable_with_context(that: OperationVariable, context: ContextT) None[source]

Visit that in context.

abstract visit_capability_with_context(that: Capability, context: ContextT) None[source]

Visit that in context.

abstract visit_concept_description_with_context(that: ConceptDescription, context: ContextT) None[source]

Visit that in context.

abstract visit_reference_with_context(that: Reference, context: ContextT) None[source]

Visit that in context.

abstract visit_key_with_context(that: Key, context: ContextT) None[source]

Visit that in context.

abstract visit_lang_string_name_type_with_context(that: LangStringNameType, context: ContextT) None[source]

Visit that in context.

abstract visit_lang_string_text_type_with_context(that: LangStringTextType, context: ContextT) None[source]

Visit that in context.

abstract visit_environment_with_context(that: Environment, context: ContextT) None[source]

Visit that in context.

abstract visit_embedded_data_specification_with_context(that: EmbeddedDataSpecification, context: ContextT) None[source]

Visit that in context.

abstract visit_level_type_with_context(that: LevelType, context: ContextT) None[source]

Visit that in context.

abstract visit_value_reference_pair_with_context(that: ValueReferencePair, context: ContextT) None[source]

Visit that in context.

abstract visit_value_list_with_context(that: ValueList, context: ContextT) None[source]

Visit that in context.

abstract visit_lang_string_preferred_name_type_iec_61360_with_context(that: LangStringPreferredNameTypeIEC61360, context: ContextT) None[source]

Visit that in context.

abstract visit_lang_string_short_name_type_iec_61360_with_context(that: LangStringShortNameTypeIEC61360, context: ContextT) None[source]

Visit that in context.

abstract visit_lang_string_definition_type_iec_61360_with_context(that: LangStringDefinitionTypeIEC61360, context: ContextT) None[source]

Visit that in context.

abstract visit_data_specification_iec_61360_with_context(that: DataSpecificationIEC61360, context: ContextT) None[source]

Visit that in context.

__orig_bases__ = (typing.Generic[~ContextT],)
__parameters__ = (~ContextT,)
class aas_core3.types.PassThroughVisitor[source]

Visit the instances of the model without action.

This visitor is not meant to be directly used. Instead, you usually inherit from it, and implement only the relevant visit methods.

visit(that: Class) None[source]

Double-dispatch on that.

visit_extension(that: Extension) None[source]

Visit that.

visit_administrative_information(that: AdministrativeInformation) None[source]

Visit that.

visit_qualifier(that: Qualifier) None[source]

Visit that.

visit_asset_administration_shell(that: AssetAdministrationShell) None[source]

Visit that.

visit_asset_information(that: AssetInformation) None[source]

Visit that.

visit_resource(that: Resource) None[source]

Visit that.

visit_specific_asset_id(that: SpecificAssetID) None[source]

Visit that.

visit_submodel(that: Submodel) None[source]

Visit that.

visit_relationship_element(that: RelationshipElement) None[source]

Visit that.

visit_submodel_element_list(that: SubmodelElementList) None[source]

Visit that.

visit_submodel_element_collection(that: SubmodelElementCollection) None[source]

Visit that.

visit_property(that: Property) None[source]

Visit that.

visit_multi_language_property(that: MultiLanguageProperty) None[source]

Visit that.

visit_range(that: Range) None[source]

Visit that.

visit_reference_element(that: ReferenceElement) None[source]

Visit that.

visit_blob(that: Blob) None[source]

Visit that.

visit_file(that: File) None[source]

Visit that.

visit_annotated_relationship_element(that: AnnotatedRelationshipElement) None[source]

Visit that.

visit_entity(that: Entity) None[source]

Visit that.

visit_event_payload(that: EventPayload) None[source]

Visit that.

visit_basic_event_element(that: BasicEventElement) None[source]

Visit that.

visit_operation(that: Operation) None[source]

Visit that.

visit_operation_variable(that: OperationVariable) None[source]

Visit that.

visit_capability(that: Capability) None[source]

Visit that.

visit_concept_description(that: ConceptDescription) None[source]

Visit that.

visit_reference(that: Reference) None[source]

Visit that.

visit_key(that: Key) None[source]

Visit that.

visit_lang_string_name_type(that: LangStringNameType) None[source]

Visit that.

visit_lang_string_text_type(that: LangStringTextType) None[source]

Visit that.

visit_environment(that: Environment) None[source]

Visit that.

visit_embedded_data_specification(that: EmbeddedDataSpecification) None[source]

Visit that.

visit_level_type(that: LevelType) None[source]

Visit that.

visit_value_reference_pair(that: ValueReferencePair) None[source]

Visit that.

visit_value_list(that: ValueList) None[source]

Visit that.

visit_lang_string_preferred_name_type_iec_61360(that: LangStringPreferredNameTypeIEC61360) None[source]

Visit that.

visit_lang_string_short_name_type_iec_61360(that: LangStringShortNameTypeIEC61360) None[source]

Visit that.

visit_lang_string_definition_type_iec_61360(that: LangStringDefinitionTypeIEC61360) None[source]

Visit that.

visit_data_specification_iec_61360(that: DataSpecificationIEC61360) None[source]

Visit that.

class aas_core3.types.PassThroughVisitorWithContext(*args, **kwds)[source]

Visit the instances of the model without action and in context.

This visitor is not meant to be directly used. Instead, you usually inherit from it, and implement only the relevant visit methods.

visit_with_context(that: Class, context: ContextT) None[source]

Double-dispatch on that.

visit_extension_with_context(that: Extension, context: ContextT) None[source]

Visit that in context.

visit_administrative_information_with_context(that: AdministrativeInformation, context: ContextT) None[source]

Visit that in context.

visit_qualifier_with_context(that: Qualifier, context: ContextT) None[source]

Visit that in context.

visit_asset_administration_shell_with_context(that: AssetAdministrationShell, context: ContextT) None[source]

Visit that in context.

visit_asset_information_with_context(that: AssetInformation, context: ContextT) None[source]

Visit that in context.

visit_resource_with_context(that: Resource, context: ContextT) None[source]

Visit that in context.

visit_specific_asset_id_with_context(that: SpecificAssetID, context: ContextT) None[source]

Visit that in context.

visit_submodel_with_context(that: Submodel, context: ContextT) None[source]

Visit that in context.

visit_relationship_element_with_context(that: RelationshipElement, context: ContextT) None[source]

Visit that in context.

visit_submodel_element_list_with_context(that: SubmodelElementList, context: ContextT) None[source]

Visit that in context.

visit_submodel_element_collection_with_context(that: SubmodelElementCollection, context: ContextT) None[source]

Visit that in context.

visit_property_with_context(that: Property, context: ContextT) None[source]

Visit that in context.

visit_multi_language_property_with_context(that: MultiLanguageProperty, context: ContextT) None[source]

Visit that in context.

visit_range_with_context(that: Range, context: ContextT) None[source]

Visit that in context.

visit_reference_element_with_context(that: ReferenceElement, context: ContextT) None[source]

Visit that in context.

visit_blob_with_context(that: Blob, context: ContextT) None[source]

Visit that in context.

visit_file_with_context(that: File, context: ContextT) None[source]

Visit that in context.

visit_annotated_relationship_element_with_context(that: AnnotatedRelationshipElement, context: ContextT) None[source]

Visit that in context.

visit_entity_with_context(that: Entity, context: ContextT) None[source]

Visit that in context.

visit_event_payload_with_context(that: EventPayload, context: ContextT) None[source]

Visit that in context.

visit_basic_event_element_with_context(that: BasicEventElement, context: ContextT) None[source]

Visit that in context.

visit_operation_with_context(that: Operation, context: ContextT) None[source]

Visit that in context.

visit_operation_variable_with_context(that: OperationVariable, context: ContextT) None[source]

Visit that in context.

visit_capability_with_context(that: Capability, context: ContextT) None[source]

Visit that in context.

visit_concept_description_with_context(that: ConceptDescription, context: ContextT) None[source]

Visit that in context.

visit_reference_with_context(that: Reference, context: ContextT) None[source]

Visit that in context.

visit_key_with_context(that: Key, context: ContextT) None[source]

Visit that in context.

visit_lang_string_name_type_with_context(that: LangStringNameType, context: ContextT) None[source]

Visit that in context.

visit_lang_string_text_type_with_context(that: LangStringTextType, context: ContextT) None[source]

Visit that in context.

visit_environment_with_context(that: Environment, context: ContextT) None[source]

Visit that in context.

visit_embedded_data_specification_with_context(that: EmbeddedDataSpecification, context: ContextT) None[source]

Visit that in context.

visit_level_type_with_context(that: LevelType, context: ContextT) None[source]

Visit that in context.

visit_value_reference_pair_with_context(that: ValueReferencePair, context: ContextT) None[source]

Visit that in context.

visit_value_list_with_context(that: ValueList, context: ContextT) None[source]

Visit that in context.

visit_lang_string_preferred_name_type_iec_61360_with_context(that: LangStringPreferredNameTypeIEC61360, context: ContextT) None[source]

Visit that in context.

visit_lang_string_short_name_type_iec_61360_with_context(that: LangStringShortNameTypeIEC61360, context: ContextT) None[source]

Visit that in context.

visit_lang_string_definition_type_iec_61360_with_context(that: LangStringDefinitionTypeIEC61360, context: ContextT) None[source]

Visit that in context.

visit_data_specification_iec_61360_with_context(that: DataSpecificationIEC61360, context: ContextT) None[source]

Visit that in context.

__orig_bases__ = (aas_core3.types.AbstractVisitorWithContext[~ContextT],)
__parameters__ = (~ContextT,)
class aas_core3.types.AbstractTransformer(*args, **kwds)[source]

Transform the instances of the model.

transform(that: Class) T[source]

Double-dispatch on that.

abstract transform_extension(that: Extension) T[source]

Transform that.

abstract transform_administrative_information(that: AdministrativeInformation) T[source]

Transform that.

abstract transform_qualifier(that: Qualifier) T[source]

Transform that.

abstract transform_asset_administration_shell(that: AssetAdministrationShell) T[source]

Transform that.

abstract transform_asset_information(that: AssetInformation) T[source]

Transform that.

abstract transform_resource(that: Resource) T[source]

Transform that.

abstract transform_specific_asset_id(that: SpecificAssetID) T[source]

Transform that.

abstract transform_submodel(that: Submodel) T[source]

Transform that.

abstract transform_relationship_element(that: RelationshipElement) T[source]

Transform that.

abstract transform_submodel_element_list(that: SubmodelElementList) T[source]

Transform that.

abstract transform_submodel_element_collection(that: SubmodelElementCollection) T[source]

Transform that.

abstract transform_property(that: Property) T[source]

Transform that.

abstract transform_multi_language_property(that: MultiLanguageProperty) T[source]

Transform that.

abstract transform_range(that: Range) T[source]

Transform that.

abstract transform_reference_element(that: ReferenceElement) T[source]

Transform that.

abstract transform_blob(that: Blob) T[source]

Transform that.

abstract transform_file(that: File) T[source]

Transform that.

abstract transform_annotated_relationship_element(that: AnnotatedRelationshipElement) T[source]

Transform that.

abstract transform_entity(that: Entity) T[source]

Transform that.

abstract transform_event_payload(that: EventPayload) T[source]

Transform that.

abstract transform_basic_event_element(that: BasicEventElement) T[source]

Transform that.

abstract transform_operation(that: Operation) T[source]

Transform that.

abstract transform_operation_variable(that: OperationVariable) T[source]

Transform that.

abstract transform_capability(that: Capability) T[source]

Transform that.

abstract transform_concept_description(that: ConceptDescription) T[source]

Transform that.

abstract transform_reference(that: Reference) T[source]

Transform that.

abstract transform_key(that: Key) T[source]

Transform that.

abstract transform_lang_string_name_type(that: LangStringNameType) T[source]

Transform that.

abstract transform_lang_string_text_type(that: LangStringTextType) T[source]

Transform that.

abstract transform_environment(that: Environment) T[source]

Transform that.

abstract transform_embedded_data_specification(that: EmbeddedDataSpecification) T[source]

Transform that.

abstract transform_level_type(that: LevelType) T[source]

Transform that.

abstract transform_value_reference_pair(that: ValueReferencePair) T[source]

Transform that.

abstract transform_value_list(that: ValueList) T[source]

Transform that.

abstract transform_lang_string_preferred_name_type_iec_61360(that: LangStringPreferredNameTypeIEC61360) T[source]

Transform that.

abstract transform_lang_string_short_name_type_iec_61360(that: LangStringShortNameTypeIEC61360) T[source]

Transform that.

abstract transform_lang_string_definition_type_iec_61360(that: LangStringDefinitionTypeIEC61360) T[source]

Transform that.

abstract transform_data_specification_iec_61360(that: DataSpecificationIEC61360) T[source]

Transform that.

__orig_bases__ = (typing.Generic[~T],)
__parameters__ = (~T,)
class aas_core3.types.AbstractTransformerWithContext(*args, **kwds)[source]

Transform the instances of the model in context.

transform_with_context(that: Class, context: ContextT) T[source]

Double-dispatch on that.

abstract transform_extension_with_context(that: Extension, context: ContextT) T[source]

Transform that in context.

abstract transform_administrative_information_with_context(that: AdministrativeInformation, context: ContextT) T[source]

Transform that in context.

abstract transform_qualifier_with_context(that: Qualifier, context: ContextT) T[source]

Transform that in context.

abstract transform_asset_administration_shell_with_context(that: AssetAdministrationShell, context: ContextT) T[source]

Transform that in context.

abstract transform_asset_information_with_context(that: AssetInformation, context: ContextT) T[source]

Transform that in context.

__orig_bases__ = (typing.Generic[~ContextT, ~T],)
__parameters__ = (~ContextT, ~T)
abstract transform_resource_with_context(that: Resource, context: ContextT) T[source]

Transform that in context.

abstract transform_specific_asset_id_with_context(that: SpecificAssetID, context: ContextT) T[source]

Transform that in context.

abstract transform_submodel_with_context(that: Submodel, context: ContextT) T[source]

Transform that in context.

abstract transform_relationship_element_with_context(that: RelationshipElement, context: ContextT) T[source]

Transform that in context.

abstract transform_submodel_element_list_with_context(that: SubmodelElementList, context: ContextT) T[source]

Transform that in context.

abstract transform_submodel_element_collection_with_context(that: SubmodelElementCollection, context: ContextT) T[source]

Transform that in context.

abstract transform_property_with_context(that: Property, context: ContextT) T[source]

Transform that in context.

abstract transform_multi_language_property_with_context(that: MultiLanguageProperty, context: ContextT) T[source]

Transform that in context.

abstract transform_range_with_context(that: Range, context: ContextT) T[source]

Transform that in context.

abstract transform_reference_element_with_context(that: ReferenceElement, context: ContextT) T[source]

Transform that in context.

abstract transform_blob_with_context(that: Blob, context: ContextT) T[source]

Transform that in context.

abstract transform_file_with_context(that: File, context: ContextT) T[source]

Transform that in context.

abstract transform_annotated_relationship_element_with_context(that: AnnotatedRelationshipElement, context: ContextT) T[source]

Transform that in context.

abstract transform_entity_with_context(that: Entity, context: ContextT) T[source]

Transform that in context.

abstract transform_event_payload_with_context(that: EventPayload, context: ContextT) T[source]

Transform that in context.

abstract transform_basic_event_element_with_context(that: BasicEventElement, context: ContextT) T[source]

Transform that in context.

abstract transform_operation_with_context(that: Operation, context: ContextT) T[source]

Transform that in context.

abstract transform_operation_variable_with_context(that: OperationVariable, context: ContextT) T[source]

Transform that in context.

abstract transform_capability_with_context(that: Capability, context: ContextT) T[source]

Transform that in context.

abstract transform_concept_description_with_context(that: ConceptDescription, context: ContextT) T[source]

Transform that in context.

abstract transform_reference_with_context(that: Reference, context: ContextT) T[source]

Transform that in context.

abstract transform_key_with_context(that: Key, context: ContextT) T[source]

Transform that in context.

abstract transform_lang_string_name_type_with_context(that: LangStringNameType, context: ContextT) T[source]

Transform that in context.

abstract transform_lang_string_text_type_with_context(that: LangStringTextType, context: ContextT) T[source]

Transform that in context.

abstract transform_environment_with_context(that: Environment, context: ContextT) T[source]

Transform that in context.

abstract transform_embedded_data_specification_with_context(that: EmbeddedDataSpecification, context: ContextT) T[source]

Transform that in context.

abstract transform_level_type_with_context(that: LevelType, context: ContextT) T[source]

Transform that in context.

abstract transform_value_reference_pair_with_context(that: ValueReferencePair, context: ContextT) T[source]

Transform that in context.

abstract transform_value_list_with_context(that: ValueList, context: ContextT) T[source]

Transform that in context.

abstract transform_lang_string_preferred_name_type_iec_61360_with_context(that: LangStringPreferredNameTypeIEC61360, context: ContextT) T[source]

Transform that in context.

abstract transform_lang_string_short_name_type_iec_61360_with_context(that: LangStringShortNameTypeIEC61360, context: ContextT) T[source]

Transform that in context.

abstract transform_lang_string_definition_type_iec_61360_with_context(that: LangStringDefinitionTypeIEC61360, context: ContextT) T[source]

Transform that in context.

abstract transform_data_specification_iec_61360_with_context(that: DataSpecificationIEC61360, context: ContextT) T[source]

Transform that in context.

class aas_core3.types.TransformerWithDefault(default: T)[source]

Transform the instances of the model.

If you do not override the transformation methods, they simply return default.

__orig_bases__ = (aas_core3.types.AbstractTransformer[~T],)
__parameters__ = (~T,)
__init__(default: T) None[source]

Initialize with the given default value.

default: T

Default value which is returned if no override of the transformation

transform(that: Class) T[source]

Double-dispatch on that.

transform_extension(that: Extension) T[source]

Transform that.

transform_administrative_information(that: AdministrativeInformation) T[source]

Transform that.

transform_qualifier(that: Qualifier) T[source]

Transform that.

transform_asset_administration_shell(that: AssetAdministrationShell) T[source]

Transform that.

transform_asset_information(that: AssetInformation) T[source]

Transform that.

transform_resource(that: Resource) T[source]

Transform that.

transform_specific_asset_id(that: SpecificAssetID) T[source]

Transform that.

transform_submodel(that: Submodel) T[source]

Transform that.

transform_relationship_element(that: RelationshipElement) T[source]

Transform that.

transform_submodel_element_list(that: SubmodelElementList) T[source]

Transform that.

transform_submodel_element_collection(that: SubmodelElementCollection) T[source]

Transform that.

transform_property(that: Property) T[source]

Transform that.

transform_multi_language_property(that: MultiLanguageProperty) T[source]

Transform that.

transform_range(that: Range) T[source]

Transform that.

transform_reference_element(that: ReferenceElement) T[source]

Transform that.

transform_blob(that: Blob) T[source]

Transform that.

transform_file(that: File) T[source]

Transform that.

transform_annotated_relationship_element(that: AnnotatedRelationshipElement) T[source]

Transform that.

transform_entity(that: Entity) T[source]

Transform that.

transform_event_payload(that: EventPayload) T[source]

Transform that.

transform_basic_event_element(that: BasicEventElement) T[source]

Transform that.

transform_operation(that: Operation) T[source]

Transform that.

transform_operation_variable(that: OperationVariable) T[source]

Transform that.

transform_capability(that: Capability) T[source]

Transform that.

transform_concept_description(that: ConceptDescription) T[source]

Transform that.

transform_reference(that: Reference) T[source]

Transform that.

transform_key(that: Key) T[source]

Transform that.

transform_lang_string_name_type(that: LangStringNameType) T[source]

Transform that.

transform_lang_string_text_type(that: LangStringTextType) T[source]

Transform that.

transform_environment(that: Environment) T[source]

Transform that.

transform_embedded_data_specification(that: EmbeddedDataSpecification) T[source]

Transform that.

transform_level_type(that: LevelType) T[source]

Transform that.

transform_value_reference_pair(that: ValueReferencePair) T[source]

Transform that.

transform_value_list(that: ValueList) T[source]

Transform that.

transform_lang_string_preferred_name_type_iec_61360(that: LangStringPreferredNameTypeIEC61360) T[source]

Transform that.

transform_lang_string_short_name_type_iec_61360(that: LangStringShortNameTypeIEC61360) T[source]

Transform that.

transform_lang_string_definition_type_iec_61360(that: LangStringDefinitionTypeIEC61360) T[source]

Transform that.

transform_data_specification_iec_61360(that: DataSpecificationIEC61360) T[source]

Transform that.

class aas_core3.types.TransformerWithDefaultAndContext(default: T)[source]

Transform the instances of the model in context.

If you do not override the transformation methods, they simply return default.

__orig_bases__ = (aas_core3.types.AbstractTransformerWithContext[~ContextT, ~T],)
__parameters__ = (~ContextT, ~T)
__init__(default: T) None[source]

Initialize with the given default value.

default: T

Default value which is returned if no override of the transformation

transform_with_context(that: Class, context: ContextT) T[source]

Double-dispatch on that.

transform_extension_with_context(that: Extension, context: ContextT) T[source]

Transform that in context.

transform_administrative_information_with_context(that: AdministrativeInformation, context: ContextT) T[source]

Transform that in context.

transform_qualifier_with_context(that: Qualifier, context: ContextT) T[source]

Transform that in context.

transform_asset_administration_shell_with_context(that: AssetAdministrationShell, context: ContextT) T[source]

Transform that in context.

transform_asset_information_with_context(that: AssetInformation, context: ContextT) T[source]

Transform that in context.

transform_resource_with_context(that: Resource, context: ContextT) T[source]

Transform that in context.

transform_specific_asset_id_with_context(that: SpecificAssetID, context: ContextT) T[source]

Transform that in context.

transform_submodel_with_context(that: Submodel, context: ContextT) T[source]

Transform that in context.

transform_relationship_element_with_context(that: RelationshipElement, context: ContextT) T[source]

Transform that in context.

transform_submodel_element_list_with_context(that: SubmodelElementList, context: ContextT) T[source]

Transform that in context.

transform_submodel_element_collection_with_context(that: SubmodelElementCollection, context: ContextT) T[source]

Transform that in context.

transform_property_with_context(that: Property, context: ContextT) T[source]

Transform that in context.

transform_multi_language_property_with_context(that: MultiLanguageProperty, context: ContextT) T[source]

Transform that in context.

transform_range_with_context(that: Range, context: ContextT) T[source]

Transform that in context.

transform_reference_element_with_context(that: ReferenceElement, context: ContextT) T[source]

Transform that in context.

transform_blob_with_context(that: Blob, context: ContextT) T[source]

Transform that in context.

transform_file_with_context(that: File, context: ContextT) T[source]

Transform that in context.

transform_annotated_relationship_element_with_context(that: AnnotatedRelationshipElement, context: ContextT) T[source]

Transform that in context.

transform_entity_with_context(that: Entity, context: ContextT) T[source]

Transform that in context.

transform_event_payload_with_context(that: EventPayload, context: ContextT) T[source]

Transform that in context.

transform_basic_event_element_with_context(that: BasicEventElement, context: ContextT) T[source]

Transform that in context.

transform_operation_with_context(that: Operation, context: ContextT) T[source]

Transform that in context.

transform_operation_variable_with_context(that: OperationVariable, context: ContextT) T[source]

Transform that in context.

transform_capability_with_context(that: Capability, context: ContextT) T[source]

Transform that in context.

transform_concept_description_with_context(that: ConceptDescription, context: ContextT) T[source]

Transform that in context.

transform_reference_with_context(that: Reference, context: ContextT) T[source]

Transform that in context.

transform_key_with_context(that: Key, context: ContextT) T[source]

Transform that in context.

transform_lang_string_name_type_with_context(that: LangStringNameType, context: ContextT) T[source]

Transform that in context.

transform_lang_string_text_type_with_context(that: LangStringTextType, context: ContextT) T[source]

Transform that in context.

transform_environment_with_context(that: Environment, context: ContextT) T[source]

Transform that in context.

transform_embedded_data_specification_with_context(that: EmbeddedDataSpecification, context: ContextT) T[source]

Transform that in context.

transform_level_type_with_context(that: LevelType, context: ContextT) T[source]

Transform that in context.

transform_value_reference_pair_with_context(that: ValueReferencePair, context: ContextT) T[source]

Transform that in context.

transform_value_list_with_context(that: ValueList, context: ContextT) T[source]

Transform that in context.

transform_lang_string_preferred_name_type_iec_61360_with_context(that: LangStringPreferredNameTypeIEC61360, context: ContextT) T[source]

Transform that in context.

transform_lang_string_short_name_type_iec_61360_with_context(that: LangStringShortNameTypeIEC61360, context: ContextT) T[source]

Transform that in context.

transform_lang_string_definition_type_iec_61360_with_context(that: LangStringDefinitionTypeIEC61360, context: ContextT) T[source]

Transform that in context.

transform_data_specification_iec_61360_with_context(that: DataSpecificationIEC61360, context: ContextT) T[source]

Transform that in context.