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. 


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
12 June, 2024

In today’s fast-paced manufacturing environment, companies are increasingly seeking ways to work in a more connected and efficient manner. The…

11 June, 2024

In my previous article, I briefly introduced you to upcoming OpenBOM enhancements related to product structure management and the introduction…

8 June, 2024

In the modern manufacturing and supply chain management environment, streamlining processes from engineering to procurement is vital. To support customer…

7 June, 2024

The common story is for manufacturers to outsource production overseas to take advantage of lower costs amongst other things. At…

6 June, 2024

One of the questions that often causes confusion in product development and manufacturing is change management. This topic has many…

5 June, 2024

The last two decades of SaaS development have changed the way customers are buying software. What was before a lengthy…

4 June, 2024

Modern manufacturing requires streamlining product information management and the application of efficient and robust cost and ordering processes. Cost calculation…

31 May, 2024

The demand for digital solutions in hardware product development has never been higher. As projects grow in complexity, the traditional…

30 May, 2024

In the world of precision engineering and underwater filming equipment, efficiency and reliability are paramount. Gates Underwater Products, a leader…

To the top