Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

CONNECT EAP

Entity types, components, and classes

  • Last UpdatedOct 02, 2026
  • 2 minute read

To add a component to an entity, you must first create a type definition in Type Management.

Example type

{

"id": "CentrifugalPump",

"name": "Centrifugal Pump",

"description": "A centrifugal pump with impeller-based flow characteristics",

"baseTypeId": "BaseAsset",

"typeCode": "Object",

"state": "Active",

"properties": [

{

"id": "ImpellerDiameter",

"name": "Impeller Diameter",

"description": "Diameter of the pump impeller",

"isRequired": false,

"state": "Active",

"typeCode": "Double",

"uom": "millimeter"

},

{

"id": "NumberOfStages",

"name": "Number of Stages",

"description": "Number of impeller stages in the pump",

"isRequired": false,

"state": "Active",

"typeCode": "Int32"

},

{

"id": "MaxHead",

"name": "Maximum Head",

"description": "Maximum head pressure the pump can achieve",

"isRequired": false,

"state": "Active",

"typeCode": "Double",

"uom": "meter"

}

],

"relationships": [

{

"id": "FlowDiagnostics",

"name": "Flow Diagnostics",

"description": "Diagnostic information specific to centrifugal pump flow characteristics",

"isCollection": false,

"isRequired": false,

"state": "Active",

"targetTypeIds": [

"Diagnostics"

]

}

]

}

Component request example

When adding a component, the typeid field must be set to the id of the type. Because the type defines the data type of each property, only the property value needs to be included in the component definition. An entity can include multiple components, but at most one component per type.

Note: Updating a component via the /entities/{entityId}/components/{typeId} endpoint does not affect ad hoc properties, ad hoc relationships, or other components.

PUT /v2/entities/pump-0001/components/CentrifugalPump

{

"typeid": "CentrifugalPump",

"properties": [

{

"id": "ImpellerDiameter",

"value": 49.25

},

{

"id": "NumberOfStages",

"value": 4

},

{

"id": "MaxHead",

"value": 100.00

}

],

"relationships": [

{

"id": "FlowDiagnostics",

"targets": [

{

"id": "Pump-Diagnostics-0001",

"targetBase": "stream",

"relationshipType": "Related"

}

]

}

]

}

Component response example

{

"typeId": "CentrifugalPump",

"ancestorTypeIds": [

"BaseAsset"

],

"properties": [

{

"id": "ImpellerDiameter",

"value": 49.25,

"typeCode": "Double",

"uom": "millimeter"

},

{

"id": "NumberOfStages",

"value": 4,

"typeCode": "Int32"

},

{

"id": "MaxHead",

"value": 100,

"typeCode": "Double",

"uom": "meter"

}

],

"relationships": [

{

"id": "FlowDiagnostics",

"targets": [

{

"id": "Pump-Diagnostics-0001",

"targetBase": "Stream",

"relationshipType": "Related"

}

]

}

]

}

Classes

Types support inheritance. At the root of an inheritance hierarchy is a root-level type whose definition includes a unique ClassId. Types that are derived from the same root-level type belong to the same class. Refer to Root classes and class IDs. Each component that belongs to a given entity must belong to the same class, which is assigned to the entity. Entity Management validates that each component request satisfies this requirement.

Extended attributes

The system-defined root-level type, BaseExtendedAttributes, is classless and has a null ClassId. You can add components that belong to the Extended Attributes base type to a given entity in combination with any other base type without affecting the entity's class. This allows additional information and context to be applied to entities of all classes.

In This Topic
Related Links