Type inheritance
- Last UpdatedAug 19, 2026
- 1 minute read
Type inheritance allows a type to extend an existing type and reuse its property definitions. By defining common properties in a base type and specialized properties in derived types, you can create more consistent and maintainable schemas while reducing duplication.
Inherited types automatically include the properties of their base type and can define additional properties to model more specific objects or behaviors.
Type inheritance - schema
The following example defines a base equipment type and a derived pump type that adds pump-specific characteristics:
omfversion: 2.0
messagetype: schema
action: create
messageformat: json
{
"types": [
{
"id": "Equipment",
"version": "1.0.0",
"type": "object",
"classification": "entity",
"properties": {
"Manufacturer": {
"type": "string"
},
"Model": {
"type": "string"
}
}
},
{
"id": "Pump",
"version": "1.0.0",
"type": "object",
"classification": "entity",
"basetypeid": "Equipment",
"properties": {
"MaximumFlow": {
"type": "number",
"format": "float64",
"uom": "m3/h"
},
"MaximumPressure": {
"type": "number",
"format": "float64",
"uom": "kPa"
}
}
}
]
}
Type inheritance - instance
The following example creates an instance of the derived pump type:
omfversion: 2.0
messagetype: instance
action: create
messageformat: json
{
"entities": [
{
"typeid": "Pump",
"id": "Pump-201",
"name": "Transfer Pump 201",
"value": {
"Manufacturer": "Example Industrial",
"Model": "PX-200",
"MaximumFlow": 125.0,
"MaximumPressure": 825.0
}
}
]
}