BOM Import
Import a bill of materials (BOM) as a project
Build a new XYCLE project directly from a bill of materials spreadsheet—BOM import turns each part and sub-assembly into a linked Unit Process, with materials and manufacturing steps pre-populated as inventory items.
What gets imported
BOM import includes:
- A Unit Process for each
Part name, linked to its parent according toTree level—the finished product sits at the top, sub-assemblies flow into it - A material line (INPUT item) for each
Material, with quantity and weight combined into a value and default unit ofkg - A named breakdown of manufacturing steps, when Manufacturing process lists more than one step separated by
;—each becomes its own input line against the same material - Reuse of a sub-assembly across more than one parent part, without duplicating its own materials
What does NOT get imported
The following are not included:
- Region—BOM import never sets a region on inventory items; add regions manually after import if you need region-specific data
- Impact or emission factors—unless you select a mapping preset during import, items arrive with no EFs assigned
- Unit conversion—weights are assumed to already be in kilograms; there's no conversion from other units
- The Notes column—present in the template but ignored by the importer
- Waste and emission items—BOM import only ever creates product, sub-assembly, and material items; add waste or emissions manually afterwards
- Anything beyond the first sheet—only the first sheet in the workbook is read
N.b. XYCLE detects a BOM file automatically by checking that cell A1 of the first sheet reads exactly Tree level. If that cell is missing, misspelled, or not in A1, the file is treated as a standard XYCLE import instead and will likely fail validation with a "column is missing or misspelled" error rather than a clear "not a valid BOM file" message.
How to import a BOM
- From the project list, select Create project, then Import from template.
- In the Import project from template dialog, upload your BOM spreadsheet under Template (.xlsx only, with Tree level in cell A1 of the first sheet).
- Enter a project name, set visibility, and optionally choose a folder and a mapping preset.
- Review any warnings shown beneath the file field, then select Create project.
- XYCLE opens the new project's canvas, with your BOM's parts as linked Unit Processes and each part's materials as inventory items, ready for further editing.
Compatibility
BOM import works with:
- Mapping presets—select one in the import dialog to assign emission factors to matching items automatically as part of the import
Troubleshooting
"The spreadsheet is empty" The parsed file produced no Unit Processes or no inventory rows. Check that data starts on the first sheet and that Tree level and Part name are filled in for each part.
"Duplicate Unit Processes found" Two rows resolved to the same Part name in a way the importer couldn't merge. Check for inconsistent spelling or casing across rows for the same part.
"The [column] column is missing or misspelled" This usually means the file wasn't recognised as a BOM template—check that cell A1 of the first sheet reads exactly Tree level.
"Circular dependency detected" A part's structure loops back on itself (e.g. a sub-assembly listed as its own parent). Check the Tree level values reflect a genuine top-to-bottom hierarchy.
A part or material isn't linked to the rest of the structure This shows as a warning rather than a blocking error, and you can still create the project—fix the link afterwards in the canvas.
|
If you have a duplicate... |
What happens |
|
Part name, reused under two different parent parts (e.g. the same bracket used in two assemblies) |
The sub-assembly is created once, not twice. Its materials are only processed on the first occurrence—any material rows attached to the second occurrence are skipped. The link to the second parent is silently dropped when the project is saved—only the first parent keeps a working link to this part. |
|
Part name, repeated under the same parent |
Treated as the same Unit Process—no second product line is created. Materials on the repeated row are skipped. |
|
Tree level, shared by two different part names |
Expected, not a duplicate issue—every part at that level is treated as a sibling under the same parent. |
|
Material, repeated for the same part |
Kept as two separate input lines—the importer doesn't merge them, so both quantities count towards the part's total. |
|
Material, used under different parts |
Kept independently—materials are local to their own part, so there's no merging or conflict across parts. |
N.b. if you're relying on a sub-assembly being reused under more than one parent, check the canvas after import—the second parent's material-consumption line will show with nothing feeding into it, even though import validation reported no error.