Skip to main content

Build an Asset BOM

Each BOM item links a part to a position on the asset, such as S1 Spindle bearings, with the quantity fitted there.

BOM script

addMachine1Bom.py: adds Machine 1's inserts, spindle bearings and coolant filter to its asset BOM, then prints the BOM.

Build Machine 1's BOM
  1. Open addMachine1Bom.py in the Ignition Designer Script Console and review the bomItems list:

    PositionPartQty
    T1 Turning tool insertsCF-INS-CNMG4324
    S1 Spindle bearingsCF-BRG-70142
    C1 Coolant filterCF-FLT-COOL101
  2. Run the script. It calls addAssetBomItem for each part and prints Machine 1's BOM.

  3. In Configuration → Inventory, open the Asset Parts List tab and find Machine 1's parts.

Model BOMs

If you had eight identical machining centers, you'd create an equipment model, give it the BOM once with addModelBomItem, and add only the differences to each machine's asset BOM.

Reference Materials: Bill of Materials

Bill of Materials​

A BOM defines which parts are associated with an asset, making it easy to look up what spares are needed for a given piece of equipment.

Model BOM vs Asset BOM​

Model BOMAsset BOM
ScopeAll assets of a given modelA specific asset instance
Use caseStandard parts list for an equipment typeOverrides or additions for a particular machine
FunctionaddModelBomItemaddAssetBomItem

Adding a BOM Item​

# Add a part to an asset's BOM
assetBomId, err = system.kanoa.inventory.addAssetBomItem({
'assetId': assetId,
'partId': partId,
'quantity': 2,
'uomId': uomId,
'positionCode': 'P1-A',
'positionName': 'Drive Shaft Bearing',
}, userId)

Retrieving a BOM​

# Full flattened BOM for an asset
bom = system.kanoa.inventory.getAssetBom({'assetId': assetId})

# Full flattened BOM for a model
bom = system.kanoa.inventory.getModelBom(modelId)