About Asset Model
An asset is a digital abstraction of something in the physical world. It can be an enterprise, organization, site, machine train, or equipment. Creating an asset model in GE Digital APM enables an application built on GE Digital APM consistently derive data for these common assets.
- Classifications - Defines the hierarchical levels of the asset model.
- Instances - Relates node (levels in the hierarchy tree) with classification and ccomClass.
- Connections - Defines parent-child relationships among nodes.
- Tag Classifications - Defines classification types for tags.
- Tag Associations - Associate a tag instance to a node instance and specify the tag classification for the tag instance.
Beginning from here | You can create this type of classification instance |
---|---|
Enterprise | You can create a child-Enterprise, or a Site. |
Site | You can create a child-Site, a Segment, or an Asset. |
Segment | You can create a child-Segment, or an Asset. |
Asset | You can create a child-Asset. |
Tag | You can create a Tag instance anywhere in the hierarchy. |
Asset Classification
A classification is a reusable definition of a specific entity in your business object hierarchy. You can also represent multiple entities that are essentially the same and define it as a single classification. For example, you can create a classification machine to identify machinery that have common attributes and properties. You can create sub-classifications such as turbines, compressors, and shafts from this broader class machine. Sub-classifications inherit all properties from the parents and can have their own specialized properties.
Classification Rules
- It must contain an id that is unique per classification. If you ingest a model with the same classification ID the existing data will be overwritten with the new data.
- It must be tied to one of the four classification types (ccomClass).
- It may or may not be derived from a parent classification.
- The classification and its parent must have the same classification type.
- The classification inherits all properties from its parent classification. Any custom properties defined in the child classification are customized to the child.
JSON Fields
Field | Requirement |
---|---|
id | Must be unique per classification and can only contain alphabets (a-z, A-Z), digits (0-9), underscores _, hyphens -, dots . and quotes ""id":"3BCL" |
name | The name of the classification."name":"3MCL" |
description | The general description for the classification.id."description":"3MCL model of centrifugal compressor" |
parent | If inherited from an existing class, provide the parent classification id. Not required, if base class."parent":"Centrifugal_Compressor" |
comClass | The GE Digital APM s95 adapter uses four ccomClass to represent the levels within the asset model hierarchy. Each classification must be tied to one of the four ccomClasses such as ENTERPRISE_TYPE, SITE_TYPE, SEGMENT_TYPE, and ASSET_TYPE . If inherited, must match the ccomClass of the parent classification."ccomClass":"ASSET_TYPE" |
properties | Define properties for the classification in key-value pairs. If inherited from an existing class, only enter properties customized to the sub-classification. Each property block contains type, id and value. You can define multiple blocks with properties: [ ] A best practice is to define static properties as part of the classification. "properties":[ { "type":"string", "id":"customer_address", "value":[ "2336 Camino Ramon" ] }] |
reservedProperties | Define reserved properties aka system defined attributes and default values for the asset classification. Each reservedProperties block contains the list of expected reserved properties defined at the asset framework level. If you do not define the reserved properties block in your model, the system will automatically insert any required reserved attributes and set it to the default values."reservedProperties": { "familyType": "", "equipmentType": "", "make": "GE", "model": "GTX-50", "series": "GTX", "serialNumber": null, "maintenanceCriticalityRiskScore": 7, "faultMode" : "" } |
Example Classification
- Company (enterprise_type)
- Region (site_type)
- Plant Location (segment_type)
- Production Line (segment_type)
- Production Line Assembly (segment_type)
- Compressor (asset_type)
{ "classifications":[ { "id":"Company", "name":"Company", "description":"Company or Enterprise", "ccomClass":"ENTERPRISETYPE", "properties":[ { "type":"string", "id":"customeraddress", "value":[
] }, { "type":"string", "id":"contract_information", "value":[
] }, { "type":"string", "id":"city", "value":[
] }, { "type":"string", "id":"contracttype", "value":[ "Warranty", "Transactional", "Null" ] }, { "type":"double", "id":"contract_duration", "value":[
] } ] }, { "id":"Region", "name":"Region", "description":"Regional information", "ccomClass":"SITE_TYPE", "properties":[ { "type":"string", "id":"country", "value":[
] }, { "type":"string", "id":"state", "value":[
] }, { "type":"string", "id":"county", "value":[
] } ] }, { "id":"Plant", "name":"Plant", "description":"Plant Location or site", "ccomClass":"SEGMENTTYPE", "properties":[ { "type":"string", "id":"locationid", "value":[
] }, { "type":"string", "id":"Address", "value":[
] }, { "type":"string", "id":"City", "value":[
] }, { "type":"string", "id":"Note", "value":[
] }, { "type":"string", "id":"Customer_Duns", "value":[
] }, { "type":"string", "id":"CONTINENTID", "value":[ "Africa", "America", "Asia", "Europe", "Oceania" ] }, { "type":"double", "id":"Delta_Dst", "value":[
] }, { "type":"string", "id":"Last_Timestamp", "value":[
] }, { "type":"string", "id":"DateStartDst", "value":[
] }, { "type":"string", "id":"DateEndDst", "value":[
] } ] }, { "id":"ProdLine", "name":"Production Line", "description":"Production Line", "ccomClass":"SEGMENTTYPE", "properties":[ { "type":"string", "id":"ReportTo", "value":[
] }, { "type":"string", "id":"TrainId", "value":[
] }, { "type":"string", "id":"TriplogConfigurationStatus", "value":[
] }, { "type":"string", "id":"Triplog_Note", "value":[
] }, { "type":"string", "id":"Note", "value":[
] }, { "type":"string", "id":"Lineup_Code", "value":[
] }, { "type":"string", "id":"Replication", "value":[
] }, { "type":"string", "id":"VIBRMONITORTYPE", "value":[ "System1" ] }, { "type":"string", "id":"VIBRMONACCESSTYPE", "value":[ "Partial", "NA", "Complete", "Missing" ] }, { "type":"double", "id":"ReplicationActivation_Date", "value":[
] }, { "type":"double", "id":"ReplicationContractFrequency", "value":[
] }, { "type":"double", "id":"ReplicationActivationFrequency", "value":[
] }, { "type":"double", "id":"FirstReplicationContract_Date", "value":[
] }, { "type":"double", "id":"FirstReplicationActivation_Date", "value":[
] }, { "type":"double", "id":"ReplicationContractCOV_Start", "value":[
] }, { "type":"double", "id":"ReplicationContractCOV_End", "value":[
] }, { "type":"double", "id":"ReplicationActivationCOV_Start", "value":[
] }, { "type":"double", "id":"ReplicationActivationCOV_End", "value":[
] }, { "type":"double", "id":"ReplicationpenalityMax", "value":[
] }, { "type":"double", "id":"JobCCNNCM", "value":[
] }, { "type":"string", "id":"TripStartDate", "value":[
] }, { "type":"string", "id":"TripEndDate", "value":[
] } ] }, { "id":"AssemblyLine", "name":"Production Assembly Line", "description":"Production Assembly Line", "ccomClass":"SEGMENTTYPE", "properties":[] }, { "id":"Machine", "name":"Machine", "description":"Machine", "ccomClass":"ASSETTYPE", "properties":[ { "type":"string", "id":"Version", "value":[
] }, { "type":"string", "id":"Low_Nox", "value":[
] }, { "type":"string", "id":"Supplier_ID", "value":[
] }, { "type":"string", "id":"NPJobNumber", "value":[
] }, { "type":"string", "id":"Note", "value":[
] }, { "type":"string", "id":"Supplier", "value":[
] }, { "type":"string", "id":"GIBSerialNumber", "value":[
] }, { "type":"string", "id":"OEMSerialNumber", "value":[
] }, { "type":"string", "id":"SKEDAMACerailNumber", "value":[
] }, { "type":"string", "id":"Equipment_Code", "value":[
] }, { "type":"string", "id":"Technology_Code", "value":[
] }, { "type":"string", "id":"GIB_Status", "value":[
] }, { "type":"string", "id":"Cost_ID", "value":[
] }, { "type":"string", "id":"Channel_ID", "value":[
] }, { "type":"string", "id":"Installation_Date", "value":[
] }, { "type":"string", "id":"CSAContractID", "value":[
] }, { "type":"string", "id":"RMDServiceLevel", "value":[
] }, { "type":"string", "id":"RMDContractService_Type", "value":[
] }, { "type":"string", "id":"RMDContractID", "value":[
] }, { "type":"string", "id":"PerformanceCalculationPlatform", "value":[
] }, { "type":"string", "id":"PerformanceCalculationConfigured", "value":[
] }, { "type":"string", "id":"Static_Pulsations", "value":[
] }, { "type":"string", "id":"PerformancedataAcquisition", "value":[
] }, { "type":"string", "id":"Sesimic_Vibration", "value":[
] }, { "type":"string", "id":"SesimicVibrationfequency_Analysis", "value":[
] }, { "type":"string", "id":"Radial_Vibration", "value":[
] }, { "type":"string", "id":"RadialVibrationfequency_Analysis", "value":[
] }, { "type":"string", "id":"Axial_Displacements", "value":[
] }, { "type":"string", "id":"Vibration_Notes", "value":[
] }, { "type":"string", "id":"Note", "value":[
] }, { "type":"string", "id":"CompressionPhaseNo", "value":[
] }, { "type":"string", "id":"id", "value":[
] }, { "type":"string", "id":"MANUFACTURER_ID", "value":[
] }, { "type":"string", "id":"MODELID", "value":[
] }, { "type":"double", "id":"TripInternalLimit", "value":[
] }, { "type":"double", "id":"TripNotificationPenality", "value":[
] }, { "type":"double", "id":"AnomalyNotificationTimelimit", "value":[
] }, { "type":"double", "id":"AnomalyInternalLimit", "value":[
] }, { "type":"double", "id":"AnomalyNotificationPenality", "value":[
] }, { "type":"string", "id":"MonitoringActivationStart_Date", "value":[
] }, { "type":"string", "id":"MonitoringContractStart_Date", "value":[
] }, { "type":"string", "id":"MonitoringActivationEnd_Date", "value":[
] }, { "type":"string", "id":"MonitoringContractEnd_Date", "value":[
] } ] }, { "id":"Compressors", "name":"Compressors", "description":"Compressors", "ccomClass":"ASSET_TYPE", "parent":"Machine", "reservedProperties": { "familyType": "", "equipmentType": "", "make": "", "model": "", "series": "", "serialNumber": null, "maintenanceCriticalityRiskScore": 7, "faultMode" : "" }, "properties":[
] }, { "id":"RotatingCompressor", "name":"Rotating Compressor", "description":"Rotating Compressor", "ccomClass":"ASSETTYPE", "parent":"Compressors", "reservedProperties": { "familyType": "Compressors", "equipmentType": "Rotating Compressors" }, "properties":[
] }, { "id":"CentrifugalCompressor", "name":"Centrifugal Compressor", "description":"Centrifugal Compressor", "ccomClass":"ASSETTYPE", "parent":"Rotating_Compressor", "reservedProperties": { "familyType": "Compressors", "equipmentType": "Centrifugal Compressors" }, "properties":[
] }, { "id":"2BCL", "name":"2BCL", "description":"2BCL", "ccomClass":"ASSETTYPE", "parent":"CentrifugalCompressor", "reservedProperties": { "make": "GE", "model": "BCL", "series": "2BCL", "maintenanceCriticalityRiskScore": 7 }, "properties":[
] }, { "id":"2MCL", "name":"2MCL", "description":"2MCL", "ccomClass":"ASSETTYPE", "parent":"CentrifugalCompressor", "reservedProperties": { "make": "GE", "model": "MCL", "series": "2MCL", "maintenanceCriticalityRiskScore": 7 }, "properties":[
] }, { "id":"3BCL", "name":"3BCL", "description":"3BCL", "ccomClass":"ASSETTYPE", "parent":"CentrifugalCompressor", "reservedProperties": { "make": "GE", "model": "BCL", "series": "3BCL", "maintenanceCriticalityRiskScore": 7 }, "properties":[
] }, { "id":"3MCL", "name":"3MCL", "description":"3MCL", "ccomClass":"ASSETTYPE", "parent":"CentrifugalCompressor", "reservedProperties": { "make": "GE", "model": "MCL", "series": "3MCL", "maintenanceCriticalityRiskScore": 7 }, "properties":[
] } ] }
Asset Instances
After you define your classifications, you can create instances of those classifications.
Example Instance
The general structure of this asset model is given by:
The following code samples illustrate instances for classes Company and Region.
{
"instances":[
{
"id":"c4837964-27fb-4f98-91a2-2c6e406ca1fe",
"name":"Acme Inc.",
"description":"",
"classification":"Company",
"properties":[
{
"type":"string",
"id":"customer_address",
"value":[
"2336 Camino Ramon"
]
},
{
"type":"string",
"id":"contract_information",
"value":[
""
]
},
{
"type":"string",
"id":"city",
"value":[
"San Ramon"
]
},
{
"type":"string",
"id":"contracttype",
"value":[
""
]
},
{
"type":"double",
"id":"contract_duration",
"value":[
""
]
}
],
"ccomClass":"ENTERPRISE"
},
{
"id":"rnk6fdj98-Hkshdnks67",
"name":"North America",
"description":"Regional information",
"classification":"Region",
"properties":[
{
"type":"string",
"id":"country",
"value":[
"USA"
]
},
{
"type":"string",
"id":"state",
"value":[
"CA"
]
},
{
"type":"string",
"id":"county",
"value":[
"Contra Costa"
]
}
],
"ccomClass":"SITE"
}
]
}
JSON Fields
Field | Reequirement |
---|---|
id | Must be unique and can only contain alphabets (a-z, A-Z), digits (0-9), underscores _, hyphens -, dots . and quotes ""id":"c4837964-27fb-4f98-91a2-2c6e406ca1fe" |
name | Must be provided to view or search by name in the APM application."name":"Acme Inc." |
classification | Must be an existing classification in the model"classification":"Company" |
comClass | The APM s95 adapter uses four ccomClass to represent the levels within the asset model hierarchy. Each class instance must be tied to one of the four ccomClasses ENTERPRISE, SITE, SEGMENT, and ASSET. It should also match the classification ccomclass. For example, if the ccomClass for the classification is Enterprise_type then the instance of that classification must have the ccomClass Enterprise."ccomClass":"ENTERPRISE" |
properties | id within properties is mandatory and can only contain alphabets (a-z, A-Z), digits (0-9), underscores _, hyphens -, dots . and quotes ". If the same property is defined at both class and instance levels, the property defined for the instance takes precedence over the class. For example, if the property color has the default value black at the classification level, the instance value red for color takes precedence for that instance. You can add properties directly to an instance. Therefore,the instance is not limited to properties defined in its classification. A best practice is to define static properties as part of the classification, and to define dynamic properties as part of the instance. "properties":[ { "type":"string", "id":"customer_address", "value":[ "2336 Camino Ramon" ] }] If you wish to add an asset alias, you can define it as a property as in the code example below. Note: If the property type is not defined as a string and ID as alias for an asset instance, the aliases will not be available on the APM user interface. "properties":[ { "type":"string", "id":"alias", "value":[ "Asset Alias 1" ] }] |
reservedProperties | Define reserved properties aka system defined attributes and default values for the asset instances only (instances with the ccomClass ASSET). Each reservedProperties block contains the list of expected reserved properties defined at the asset framework level. If you do not define the reserved properties block in your model, the system will automatically insert any required reserved attributes and set it to the default values."reservedProperties": { "state": "06", "status": "03", "familyType": "", "equipmentType": "", "make": "GE", "model": "EX8863", "series": "EX1", "serialNumber": "123456ABC", "faultMode": "5", "maintenanceCriticalityRiskScore": 7 }, |
location | Stores the geographical location of a company, a device, an equipment a site, a plant, a specific area (group of geolocation points)."location": { "geoPoints": [ { "name": "geo point 1", "order": 1, "latitude": 37.7799, "longitude": -121.978, "altitude": 150 }, { "name": "geo point 2", "order": 2, "latitude": 37.4965, "longitude": -121.7759, "altitude": 138 }, { "name": "geo point 3", "order": 3, "latitude": 37.5841, "longitude": -123.7578, "altitude": 138 }, { "name": "geo point 4", "order": 4, "latitude": 38.1133, "longitude": -120.4214, "altitude": 138 } ] } |
Relationships
Parent-Child Connection
- An enterprise object is the parent of one or more site objects.
- A site object is the parent of at least one segment or asset object. A site object cannot be a parent of another site object.
- A segment object is the parent of at least one segment or asset object.
- An asset object can be the parent of zero or more asset objects.
The following code example shows connections from between North America (Class: Region) and Acme, Inc (Class: Company) . You must define the child in the from {} block and the parent in the to{} block. The type field is parent and is defined in the to{} block.
"connections": [
{
"from": {
"id": "rnk6fdj98-Hkshdnks67",
"ccomClass": "SITE"
},
"to": [
{
"type": "parent",
"id":"c4837964-27fb-4f98-91a2-2c6e406ca1fe",
"ccomClass": "ENTERPRISE"
}
]
}
]