Importing a CAD bill of materials into PDXpert PLM software
PDXpert product lifecycle management software uses XML/XSLT to provide a very flexible means for importing bill of materials (BOM) files formatted as XML, CSV, Microsoft® Excel®, or other structured text. Most CAD applications can export a bill of materials directly, usually in a convenient plain text format called "comma-separated values" (CSV).
We'll describe the general approach to importing a CAD bill of materials file from a standard CSV file into a PDXpert assembly's bill of materials (BOM) list, called the structure.
To import a structure Markup from an external BOM file
A BOM import can be performed only within the structure's Markup list, and only before the pending assembly revision is approved and released.
Each CAD application exports its data (typically find or row ID, part number, quantity, units, perhaps reference designators or notes) in its own preferred file format (such as Excel, CSV, tab-delimited, XML). The selected import Data Transformation member tells PDXpert how to interpret the import file format.
-
When you have your structure file ready to be imported, create a new part record or revision, or open an existing pending revision. Select the part's Structure tab's Markup list.
-
Within the Markup area, open the context menu, select the Import Markup from File command, and select the appropriate import Data Transformation template. The Import Markup from File dialog opens.
-
Browse to your import file, and then click the Open button. Your file will be imported into the Markup list.
If you discover an error after you accept the import, you can modify the records that you've imported, or replace all of your changes on the markup by importing a new file. If you import a new file, the current structure markup is first cleared; all of your previous manual and imported changes will be discarded.
What is the format of the Bill of Materials export file?
In CSV files, the first ("header") row defines what is contained in each data record. All subsequent rows contain the data records; data fields within the record are separated by commas. Data fields that could be incorrectly interpreted as a numeric value are enclosed in double quotes; this ensures that text values, such as a part number "00123", are not reformatted as the numeric value 123. In addition, fields that already contain a comma (such as a reference designator "R1, R7") must also be enclosed on quotes; other rules apply to data containing quotes.
Most CAD applications have a standard export file format that defines the number of columns, the header labels, and the data format (like decimal number, text string, or Boolean yes/no value). However, this "standard" format may evolve with new CAD software releases, and may be modified to meet an individual company's needs. So, in many cases, a custom Data Transformation will be required to import bill of materials data into PDXpert. There are, however, several pre-defined formats that are installed as part of the PDXpert system, and these formats are described in the following sections.
SolidWorks BOM
The CSV file for SolidWorks CAD looks like this:
ITEM,QTY,PART NO,DESCRIPTION,MFG/VEN
1,1,100004,"Base Rear Panel Assembly, 0.236"" acrylic, clear, with inserts",Home
2,1,100012,"Belt Tensioner Front Plate Assembly, 0.236"" THK Laser-cut Acrylic (clear)",Home
3,1,100015,"Belt Tensioner Back Plate Assembly, 0.236"" THK Laser-cut Acrylic (clear)",Home
4,1,100016,"Shaft, SS precision ground, 0.1872"" OD x 1.75"" L",Home
5,2,100017,"#8-32 x 3/4"" SS Socket Cap Screw ",Home
OrCAD BOM
The CSV file from OrCAD looks like this:
Item,Number,Quantity,Reference
1,"32099",3,"R2,R3"
2,"30007",1,"C2"
3,"31005",2,"C1,C3"
4,"20001",1,"Q1"
5,"32003",1,"R1"
Using the "General" import template
If you have the freedom to specify how the CAD application exports BOM data, PDXpert's general-purpose data transformation defines a comprehensive import dataset.
An example: ImportMarkup-General.csv
Find
Required
Data type: integer ≥ 0
Empty cell: Invalid import file
A set of Find values is typically sequentially-assigned, although they are not required to be consecutive.
Owner Name
Optional
Data type: string, length ≤ 50 characters
Empty cell: Organization Abbreviation is used for match
This column may contain an Organization member Name value. If the value is empty, then the Owner Abbreviation column will be used to identify match; if Owner Abbreviation is also empty, then the home organization collection member will be assigned. If neither is empty, but no match is found, then a new Organization collection member will be created.
Owner Abbreviation
Optional
Data type: string, length ≤ 10 characters
Empty cell: Organization Name is used for match
This column may contain an Organization member Display name value. If the value is empty, then the Owner Name column will be used to identify match; if Owner Name is also empty, then the home organization collection member will be assigned. If neither is empty, but no match is found, then a new Organization collection member will be created.
Class
Optional
Data type: string of value "Part" or "Document"
Empty cell: derived from Type, or default to "Part"
If not specified, the Class is derived from a match of the Type Name. If the Type cannot be matched, then the Class is assigned to be a part.
Type Name
Optional
Data type: string, length ≤ 50 characters
Empty cell: Type Abbreviation is used for match
This column may contain a Part Type member or Document Type member Name value. If the value is empty, then the Type Abbreviation column will be used to identify match; if Type Abbreviation is also empty, then the default Part Type member or Document Type collection member will be assigned. If neither is empty, but no match is found, then a new collection member will be created according to the Class.
Type Abbreviation
Optional
Data type: string, length ≤ 10 characters
Empty cell: Type Name is used for match
This column may contain a Part Type member or Document Type member Abbreviation value. If the value is empty, then the Type Name column will be used to identify match; if Type Name is also empty, then the default member of the Part Type or Document Type collection (as determined by the Class) will be assigned. If neither is empty, but no match is found, then a new collection member will be created according to the Class.
The imported item's Class and Type cannot be changed after it's been created. Before you begin importing new items always ensure that the default Type will be appropriate for unmatched items or that the Type is specified in the file.
Number
Required
Data type: string, 1 ≤ length ≤ 50 characters
Empty cell: Invalid import file
The Number is used, along with the specified or default Class, Owner and Type, to match an existing document or part. If the item cannot be matched, then this value is imported as the new part or document number.
Revision
Optional
Data type: string, length ≤ 50 characters
Empty cell: derived from Class
This may contain an Item Lifecycle Phase collection member Name value. If the value is empty, then the default lifecycle phase will be assigned according to the specified or derived Class value.
Description
Optional
Data type: string, length ≤ 200 characters
Empty cell: ignored
If item has been matched to an existing item, this value is ignored. If the item cannot be matched, then this value is imported as the new Part name or Document title value.
Quantity
Optional
Data type: real ≥ 0
Empty cell: imported as 1
Specifies the quantity of items used to create or assemble the parent assembly. Set as blank (empty) if item Class is Document.
Unit
Optional
Data type: string, length ≤ 4 characters
Empty cell: assigned the default Unit of Measure
The Unit column, if empty, will be assigned the Default unit of measure value from the specified or derived Part Type.
Reference Designators
Optional
Data type: string, length ≤ 2000 characters
Empty cell: ignored
Any characters may be imported into PDXpert's RefDes structure attribute, although non-printing characters may have an unpredictable effect. The Reference Designators value is ignored if the row does not contain a part.
Notes
Optional
Data type: string, length ≤ 2000 characters
Empty cell: ignored
Any characters may be imported into PDXpert's Notes structure attribute, although non-printing characters may have an unpredictable effect.
This application note was relevant to the PDXpert software release that was current at time of publication. Product changes since that time may affect its utility. We'd be happy to assist you in assessing the applicability of this note to your situation.
Application Notes
- Engineering process design
- Item Revision State and Item Lifecycle Phase
- File searches using IFilters
- Automated PDXpert backup
- Multiple PDXpert servers
- Comparing BOMs in Excel
PDXpert & other software
- Importing a CAD BOM
- Integrating Altium Designer
- Integrating Cadence OrCAD
- Using an MRP/ERP system
- Fishbowl Inventory/QuickBooks
- Preprocessing a BOM file
- Graphical BOM in Visio
