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

Open Message Format (OMF)

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

}

}

]

}

In This Topic
Related Links