-
Notifications
You must be signed in to change notification settings - Fork 8
Range
Kevalkumar edited this page Jan 23, 2026
·
1 revision
A Range is a SubmodelElement used to represent a value interval defined by two bounds: min and max.According to the IDTA AAS specification, both bounds share the same semantic meaning, which introduces ambiguity when resolving values purely by semantic ID.
DataEngine supports Range elements by applying a deterministic semanticId-splitting strategy that allows unambiguous value resolution via Plugins.
- A Range represents an interval with a lower bound (min) and an upper bound (max).
- Both bounds conceptually share the same semantic meaning.
- The expected data type for both bounds is defined by valueType.
- Because a single semanticId cannot uniquely identify two values, special handling is required during runtime resolution.
DataEngine applies the following handling rules for Range elements:
- A single semanticId is extracted from the template during submodel or submodel element requests.
- To avoid ambiguity, DataEngine derives variant-specific semantic IDs for the bounds:
<semanticId>_min<semanticId>_max
- The suffix separator and naming convention are configurable.
- DataEngine requests both derived semantic IDs from the Plugin.
- The Plugin returns one value per derived semantic ID.
- DataEngine maps the returned values back to the min and max fields of the Range element.
- Both values are validated against the declared valueType.
- DataEngine does not infer missing bounds or reorder values.
{
"modelType": "Range",
"idShort": "Wavelength",
"semanticId": {
"type": "ExternalReference",
"keys": [{ "type": "GlobalReference", "value": "https://admin-shell.io/SMT/General/Wavelength" }]
},
"valueType": "xs:double",
"min": "",
"max": ""
}The Plugin returns values for the derived semantic IDs.
{
"https://admin-shell.io/SMT/General/Wavelength": {
"https://admin-shell.io/SMT/General/Wavelength_min": "11.0",
"https://admin-shell.io/SMT/General/Wavelength_max": "98.3"
}
}DataEngine maps the resolved values back into the Range element.
{
"modelType": "Range",
"idShort": "Wavelength",
"semanticId": {
"type": "ExternalReference",
"keys": [{ "type": "GlobalReference", "value": "https://admin-shell.io/SMT/General/Wavelength" }]
},
"valueType": "xs:double",
"min": "11.0",
"max": "36.4"
}- Each Range semanticId must resolve to exactly two bound values (min and max) when fully populated.
- Plugins must follow the agreed suffix convention when returning values.
- If one bound is missing, the Range may be returned partially populated.
- DataEngine does not enforce ordering (for example, min < max).
- Type validation is applied uniformly to both bounds based on valueType.
M&M Software
- Architecture
- Submodel Repository
- Submodel Registry
- Aas Registry
- Aas Repository
- Plugin
- Multi-Plugin
- Supported SubmodelElement
-
Bug Reports: Template Bug Item
-
Feature Requests : Feature Request