Use the Onshape Bill of Materials (BOM) functionality to automatically create a BOM from any workspace Assembly. You can insert parts and assemblies into an Assembly post-release, from an Onshape version, or assemble the parts and sub-assemblies and then release the Assembly all at once. For more information on Release management, see Release Management.

Onshape BOMs include a default set of properties as columns, and you can add or remove columns at will. You can also define Custom Properties and include those in the BOM, as well as supply Display names for all Onshape-supplied properties through the Custom properties page of Company/Enterprise settings.

Your company or Enterprise administrator can create a default template to use for your Bill of Materials.

Loading and viewing the table

All Onshape Assemblies have a BOM table icon on the far right of the graphics area, below the View tools icon.

  1. In an Assembly, click the BOM table icon on the right edge of the graphics area.

    BOM Table Icon

  2. When the table opens, Onshape retrieves the data for the Assembly and populates the table (if there are parts or assemblies present, see the top example below). If no parts or assemblies are present, Onshape opens with default column names (properties) displayed (see the bottom example below):

    example of loading and viewing the table

    Bill of materials with parts listed shown on a browser, above

    Screenshot of BOM table in iOS

    Bill of materials with a part listed shown on iOS, above

    example of loading and viewing the table

    Bill of materials with no parts listed shown on a browser, above

  3. To populate an empty BOM, simply create your assembly in the Assembly tab, following the instructions in Insert Parts and Assemblies.
  4. In the BOM panel, select how to view the information (through the BOM type menu):
    • Flattened - This view provides a simple list of parts by item number, with no indication of subassemblies.
    • Structured - This view provides a list of parts including indication of expandable subassemblies. Subassemblies are indicated with small right-facing caret; for example:

      When viewing in Structured format, double-click the cell with the caret (the subassembly) to expand the list below the cell and see the parts included in the subassembly, labeled with the subassembly item number followed by a dot and then the part item number (9, 9.1, 9.2, and 9.3 in the example below):

      example of double clicking the cell with the subassembly to expand the list below

      The item numbers assigned to the subassemblies and parts reflect the order of the instances in the Instances list. If you reorder the instances in the list, the BOM table updates to reflect that new order.

      Before, 002c-Oil Tank Nozzle is seventh in the Instances list and item number 7 in the BOM table:

      example of Instances list before being reordered

      After the part is moved to first place in the Instances list, it is updated to item number 1 in the BOM table:

      example of Instances list after being reordered

Overridden computed properties (and properties that are aggregated from overridden computed properties) are indicated by an icon next to the property, with a tooltip upon hovering over the icon.

Sorting BOM table items

You can sort items in the BOM table alphanumerically by a column variable. Each column variable heading cell act as a three-way toggle, from (1) unsorted to (2) ascending sort order to (3) descending sort order. Double-click on the header to toggle from one sort state to the next.

BOM table items sorted by ascending (left) and descending (right) Quantity.


  • The Item column is fixed and cannot be sorted.
  • Table data can only be sorted by one column at a time.

Locating items in the model and Instances list

To locate items from your Instances list in your model, click the item name in the Instances list and the selected item is highlighted in the model. Concurrently, in the BOM table, the associated item row is highlighted and scrolls into focus. Alternately, click the item name in the BOM table, and the selected item is highlighted in the model and Instances list.

Generating part numbers

If you have automatic part numbering turned on in the Numbering schemes settings, in a BOM you can:

  • Generate part numbers for a particular part - Right-click the Part number cell of the part and select Generate next part number.
  • Generate part numbers for any parts in the table that are missing part numbers - Right-click the Part number column header and select Generate missing part numbers.

Switch to a BOM item's Part Studio, Assembly, or open its linked document

Right click on the BOM item's row and select:

  • Switch to Part Studio/Assembly - Displays when the BOM item is located in a tab in the current document. The BOM item's Part Studio or Assembly tab opens in the current browser tab.

    Bom table - Switch to Part Studio

  • Open linked document - Displays when the BOM item is located in a linked document outside the current document. The BOM item's linked document opens in a new browser tab.

    BOM table - Open linked document

Additional table data

Item number, Quantity, Part number and Description are the default properties displayed for parts and subassemblies as columns in the BOM table. You can add more columns according to the properties defined for your account.

  1. Click the Add column drop down and select a property to insert from the list. Additional columns are inserted at the far right side of the table.
    • The Category column cannot be added if the property is multivalued.
    • Any Category that can be edited via the Properties dialog can also be edited via the BOM table if added as a column.
  2. For properties marked as editable (in your account Properties), you can click in the cell and add data. This data is saved for the specific part, in the specific property and is available throughout your document and company for that part.

    For example, you can enter information in the Vendor cell for each part. That information is saved in that part's Properties, Vendor field.

    The Vendor cell with a value in a BOM table:

    example of the Vendor cell with a value in a BOM table

    The Properties dialog for the part:

    example of a Properties dialog

    When creating a property (through the Properties tab in your account settings), you can mark it Edit value in workspace, Edit value in version or both. If you mark it Edit value in version only, you can edit that value in a BOM table for any released parts since released parts become part of a version. However if Edit value in version is not marked, you would have to branch a workspace from that version, edit the values, then either create a version, or re-release the parts.

    A Standard content instance cannot be edited from the BOM table, and is grayed out. To edit a standard content instance, right-click on the instance in the Instances list and select Edit standard content instance. See Editing the standard content instance for more information.

  3. To choose to exclude a specific part or subassembly and its corresponding data from the BOM table without deleting it from record: right-click in the row and select Exclude from BOM. The row of data is removed completely from the table but the part still exists in the Assembly. The remaining items are renumbered accordingly.
  4. To leave a record in the table of the information that's being excluded, you can click on the overflow menu at the top right of the table and select Show excluded. This displays the row in the table. However, the item number is replaced with a dash, indicating that the item is not included. This construct works the same for subassemblies; when a subassembly is excluded, all the of the parts are also excluded.
  5. When items are excluded from the BOM, the remaining items are renumbered accordingly.
    To include an item in the BOM again, select Show excluded, then right-click the row to re-include and select Include in BOM.

  6. Another way to exclude/include items from a BOM is to use the Exclude from BOM checkbox in the parts Properties dialog.

You can choose how to list a subassembly in a BOM, either as the assembly and its components, as the assembly only, or as the components only:

  1. Open the Properties dialog for the Assembly (the tab or the subassembly listed in the Instances lists).

  2. Scroll to the Subassembly BOM behavior field:

    Assembly Properties dialog

  3. Select one of the options:

    1. Show assembly and components - In a Structured view of the BOM, the assembly is listed along with individual line items for each of the assembly components.

    2. Show assembly only - In a Structured view of the BOM, only the assembly is listed (no components).

    3. Show components only - In a Structure view of the BOM, only the components are listed (no assembly line item).

  4. Click Apply to register the change, or Save to register the change and close the dialog, or Close to close the dialog without registering the change.

The changes to the Assembly property affect all BOMs the assembly is inserted into, including BOMs in drawings.

Adding Items

You can insert non-geometric items (items not modeled in CAD, like glue, tape, paint, thread locker, etc) into your bill of material, through the BOM panel in an Assembly tab. Onshape refers to these types of entities simply as items.

There is some setup required in order to have the information available for insertion into the bill of material. Refer to Managing Your Onshape Professional Subscription if you have a Professional subscription or to Managing Your Onshape Enterprise Subscription if you have an Enterprise subscription. Once you have items added to your subscription (in your company/enterprise settings Properties), you can follow these instructions to insert those items into a bill of material within an Assembly tab.

  1. In the Bill of Material panel, select the Insert items icon at the top of the panel:

    Bill of Materials Table with arrow pointing at Insert Items Icon

  2. In the dialog:

    Insert Items Dialog

  3. Select the item to include in the BOM, and the quantity. You can search the items and also filter by classification (click the down arrow next to Classification all).
  4. Click Insert to add the selected items to the BOM.
    1. When you click Insert, the item is added to the Items list in the Instances list first. You can click Undo to remove items, if you change your mind about an item.
    2. When you click the checkmark to accept your actions and close the dialog, the items appear in the BOM panel.

    Instances List

    Bill of Materials Table

    You can edit the items through the Instance list.

    Right-click an item to:

    • Edit - Change the quantity
    • Suppress - Temporarily take the item out of the BOM (and assembly)
    • Add comment - Add a comment to the assembly that directly references the item
    • Delete - Delete the item from the assembly and the BOM

Bill of Materials templates

Once you have edited the Bill of Materials format, you can save that as a template and use it.

  1. Click the three-dot menu in the upper right corner of the Bill of Materials table, and click Save as template...

  2. The Create BOM template dialog opens. Provide a Name for the template. This is mandatory.

    Create BOM template dialog

  3. Using the Property columns dropdown list, add the columns you require. The Item column is required and cannot be removed.

  4. Check All uppercase in Drawings to enforce uppercase column headings and Property strings when inserting BOM tables using this template in Drawings.

  5. Click Create to create the template. Click Cancel to close the dialog without creating the template.

New templates you create can be applied by clicking the Apply template dropdown at the top of the panel, and selecting a template from the list:

BOM 'Apply template' dropdown menu

The selected template is used in your Assembly's BOM table.

You may also have templates in that list created by your Company/Classroom/Enterprise administrator.

Export to CSV

Use the overflow menu's Export to CSV command to export the entire BOM table to a comma-separated file. If subassemblies are not expanded, the entire BOM will not be exported.

Formatting the table

Resize the table in the following ways:

  • Click and drag the left-most edge of the panel to resize the panel, larger or smaller. There are limits to how large and small you can make the panel.
  • Resize rows by clicking and dragging the column header border to the left or right. Note that the first column is stationary for reference; it cannot be moved or resized.
  • You can move any column to the right or left, or remove it from the table through the context-menu on the column name:

    example of Formatting the table

  • To add a removed column back to the table, use the Add column drop down at the top right of the panel.

Considerations around released or releasing parts

When using imported or released parts in an Assembly, the properties will display in the BOM table as read-only. To create a BOM with editable fields, you can branch from the version to create a new workspace. The fields in the BOM will be editable per the settings for each property (through the account settings).

When you insert released (revisioned) parts into the Assembly and then create the BOM table, the state property will be Released.

Using BOMs in drawings

You can insert Onshape BOM tables into your drawings. See the Insert BOM topic.