When preparing information about a product, various BOM forms may be required. In order to understand how our report generator (BOMapp) works, we must explain the main principles and a few concepts.
To put it very simply:
1.BOM type tells us how we will iterate through the tree.
2.Table starts a cycle that iterates through the whole data model tree from the beginning to the end.
3.Table.Data Description filters the data to be exported and indicates in which environment it should be done.
4.Item shows the specific table cell and the piece of data to be exported.
Now we will discuss this in more detail.
1.When generating reports, BOM generator iterates through the model structure and, with each step, arrives at an item/entry of the structure tree, i.e. an item. Several iteration options are available. For example, through all assembly items, through parts items only, through material entries only, etc.
2.BOM type. These are instructions for iteration through model structure. At the same time, it defines the type of report. For example, MS Excel sheet can have one specified BOM type. Two types are available:
a.Component BOMs. Component BOMs can be classified into three types:
i.Structured lists, which show all assemblies and parts and their interrelation. Workpieces and their materials can be treated as a separate entry. It depends on the selected table type.
ii.Part lists, also known as Plain BOM.
iii.Item lists, where all items of a model tree are given in a plain BOM. This means that workpieces and materials are included in the BOM as an item of the list rather than a property.
b.Material summaries, providing a summary of materials that make up the assembly. These are of three types:
i.Material Summary.
ii.Material Summary by Product in the general BOM.
iii.Material Summary, which is created by aggregating the materials used by code and thickness (Structured Material Summary).
3.Table: it is essentially a loop instruction for iteration through the model tree from beginning to end. The tables also contain keywords, which “pull out” the required properties of the current item in the model tree. The properties are then displayed in the appropriate place of the table. Thus, each table means the iteration through the whole model structure from beginning to end. Each BOM type has its own types of tables. A table can be viewed as a kind of data filter. The table type determines which items have to be transferred to the table or how detailed the iteration through the model structure has to be. For example, the part list should only display the parts produced of board-type material. Another case: the structured list should consider the part as the lowest item in one case and the workpiece in the second case. One MS Excel sheet may describe several tables of the same BOM type.
4.Keywords: arranged inside the table. This is an instruction specifying which item property has to be pulled out and entered in the given column. Each keyword starts with “Item”. A keyword is made up of word “Item”, dot and property name. This pulls out the required data from the item. For example, to find out the component name, you will simply have to enter the keyword {Item.Name}. If you need to find out the part length, enter the keyword {Item.Length}. To access the workpiece dimension, use the keyword {Item.FillWorkpiece.Length}. In order to avoid errors in compiling keywords, we recommend using the keyword auto-complete.
More information about the structure to be followed in a template is available here.

BOMapp template types and tables
An explanation how specific types and tables iterate through model data is provided below.
This keyword marks the beginning of the structured list and belongs to Components BOM class. Only one table selected out of available ones can be included in such BOM.
"Table.Start.CADHierarchy"
|
In this table type, model data are iterated as if they were CAD System model structure. This way, workpiece items are ignored. In such table, workpiece data is presented as item properties. For example, to find out the workpiece length, you will have to enter the keyword {Item.FillWorkpiece.Length}. Cover workpieces are indexed according to the sides of the part and presented by specifying the index of the side. The following indexes are used to describe the sides of a part:
▪Left
▪Right
▪Front
▪Back
▪Top
▪Bottom
For example, to open cover colour code of the left side of the part, you will have to enter the keyword {Item.CoverWorkpiece.Left.Material.Color.Code}. If no covers with such index could be found in the model data, MS Excel cell is left blank.
In this class of BOM tables, the user can use keywords that provide information about the structure hierarchy. In other words, we can know who is the parent/owner of the current item. For example, keyword {Item.Parent.Code} will give the item code, to which the item belongs.

|
"Table.Start.PartsWithMaterial"
|
The table of this type acts the same way as Table.Start.CADHierarchy, except the fact that during iteration through the model tree, items of purchased assemblies are ignored. In other words, this table allows presenting the assembly structure, listing only parts with assigned material without displaying purchased products.
In this class of BOM tables, the user can use keywords that provide information about the structure hierarchy. In other words, we can know who is the parent/owner of the current item. For example, keyword {Item.Parent.Code} will give the item code, to which the item belongs.
|
"Table.Start.PurchasedParts"
|
The table of this type acts the same way as Table.Start.CADHierarchy, except the fact that during iteration through the model tree, only the items of purchased assemblies are included in the BOM. In other words, this table allows presenting the assembly structure, listing only purchased products without displaying standard components that have assigned material groups.
In this class of BOM tables, the user can use keywords that provide information about the structure hierarchy. In other words, we can know who is the parent/owner of the current item. For example, keyword {Item.Parent.Code} will give the item code, to which the item belongs.
|
"Table.Start.FullHierarchy"
|
In this table type, all model data items are iterated. Therefore, one row represents each item in the BOM table. For example, here, the keyword {Item.Length} will provide the value of the item on which the cursor is placed. If it is a part, the part length will be given. If it is a workpiece, the length of the workpiece will be given. If the item does not have the requested characteristic (for example, size values cannot be provided for assembly items), for example, MS Excel cell is left blank.
In this class of BOM tables, the user can use keywords that provide information about the structure hierarchy. In other words, we can know who is the parent/owner of the current item. For example, keyword {Item.Parent.Code} will give the item code, to which the item belongs.

|
"Table.Start.ExtendedFullHierarchy"
|
In this table type, all model data items are iterated. In this case, information about a material is treated as an item. Therefore, one row represents each item in the BOM table. For example, here, the keyword {Item.Width} will provide the value of the item on which the cursor is placed. If the cursor is placed on a part, the value of the part width will be provided. If this is a workpiece, the value of the workpiece width will be provided. If this is a material, the material width will be given, e.g. width of edge band. If the item does not have the requested characteristic (for example, size values cannot be provided for assembly items), the text editor cell is left blank.
In this class of BOM tables, the user can use keywords that provide information about the structure hierarchy. In other words, we can know who is the parent/owner of the current item. For example, keyword {Item.Parent.Code} will give the item code, to which the item belongs.

|
"Table.Start.CompositeParts"
(Woodwork for Inventor only)
|
This table is used only for parts that include composite workpieces. Composite workpiece is a workpiece made of parts that are glued together and, if necessary, additionally processed to obtain the final shape of the part. These parts are iterated in a similar way as an assembly by scanning through the parts only, i.e. through the composite part itself and the workpieces that make up the part.
|
"Table.Start.MultilayerParts"
|
This table is used only for parts that include multilayer workpieces. A multilayer workpiece is made by gluing together several boards. So multilayer workpieces are made up of several other board workpieces.

|
|
This keyword marks the beginning of the structured list and belongs to Components BOM class. BOMs of this type always scan the model data by iterating through part items ignoring assembly items. Several tables can be composed in a single BOM of this type. Each table outputs only the parts of its intended material type to which the material from the CAD extension is assigned. For example, all parts made of board will be presented in Table.Start.Board table. Parts made of other materials will be presented in the appropriate tables. This allows sorting the parts in an orderly fashion by the type of material of which they are made. In such table, workpiece data is presented as item properties. For example, to find out the workpiece length, you will have to enter the keyword {Item.FillWorkpiece.Length}. Cover workpieces are indexed according to the sides of the part and presented by specifying the index of the side. The following indexes are used to describe the sides of a part:
▪Left
▪Right
▪Front
▪Back
▪Top
▪Bottom
For example, to open cover colour code of the left side of the part, you will have to enter the keyword {Item.CoverWorkpiece.Left.Material.Color.Code}. If no covers with such index could be found in the model data, for example, MS Excel cell is left blank.

"Table.Start"
|
The table presents all parts.
|
"Table.Start.Solid"
|
The table presents parts made of Solid material.
|
"Table.Start.Board"
|
The table presents parts made of Board material.
|
"Table.Start.LaminatedBoard"
|
The table presents parts made of Laminated board material.
|
"Table.Start.MultilayerBoard"
|
The table presents parts made of Multilayer board material.
|
"Table.Start.DesktopBoard"
|
The table presents parts made of Desktop material.
|
"Table.Start.Rod"
|
The table presents parts made of Rod material.
|
"Table.Start.Veneer"
|
The table presents veneer workpieces necessary to cover parts in a product. This table is unique, because it iterates through Veneer workpieces only.
|
"Table.Start.VacuumFilm" (JoinerCAD only)
|
The following table shows the Vacuum Film blanks needed to cover the surface of the part.
|
"Table.Start.MultilayerCover" (JoinerCAD only)
|
The following table shows the Multilayer cover blanks that are applied to the surface of the part. These blanks combine several coatings and are presented as a single blank (e.g. Primer+Paint+Varnish).
|
"Table.Start.Units"
|
The table presents Purchased products.
|
|
The keyword starts a BOM from the Components BOM class. BOM of this type iterates through all model data items. Several tables can be composed in a single BOM of this type. Different from “BOM.PartsList”, where only the parts are iterated, “BOM.ItemsList” iterates through all items of the model data tree. Therefore, the tables allow the user to present the selections alone in a separate list or view the listed materials. Another feature of this BOM is that it allows viewing the parts, from which the multilayer board is made up, and the workpieces of individual boards, which are included in the tables. Later on, information about parts, from which the boards are made up, can be derived accordingly.

"Table.Start"
|
The table presents all iterated model items.
|
"Table.Start.Assemblies"
|
The table presents all Assemblies in the BOM.
|
"Table.Start.Solid"
|
The table presents parts made of Solid material.
|
"Table.Start.Board"
|
The table presents parts made of Board material. Multilayer board workpieces are also included here.
|
"Table.Start.LaminatedBoard"
|
The table presents parts made of Laminated board material. Multilayer board workpieces are also included here.
|
"Table.Start.MultilayerBoard"
|
The table presents parts made of Multilayer board material.
|
"Table.Start.DesktopBoard"
|
The table presents parts made of Desktop material.
|
"Table.Start.Rod"
|
The table presents parts made of Rod material.
|
"Table.Start.Veneer"
|
The table presents Veneer workpieces necessary to cover parts in a product. This table is unique, because it iterates through Veneer workpieces only.
|
"Table.Start.Units"
|
The table presents Purchased products.
|
"Table.Start.Materials
|
The table presents all materials, from which the product(s) is/are produced.
|
"Table.Start.VacuumFilm" (JoinerCAD only)
|
The following table shows the Vacuum Film blanks needed to cover the surface of the part.
|
"Table.Start.MultilayerCover" (JoinerCAD only)
|
The following table shows the Multilayer cover blanks that are applied to the surface of the part. These blanks combine several coatings and are presented as a single blank (e.g. Primer+Paint+Varnish).
|
|
The keyword starts a BOM presenting information about materials. In this case, the program iterates through items in the material table. Keywords can be used to access all characteristics of the material, including quantity of each material necessary to produce the product described in the model data. Quantities are presented with the appropriate units of measurement.
.

In this type of BOM, several tables can be composed on a single sheet. Each table type presents a summary of the specified type of materials.
"Table.Start"
|
The table presents all materials.
|
"Table.Start.Solid"
|
The table presents Solid materials.
|
"Table.Start.Board"
|
The table presents Board materials.
|
"Table.Start.LaminatedBoard"
|
The table presents Laminated board materials.
|
"Table.Start.MultilayerBoard"
|
The table presents Multilayer board materials.
|
"Table.Start.Desktop"
|
The table presents Desktop materials.
|
"Table.Start.Rod"
|
The table presents Rod materials.
|
"Table.Start.Veneer"
|
The table presents Veneer materials.
|
"Table.Start.EdgeBand"
|
The table presents Edge band materials.
|
"Table.Start.Paint"
|
The table presents Paint materials.
|
"Table.Start.Units"
|
The table presents a list of Purchased products.
|
"Table.Start.VacuumFilm" (JoinerCAD only)
|
The table presents Vacuum film materials.
|
"Table.Start.MultilayerCover" (JoinerCAD only)
|
The table presents Multilayer cover materials.
|
|
"BOM.MaterialsSummaryByProduct"
The keyword starts a BOM presenting information about materials in the same manner as in BOM.MaterialSummary BOM. However, here, information about materials is broken down by products included in the model data. As described above, several product model data BOMs previously generated by BOMapp can be merged.
BOM.MaterialSummaryByProduct BOM is made up of material summary BOMs for each product. Where it is inconvenient to create a separate .wbom file for each product and later merge these files to create uniform model data, this can be done by opening a CAD assembly in the system and generating its BOM. For example, you have an Autodesk Inventor assembly – a kitchen furniture set, and you want to generate material summary BOM for each cabinet.
Now, BOM generator will treat each first-level component as a product that requires a separate material summary. Quantities are presented with the appropriate units of measurement.
|
The keyword starts a BOM that structurally outputs information about the quantities of material, the different thicknesses of the specific material and, consequently, what parts are required with each thickness. This allows a structured output of the materials used, the thicknesses and quantities needed in general or for specific parts.
|