Why can't I have Configuration Specific part numbers in my BOM?
Actually you can, and there are two different ways of doing it...
The first is to have the configuration name be the part number. To do this you must go into each and every part and subassembly and change the Bill of Materials Options (inside Configuration Properties, as show) for each configuration in the model. This sounds like a big task but That's what it's gonna take. You are goin to have to change it from saying Document Name (SW Default) to Configuration Name, and then name each configuration what you want it to be.
The second, and preferred by me, way is to use a configuration specific custom property. The trick to using a custom property is that the Bill of Materials Options (inside Configuration Properties, as show) must be set to User Specified Name and $PRP:"PartNumber" (where PartNumber is the name of the configuration specific custom property being used). Again this initial change must be made to each configuration in every single part and sub assembly in your assembly.
Here are several reasons(In no particular order) as to why I prefer this method:
- Confugurations can be named as you please
- Custom properties are easier to edit than configuration names
- Changing a custom property will not affect the ability for an Assembly to find the correct configuration
- Part number can be controlled in the same place as all the other properties in a model
- All the other items in the BOM are custom properties (or should be, and I mean it)
Here's another tip when doing this... An easy way to tell if all the configurations in a particular model are properly set, is to simply look at the configuration tab and to the right of the configuration's name it should say [ $PRP:"PartNumber" ] as shown.
And now for the best part... to all of you who bothered to read this whole article I am including a macro that will add a configuration specific custom property to each configuration and rename the Bill of Materials Options to User Specified Name with the value set to show the property name specified. Click Here to Download The use of this macro is at your own risk. Graphics Systems Corporation is in no way responsible for any damages that occur as a result of using this macro. The macro is provided as is and will not be supported in any way.
All of the knowledge necessary to write this macro can be achieved through the SolidWorks API class offered at Graphics Systems. Please see our class listings for the next available class.