Import a CAD BOM

Most CAD applications export a bill of materials (BOM) in a convenient plain text format called "comma-separated values" (CSV). PDXpert defines a standard set of column headers for importing the BOM into a PDXpert assembly record.

Use CSV when your CAD tool gives you the choice between exporting CSV and other formats like Excel. Editing the file in Excel may damage the CSV file if it contains text that Excel considers numbers and dates. For example, Excel may convert part number 00123 to 123, or 2021-01 to January 2021. Some versions of Excel can also have problems reading and saving ANSI Extended and Unicode characters.

If you want to import many BOMs from a data source like an ERP/MRP, use the Batch Importer tool.

The import file doesn't make any new parts; it makes relationships between an assembly and its immediate child parts (a single-level BOM).

All items must exist in the database, and are matched using the same Item uniqueness system rule that detects duplicate parts.

To import a BOM Markup from a file §

A BOM import can be performed only within the Markup list, and only before the assembly's pending iteration is released. The imported BOM can include pending or released parts, but not canceled parts.

  1. When you have your BOM file ready to be imported, make a new part record or open an existing pending iteration. Select the part's BOM page.

    Within the Markup workspace, open the context menu, select the Import Markup from File command.

    The Import Markup from File dialog opens.

  2. Browse to your import file, and then click the Open button. Your file is imported into the Markup list.

    Your import file must conform to PDXpert's standard import format as specified below.

    Always manually edit the BOM after importing a new file. Whenever a new file is imported, the BOM list is first reset to its starting contents.

    If you discover an error after you accept the import, you can manually edit the records that you've imported, or import a new file to replace all edited rows on the markup.

Import file format §

Configure your CAD software to export its BOM using the following import format. The format can accept BOM files with very little information. Most columns are optional; if the column is omitted or the row's value is empty, the system uses default values as shown.

A column name — which your exporting software may call the column header or label — is recognized only if it exactly matches the column name shown. All non-matching column names are ignored.

Import files must have data in every row. Empty rows may cause an import to fail.

Column definitions for importing BOM markup files
Column name Data type Value if empty Description
ChildClass string Part or Document Part

If not specified, then the child item's Class is a part.

Only parts can be added to the BOM list; a document row is ignored. Unless your BOM data source includes documents in the file, this column can be omitted.

ChildOwner Organizations member name default member (always the Home organization) Identifies the organization that is primarily responsible for the child item's specification and which issues the item Number. Unless the Allow partner parts on BOM system rule is marked, this should be omitted.
ChildType Part Types member name default member

If not specified, then the appropriate type collection is determined by the child item's Class, and the default member of the resulting type collection is used to match the record's Type selection.

Only parts can be added to the BOM list; a row with ChildClass of Document is ignored.

ChildNumber string row is skipped

REQUIRED: If the value is empty, the row is not imported.

If the Find column is not included in the markup file, the ChildNumber value is used to identify differences between the previous BOM and the new import rows.

Find integer ≥ 1 last find-item + 1 when importing first iteration

This value is given to the Find row identifier. A parent assembly cannot have two rows with the same Find number.

The import file's Find value provides an anchor for comparing the imported BOM revision to the previous BOM.

If you include a Find column, do not leave any row's Find value empty.

Quantity double ≥ 0 1.0 This value is given to the row's Quantity value, and represents the number of child parts required to produce a parent.
Unit Unit of Measure default member Include this column only when the Lock part default unit of measure on BOM system rule is cleared (not enabled). In this case, if the value is empty, then the part's Default unit of measure is applied.
RefDes string: length ≤ 32000 characters no value This value is the child part's RefDes ("reference designator") area, and should follow the rules for reference designators.
Notes string: length ≤ 32000 characters no value This value is the child part's Notes area.
Per string Per Assembly Must be assigned as Per Assembly, Per Setup, As Needed or remain empty.

A minimal CSV import file can be quite simple if your system's Item uniqueness specified by: system rule has only the Number and Organization checkboxes marked. For example:

ChildNumber,Quantity

101012,1

100315,6

100917,1

110019,4

When an assembly is first released, its rows are established as anchors for tracking row changes in later revisions of the assembly. As a BOM file is imported into a pending iteration, each imported row to be compared to the previous iteration's content. Any changes in the row are marked as Add or Remove, as appropriate.

As noted in the table above, differences between from the released BOM iteration to its new iteration can be identified by ChildNumber or by Find values.

  • If the import file includes the Find column, the system compares the previous row and the imported row at that Find value. Mechanical BOMs often use the Find number to identify the part's location in the assembly, regardless of its part number.

    To minimize the number of irrelevant changes on a new assembly revision, do not arbitrarily change the Find value on revisions to an imported BOM file. For example, new BOM components should not be inserted into the middle of the import list (which may change Find values in later rows), but added at the end.

  • If the import file does not include the Find column, the system uses the ChildNumber value to match the previous row and the imported row. Changes to a part number's quantity or other attributes are identified, and the Find value is ignored. This is used primarily in electronic assemblies, where the reference designators provide location information.

1142