Skip to content

Asset Management Service


Independent of your domain, the Asset Management Service supports you in creating digital representations of your physical assets. Such assets could be valves, engines, gas turbines, trains or buildings. The level of detail depends on your use case.


For accessing this service you need to have the respective roles listed in Asset Management roles and scopes.


The API divides the functions into categories, for each category you can use a different controller. This section describes the controllers:

Aspect Types

An Aspect Type is a template for creating multiple aspects with the same variables. Aspects are a data modeling mechanism for assets. Aspects group related data points based on their logical association. An aspect can consist of several variables. You can configure, read or delete your aspect types. An aspect type is accessed by its ID. There are predefined aspect types which are available for all users, but cannot be modified or deleted.

Asset Types

An Asset Type is a pre-configured template for creating multiple assets with the same variables. Assets take on the properties of the type on which they are based. Within the type, you can define which aspects are integrated into the template. You can use a type in various assets and built several interconections between a type and assets. You can configure, read or delete your types. An asset type is accessed by its ID. Asset Type consists of Variables and Aspects. The Variables defined on an asset type cannot be used for data ingestion so they are called as Static Variables. The Variables and Aspects are also inherited from parent Asset Types.

Basic Types

The Asset Management Service provides basic asset types for users. These are predefined asset types, which are available for all users, but cannot be modified or deleted. The available basic asset types are documented in the References for Basic Types.

Default Values

The Asset Management Service allows you to assign default values to static (non-time series) variables and static aspect types of an asset type. They are applied following a type-instance concept, so that newly created assets are automatically assigned the default values of their asset type. These values can be overwritten on instance level, if required. Refer to the Samples for Using Default Values in Asset Types to learn more about what you can do with default values.

Static Variables

Asset types consists of Static Variables and Aspects. A variable comprises of properties as name, unit, length, defaultValue, dataType and searchable. Static variables can be updated and deleted. Refer to the Samples for updating and deleting Asset Type variables to learn more about updating and deleting variables.

Variable properties like name, unit, length and defaultValue can be updated however dataType and searchable cannot be updated. The changed values are propogated to all its Asset instances. Multiple variables can be updated using update variables api provided the variable names are not interchanged in same request. Updating variables is allowed to the variables defined on an asset type and not the inherited variables. The update operation will update only the given variables and other variables remain as it is. The update request should have If-Match header with value of etag fetched from the asset type. The response header contains Etag for asset type which can be used to update asset type or the variables again. There are certain validations on the update variables operation, in case of failure of a validation no any variable from the request will be updated and the request is failed. On successful update the response code is 204, in case of failure standard response codes like 400, 401, 403, 404, 412, 500 are returned along with the error message. The update variables api cannot be used to delete variables.

Variables can be deleted using asset type update api, after deleting a variable the values overridden on the Asset Instances will also be removed. Multiple variables can be deleted using asset type update api. Deleting variables is allowed only for the variables defined on the asset type and not the inherited variables.


In MindSphere the following types of assets are distinguished:

  • Device types: represents a machine, or any object, from which data is collected
  • Agent types: represents the agent (software or physical device) measuring and collecting data of devices, machines, etc.
  • Hierarchy types: represents the hierarchy levels of an organization
  • Application types: used by other services to collect data of their applications (e.g., Edge Analytics Application)

Using the Asset Management Service you can configure, read, manage, and assign existing files to assets. Deletion is supported for all assets, but root assets are deleted when their tenant is deleted.


The Asset Management Service supports hierarchical relationships between assets. Assets inherit their parent's type assignments, but not their assets. They can overwrite the inherited type assignments. The hierarchical path of an asset from the root down via all parent assets is stored in the hierarchyPath field. This can be used as navigational aid. An example implementation of hierarchical asset relationships is provided in Modeling Hierarchical Asset Structures.


The structure of an asset can only be read, but not modified. It lists all aspects and variables without their values. You can configure the variables' values by updating the asset.


You can define the location of assets and update or delete the location data.


The timezone to be used for timeseries aggregation. By default it is inherited from the tenant's defaultTimezone, but can be overwritten only during asset creation. The timezone value should be set to a Java time zone ID such as "America/LosAngeles" or "Etc/GMT+2". Time zones that 15 or 45 minutes off a UTC hour are not supported, such as Nepal standard time (UTC+05:45). Time zones that are 30 minutes off a UTC hour are supported, such as India (UTC+05:30). Once an asset is created with a specific timezone, it cannot be changed later.

Twin Type

You can define whether an asset is the digital representation of an actual physical device (performance asset) or it is used for simulation (simulation asset).


You can upload files and assign these files to assets or asset types. Each file can have multiple assignments or none at all.


The Asset Management exposes its API for realizing the following tasks:

  • Create asset types as templates for assets
  • Define default values within asset types
  • Create and manage assets
  • Model complex asset structures using hierarchy
  • Upload and assign files to assets

Example Scenario

A brewery has moved a conveyor belt to a different location. A fixed installed camera takes images of the conveyor belt every 2 minutes.

The Asset Management API allows you to change the location of the conveyor belt. You can define a new aspect for the conveyor belt like production volume.

Modeling Recommendation

Asset Types are a template for creating assets. This means, using a single asset type you can create number of assets. Asset Type consists of multiple aspects and each aspect is defined with some variables. This association of aspects for a type defines the number of variables present for a type.

Recommendation for optimum performance

  • We recommend not to use more than 100 asset types overall. If 100 types are defined accurately, they are sufficient for creating 1000's of assets.
  • We recommend not to use more than 10 variables on a single aspect type. The sum of all the variables comprising of aspect's for a type is the total number of variables belonging to that type.
  • We recommend not to use more than 25 aspect types on a single asset type.
  • We recommend not to define more than 250 variables on a single asset type.

Examples for modelling

  • The type can be modelled with 25 aspects, each consisting of 10 variables, will result in total 250 variables for the asset type.
  • The type can be modelled with 10 aspects, each consisting of 10 variables, will result in total 100 variables for the type.


Please Note that this is not a limitation but a recommendation for optimum performance.

Any questions left?

Ask the community

Except where otherwise noted, content on this site is licensed under the MindSphere Development License Agreement.