Flexible Bill of Materials Data Model

Oleg Shilovitsky
Oleg Shilovitsky
1 October, 2020 | 4 min for reading
Flexible Bill of Materials Data Model

The Bill of Materials is the most fundamental part of any PLM solution. Therefore, when designed OpenBOM, we paid special attention to how to create a model to hold product data (Bill of Materials) and to make it flexible and extendible. 

The data management architecture of OpenBOM is built using flexible data objects holding different data objects. These data objects are flexible and generic. OpenBOM provides predefined five data objects – Catalog, BOM, Vendor, Order BOM, and Purchase Order. The relationships between them create a logical data model supporting OpenBOM out of the box functions. However, objects and relationships can be extended. OpenBOM is using flexible real-time data schemas that can be configured at any moment of time by administrators and users. 

In this article, I will give you five easy steps to understand the OpenBOM data model. 

1- Item Database 

The foundation of all data in OpenBOM is a database of all item objects. The items are representing anything in your product (or what you need to build your product). Engineering items, Standard items, Purchased Items, etc. The classification of items is modeled by managing different catalogs. Each catalog can have a different set of attributes and so you create these catalogs and store data about items in these catalogs. 

A typical catalog in OpenBOM holds Part Number, Description, Cost, Unit of Measures, and Quantity on Hand properties. You can add more properties. This is an important part of data modeling – add information to the catalog. You can always extend it using the manual entry of automatic import and merge. 

Tip: The easiest way to create a catalog is to use the “Create Catalog” command. An alternative option is to import a catalog from Excel (or Google Spreadsheet). 

2- Bill of Materials 

BOM holds information about relationships about items. The simplest BOM is a list of items, which defines “one level” BOM. You can create it manually or import BOM from Excel or Google Sheet. It is important to understand the parent-child relationship. For the simplest BOM, the parent-child relationships are between the BOM (Item) and each item in this BOM.

Tip: The easiest way to create a BOM is to click on item in the catalog and then “OpenBOM Item’s BOM”. If BOM is available, it will be open, otherwise, you will be able to create a new one. 

3- Reference-Instance relationships 

Each item defined in the catalog can be used (instantiated) in many BOMs. OpenBOM holds the relationship and by doing so allows to BOM always to have an access to the most updated item record. This relationship is dynamically set using Part and Catalogs command in BOM, which is super flexible as you can change it on the fly and see multiple item options. 

Tip: You can see how powerful reference-instance dynamic relationships in OpenBOM by switching between 2 catalogs (prototype and production) and seeing how BOM cost calculation is changing on the fly. 

4- Product Structure 

A set of parent-child relationships is creating a product structure in OpenBOM. The product structure is dynamically visualized form multiple single-level BOMs, which can be edited together and independently. OpenBOM will manage these relationships automatically. To access it, you need to switch between “single-level” and multi-level BOMs in BOM user interface. 

Tip:  To explore product structure, open the top-level Bil of materials, and switch to Multi-level. You will be able to drill-down to the assembly levels. OpenBOM will visualize it in the indented form in the user interface. 

5-  BOM types (multi-level, single-level, flattened) 

There are three specific BOM types automatically supported by OpenBOM ( single-level, multi-level, and flattened). The single-level presents items of the specific assembly (BOM) with the part number. The multi-level allows you to drill down. Flattened is a quantity rollup from the selected top-level assembly (BOM) down. 

Tip: it is easy to understand BOM types by switching between muti-level and flattened. When you do so, OpenBOM calculates the quantity rollup. 

Conclusion. 

The OpenBOM data model is easy to understand.  Once you’ve got the foundation – items and BOM, parent-child relationships, and different BOM types, you can build any data model to support your engineering and product development functions.

Best, Oleg @ openbom dot com.

Want to learn more about PLM? Check out my Beyond PLM blog and PLM Book website. Read OpenBOM customer reviews on G2 Crowd to learn what customers are saying about OpenBOM. 

Related Posts

Also on OpenBOM

4 6
2 April, 2026

A SolidWorks model is essential. A BOM is essential. Drawings, PDFs, STEP files, and DXFs are essential too. Many teams...

2 April, 2026

In the previous article, I wrote that engineering teams usually do not lose control because CAD design is wrong. The...

2 April, 2026

In my experience, manufacturing companies that rush a new product introduction process usually pay for it later. They see production...

1 April, 2026

How file-based workflows, disconnected BOMs, and the limits of PDM combine to create a product data problem most engineering teams...

31 March, 2026

Last week I wrote about where product lifecycle knowledge gets lost, and I also published a longer piece on Beyond...

30 March, 2026

How to define part number strategy, revision control, and BOM types early in your OpenBOM rollout When companies start an...

27 March, 2026

If you’ve ever asked yourself, “what type of bill of materials do I actually need?”, you’re not alone. In my...

27 March, 2026

This guide explains the product release process in manufacturing – what it is, how it works, and how PLM software...

27 March, 2026

This guide explains how revision control works in multi-level Bills of Materials (BOMs): what it is, why it’s complex, and...

To the top