Generating a Custom Bill of Materials

This tutorial describes how to use the Report Manager to set up a Bill of Materials (BOM) report. The manipulation of data and columns and exporting to an Excel template are also covered.

Several component reports, such as the Bill of Materials (BOM) report and the Component Cross Reference report, can be customized in Altium Designer using the Report Manager. This facility allows you to sort and group the data gathered when the report is generated. You can export the report in various formats, such as a Microsoft Excel document or an Adobe Acrobat PDF, or use an Excel template to format the exported data. Reports can also be configured from an Output Job Configuration file, with the settings saved for easy re-use.
In this tutorial, we will look at using the Report Manager to set up a Bill of Materials in the Schematic Editor. The BOM report can also be generated from the PCB Editor. Use one of the example projects found in the Reference Designs folder of your Altium Designer installation (e.g. the 4 Port Serial Interface project) to complete the tutorial. Note that although referred to as the Report Manager dialog in this tutorial, the dialog name will change according to the type of report you are generating, e.g. Bill of Materials for Project [project_name] (PCB_document).

Creating a BOM Report

To create a Bill of Materials in the Schematic Editor:
1. With the required project or source documents open, select Reports » Bill of Materials. The Bill of Materials for Project [project_name] (PCB_document) dialog displays.
The dialog is divided into two main regions – the column lists on the left and the data region (grid contents) on the right. The data region displays information for each shown column that is generated when the report is initially run.
2. Use this dialog to build up your BOM, for example, by enabling the Show option next to the columns you want to be displayed in the report.

We will now look at ways of changing the look of the raw data to create a customized BOM.

Using the Report Manager Dialog

When you run a Bill of Materials or a Component Cross Reference Report, the Report Manager dialog displays to help you format your report. You can show, hide and move columns and then sort and filter the data within the columns before exporting your report.

Manipulating Columns

The left-hand side of the Report Manager dialog contains two sections - Grouped Columns and All Columns . The All Columns section lists all available columns that can be used in the report. These information columns are sourced from the properties of all components on the document (or the source documents if a project is open) for which the report is being generated.

Showing Columns


To show a column in the data section of the Report Manager dialog:
1. Enable the Show option next to a column's entry in the list to enable it. The column will appear in the data region of the dialog. Show the Comments column in the data region.
2. Each enabled column will list information for each of the components found in the source schematic document(s), where such information exists. If the component does not have any information for that particular property, the field will be blank.

Grouped Columns


You can choose to group components together by one or more specific columns of information. For example, in a Bill of Materials report, you may wish to group components by Footprint or Comment.
1. Click, drag and drop the desired information column from the All Columns section into the Grouped Columns section of the Report Manager dialog.
2. The column heading appears in the Grouped Columns section and the data is updated to display according to the new groups.

3. Click, drag and drop other columns as required into the Grouped Columns section.
4. If you add the LibRef and Comments columns to the Grouped Columns , you can then change the sorting order of the groups.
You could organize the grouping so that you could make a report for all CAP 2M (LibRef column) with the same value ( Comment column) and the same package ( Footprint column). To do this, click, drag and drop the Grouped Columns until they are in the order - Footprint , Comment and then LibRef .


By sorting and filtering the data, you can then define the limits for each of these columns.

Sorting the Column Order

The order of the columns in the data section of the dialog can be changed from the All Columns section or from within the data region itself. The order of the columns in the All Columns section is reflected by the order of the columns in the data region unless you change the columns directly in the data section.
To change the order of columns from the All Columns section:
1. Click, drag and drop a column name in the All Columns section to its new position in the list. Repeat until you are satisfied with the order of the columns.

2. The column in the data region are updated. For example, if you dragged the column name Quantity to the top of the All Columns list and Show was enabled, it would appear as the first column heading in the data section.
To change the order of columns from within the data section:

1. Click, drag and drop a column heading in the data section to its new position.
2. Note that when a column heading is selected for moving and a valid position is found, the two green arrows are displayed, showing where the column will be inserted.
If you wish to see all the columns within the Report Manager dialog, enable the Force Columns to View option.

Sorting Data within Columns

1. Click on a column heading (away from the far right drop-down arrow) to toggle the sorting of the information between ascending and descending order.
2. All columns will be affected, but the rows will be sorted according to the information column whose heading you click on.
Note that if not all the data is displaying within the column, right-click and select Column Best Fit [shortcut CTRL + F] to lengthen the width of each column according to the longest field entry.

Custom Filtering


You can apply filtering to show specific component entries.
1. Left Click on the far right drop-down arrow in a column's heading then either select from the individual row entries available, or select (Custom..), which displays the Custom AutoFilter dialog.
2. Specify which rows of information you want to show based on filter criteria you apply to the particular information column. In the simple example above, this filter will only display components with a LibRef which includes the letters RES. Click OK.
The drop-down arrow next to the LibRef column heading turns blue to indicate customization of this column.

3. A textual representation of the filter currently applied, e.g. (LibRef mask RES*), appears in the bottom-left corner of the data section of the dialog.
4. Clear the filter by clicking on the small cross to the left of the filter text.

Adding Database Information Directly to a BOM

Source information for a Bill of Materials (BOM) has, in the past, been taken from the property information of the placed components for the design. But that can lead to a lot of information attached to a schematic that is only ever used for the BOM. If your components are linked to an external database, the BOM Generator is able to extract record information directly from that database.
When configuring the Bill of Materials report using the Report Manager dialog, enable the Include Parameters from Database option. This option will only be available if one or more components in your design are linked to an external database. In the parameter listing, the icon is used to distinguish a parameter that exists for one or more placed components in a linked external database.

Adding PCB Information Directly to a BOM

Source information for a Bill of Materials (BOM) can be based on property information taken from the PCB in the event you need to customize and use the report generation for more than a BOM. An example would be for generation of a pick and place file where every placement machine wants the data (such as X, Y location) in a different column order and in different file formats.
When configuring the Bill of Materials report using the Report Manager dialog, enable the Include Parameters From PCB option. This option will only be available if there is a PCB document in the project file. In the parameter listing, the icon is used to distinguish a PCB parameter for one or more placed components in the project.
Note that when you have a project with multiple PCBs and you enable the Include Parameters From PCB option, the BOM Report Options dialog will automatically prompt you to select which PCB to include in the BOM report.

Exporting the Report

The grid content of the data section can be exported and a report generated by using the Export button in the Report Manager dialog.
1. Select a File Format from the drop-down list. When exporting the data using the Export option from the Report Manager dialog, the following file formats are supported:

  • CSV (Comma Delimited) (*.csv)
  • Microsoft Excel Worksheet (*.xls)
  • Portable Document Format (*.pdf)
  • Tab Delimited Text (*.txt)
  • Web Page (*.htm;*.html)
  • XML Spreadsheet (*.xml).
    2. If you want the relevant software application, e.g. Microsoft Excel, to open once the exported file has been saved, make sure the Open Exported option is enabled in the Report Manager dialog.
    3. If you want to have the generated report added to the project after it is created, enable the Add to Project option in the Report Manager dialog.
    4. Click on Export button in the Report Manager dialog and to generate and save the report in the appropriate format.

Using Excel Templates

If you want to export your data into an Excel template or to a PDF based on your Excel template, select a custom Excel template or use the supplied Excel templates.
1. If Microsoft Excel Worksheet file format is selected, the Template field becomes available in the Excel Options region of the dialog. Enter the required Excel template file (*.XLT) directly into this field or browse for it by clicking the ... button. The Template drop-down contains a range of default templates included in the installation.
For this tutorial, select the BOM Default Template.XLT from the drop down. This is saved in the Templates folder of your installation. The file can be specified with a relative or absolute path using the Relative Path to Template File option. For more information about template creation, refer to your Microsoft Excel documentation.

2. If you have the Open Exported option selected in the Report Manager dialog, the file will open in Excel after export.
3. Click the Export button and nominate a filename and location for your report and click Save. The report opens in Excel, formatted in the nominated Excel template.

  1. Click on the Project Information tab to display details about the report.

Using Excel Templates and Creating a PDF

You can export your BOM to PDF based on your Excel Template. To enable this option, select Microsoft Excel Worksheet file format and select your template. Finalize the process by creating a PDF Output Medium in the OutputJob Editor.
Altium Designer applies the following rules to determine the size of the spreadsheet to print to PDF:

  • Cells to the right of the right most column header are not included in the output.
  • Cells below the lowest text cell are not included, unless they contain horizontal borders and/or background colors and are not separated from the main section of the BOM by more than 10 blank rows.

Include Document and Project Parameters


Parameters are a universal feature of Altium Designer and can be added to the project, a document, a component, almost any object. Project and document parameters can be extracted from the design and included in the Bill of Materials. Document parameters are included with each component that comes from that document, and project parameters can be mapped to pre-defined fields in your Excel template using the string Field=ProjectParameterName, examples of which are shown in the image below.
There are also two PCB document fields that can be defined in the template:

  • Field=PCBDataSourceFullName – displays the full name of the PCB data source.
  • Field=PCBDataSourceFileName – displays the file name of the PCB data source.
    For more information about modifying templates, refer to your Microsoft Excel documentation.

Using Output Job files

You can also configure and generate a Bill of Materials report as part of an Output Job Configuration file (*.OutJob). An OutJob file allows you to create outputs and define output configurations for assembly, fabrication, reports, netlists and documentation exactly as required. OutJob files are managed using the OutputJob Editor. Create a new file of this type for the active project by:

  • Using the File » New » Output Job File command
  • Right-clicking on the project name in the Projects panel and choosing Add New to Project » Output Job File from the pop-up menu that appears.
    In the Report Outputs section you will see a Bill of Materials entry. To generate a BOM for the project, ensure that the Data Source is set to Project. Alternatively, you can generate a BOM for an individual document in your project. Click on the Data Source field and select a document from the drop down list.


Double-click on the entry to launch the Report Manager dialog, where you can customize the report and define the export format options as required. This dialog is the same as the one launched from Reports » Bill of Materials.
Before exporting your BOM, decide whether you want to generate your BOM, publish your BOM to PDF or print your BOM. This will dictate the Output Medium type.
Create an Output Medium or add the BOM to an existing Output Medium based on your requirements. You can create an Output Medium by:

  • dragging and dropping your output onto the Output Media column OR
  • copying and pasting your output onto the Output Media column OR
  • selecting the Add New Output Medium option, choose from Print, PDF or File Generation.
    A green line will link your output to your Output Medium, providing you with a quick, visual reference of the outputs included in each job. The same output can be used in a number of output media or you can create multiple BOM outputs with different configurations to use in different Output Media.

    To configure Print, PDF or File Generation Settings, right-click on your Output Medium and choose from either PDF Setup, Generated Files Setup or Printer Setup depending on your selection.
    Remember, if you are publishing your BOM to PDF based on an Excel template, to ensure your template follows the rules set out in the section, Using Excel Templates and Creating a PDF.
    Note: Settings defined in the Report Manager dialog when generating BOM from the Schematic or PCB are stored in the project file and are distinct from those defined for the same outputs in an OutJob file.