Skip to main content

Overview

mBOM imports let you define multi-level part structures in a single CSV, from top-level assemblies down to individual components. ION supports two ways to describe how parts are nested: Depth notation and Level notation. ION automatically detects which one you are using based on the first column header in your CSV.

Import options

Columns

Ensure part numbers and revisions match existing records exactly. Part matching is case-insensitive.

Depth notation

Depth notation describes your BOM structure by indenting parts one level at a time, similar to how you might indent items in an outline. The top-level assembly is depth 1, its direct components are depth 2, their sub-components are depth 3, and so on. To move back up the tree and start a new branch, return to a lower depth number. Rows must be listed in the order they appear in the assembly. Each component must come after the assembly it belongs to. Example: An assembly (ASSEMBLY-100) contains a bracket and a panel. The bracket itself requires four bolts.
You cannot skip depth levels. For example, jumping from depth 1 directly to depth 3 is not allowed. Each component must be listed directly under its parent assembly.

Level notation

Level notation uses a numbering scheme, such as 1, 1.1, and 1.1.1, to explicitly identify where each part sits in the assembly tree. This is similar to how work breakdown structures or section numbering works. The number itself tells you the full path from the top-level assembly down to the component. Unlike Depth notation, rows can appear in any order because the level value fully defines each part’s position in the hierarchy. ION sorts and organizes the structure for you. Example: The same assembly as above, with rows intentionally listed out of order to show that ordering does not matter. Here, 1.1 (BRACKET-200) and 1.2 (PANEL-400) are both direct components of 1 (ASSEMBLY-100), and 1.1.1 (BOLT-300) is a sub-component of the bracket, regardless of the row order in the CSV.
Every parent level must exist somewhere in the file. For example, you cannot define 1.1.1 without also having a 1.1 row. However, the rows do not need to be in any particular order.

Cycle detection

ION automatically detects circular references in your mBOM. If assembly A contains part B and part B also contains assembly A (directly or through any chain of intermediate parts), the import fails with a validation error identifying the cycle. This check also applies to substitute parts. For general import behavior, empty cell handling, and error reporting, see Importers.