While using an Excel based BOM (as opposed to a standard BOM) is not as flexible as a standard Bill of Materials, there are various customisations which can be done. E.g. if you want a complete project costing (taking into account price per meter length of piping or weldments). Note: in recent versions of SolidWorks (2008,2009 etc.) it is possible to do totals and equations in standard BOMs, however they require some post manual tweaking.
This post shows how a custom Excel based Bill of Materials for a SolidWorks Assembly drawing can be created.
- Find out where BOM templates are stored: Open SolidWorks -> Tools -> Options -> File Locations -> BOM Templates
- Open bomtemp-all.xls Look at the various Headings in Row 1.
- Remove/Add Columns to suit making sure to type in the SolidWorks File Property name into the “Name Property” box (see image below).
- Do NOT remove the Item No. Column or Part No. Column (otherwise your Excel BOM will act strange, adding several duplicate rows into the BOM.) (I spent quite a while caught on this.) FYI this fact is noted in the SolidWorks Knowledge Base. Customers on subscription can view the SolidWorks Knowledge Base at http://customerportal.solidworks.com
Its also possible to see all Name Properties in an Excel file: Insert -> Name -> Define (Excel 2000/2003)
(In Excel 2007, its called “Name Manager” and its on the Formulas button. Alt+m+n also works)
This shows up the list of Name Properties in the Excel file. Be extremely careful!
Once the Excel file is saved, go to SolidWorks, pre-select the view (typically the Isometric view) and then go: Insert -> Tables -> Excel Based Bill of Materials. Choose your template file, and voila. Note: The name you entered in the “Name Property” box in Excel must correspond with the Property in the PART. Go to the Part, File -> Properties -> Custom and make sure the Property name is present.
If you formatted the Headings in your Excel template, and wish for these to come through, make sure to have “Use the document note font when creating the table” unchecked when initially Inserting the Excel Based BOM.
In a recent Piping SolidWorks Project, I wanted a complete costing done on my BOM. I created several columns, including “Unit Cost”, “Pipe Cost”, “Total Unit Cost” and “Total Pipe Cost”. In the once-off parts I created a unitcost SW Property in the parts. For the piping (same with weldments), I opened the source pipe file (used in routing), and added a costpipe property (which had a cost per meter). An image of the completed table can be seen below. This Excel template file can be downloaded from here. (There are 2 columns containing calculations which are hidden. This level of detail would not have been possible in a standard Bill of Materials).
This level of customisation available within SolidWorks is just the tip of the iceberg!
So I came across an issue with Excel BOM’s which caught me.
It is not possible to have properties such as SW-Title, SW-Author, SW-Filename, or any property with a hyphen ( – ) in its name in an Excel based Bill of Materials. This limitation is caused by Microsoft Excel. In the Name Property box for each cell, it is not possible to have a hyphen ( – ). The workaround given by SolidWorks (S-015804) (On the Knowledge Base at http://customerportal.solidworks.com ) is to create a Custom Property (as normal in SolidWorks). E.g. to have SW-Title appear in a BOM, you need to create a Custom Property called SWTitle and link it to: $PRP:”SW-Title”. Then when creating the Excel BOM template, insert the Name Property SWTitle. Of course if you have a project already created, and only realised this at the end, its a little more difficult. SolidWorks Task Scheduler may be able to add this Custom Property to all of your files.
Hopefully this will help someone, and me too in case I forget!