Skip to main content
An mBOM item represents the bill of materials required to construct a part. A part has an mBOM made up of many mBOM items, which dictate the subparts used in the part’s construction. You can think of parts as a tree structure, where the nodes are part objects and the edges are mBOM items. The root of the tree is a part representing a completed assembly. Its mBOM is the parts used in its construction. Each of those parts can have its own mBOM. Maintaining this tree structure through the mBOM and subsequent aBOM is a vital part of ION.

mBOM items

mBOM substitutes

An mBOM substitute is a valid alternative that can be used in place of the defined part. Each mBOM item can have many mBOM substitutes, which are subpart replacements for that specific subpart.

Query an mBOM item

The queries below list mBOM items by a filter or get a specific mBOM item. It is often more effective to query the mBOM relation through a part object. List mBOM items with a filter:
Set the filter variables:
Get a single mBOM item by ID:

Explode a multi-level mBOM

mbomExplosion returns every descendant line of a root assembly’s mBOM in one request, so you don’t have to walk the tree one request per node.
Set the variables:
Each node describes one line of the exploded tree: Lines come back depth-first, so you can rebuild the tree, or write a CSV, straight from the order they arrive in. partId is required. mbomId is optional and sets the version used for the root level only: pass it to explode a specific version, or omit it to use the part’s released mBOM, falling back to its latest when there is no released version. Nested levels always resolve released-else-latest. Passing an mbomId that belongs to a different part returns a validation error.

What the results leave out

Three cases drop lines from the response without returning an error, so check for them before treating a result as a complete tree:
  • Repeated parts. If a part already appears higher in the same branch, the line for it is left out of the results entirely, rather than returned without its children. A cyclic mBOM terminates instead of looping.
  • Export-controlled parts. When you aren’t allowed to see an export-controlled part, its line is omitted along with everything below it. If the root assembly itself is export-controlled, the query returns no lines at all, which reads the same as an assembly that has no mBOM.
  • Very deep trees. Explosion stops after 100 levels. Anything deeper is dropped silently.

Query an mBOM substitute

The queries below list mBOM substitutes by a filter or get a specific mBOM substitute. List mBOM substitutes with a filter:
Set the filter variables:
Get a single mBOM substitute by ID:

Create an mBOM item

An mBOM item defines which parts and how many of those parts are required to build a new part. The parent is the relation to the part being built, and the part relation is the part required in the build. The quantity value must be greater than 0. Returns the newly created mBOM item. Create the mBOM item with this mutation:
Set the variables:

Update an mBOM item

You can update the quantity of an mBOM item and its associated part. Returns the updated mBOM item. Update the mBOM item with this mutation:
Set the variables:

Create mBOM substitutes

Create a valid substitution for a specific part within an mBOM. Any parts listed with mBOM substitutes do not raise a validation error if they are attached to an aBOM instead of the part specified in the original mBOM item. Create the mBOM substitutes with this mutation:
Set the variables:

Delete an mBOM item

You can delete an mBOM item unless it has already been used in the construction of an aBOM. Returns the ID of the deleted mBOM item. Delete the mBOM item with this mutation:
Set the variables:

Delete an mBOM substitute

Delete an mBOM substitute. Returns the ID of the deleted mBOM substitute. Delete the mBOM substitute with this mutation:
Set the variables: