Is there a way to set up a drawing BOM to only list unhidden components? In other words, a BOM that will only list visible components in a given display state?
The exclude BOM function is controlled by configurations, not display states. So the BOM will be depending on what configuration that is used, not the display state.
But to exclude all hidden components in a display state you can do these simple steps:
1. use selection tool, select hidden
2. rmb component properties
3. exclude from BOM
Will this affect only a given display state? It looks like it excludes parts from the BOM on a configuration level, not on a display state level. So If I have display states A, B, and C, and I use your method, they will be excluded in all display states because I affected the configuration. Is that correct?
Display states are tempting because they are so much faster than configs! But the right way to do it if you intend to use a BOM is with a configuration. You could use what Sindre suggested with the "select hidden" and then RMB and select suppress for that configuration.
You must have one configuration for each BOM arrangement. The display states will only help you to select all the hidden parts at once.
Here is a workflow that can help you achieve this.
Now you have three configurations A, B and C with different BOMs, using display states to make a faster selection of components to exclude.
The suggestion to create configurations works but be aware of the fall back's. All in all this works for small and low level assemblies but becomes a unmanageable beast if size and complexity increases.
A) If you suppress parts that you want "hidden" you will also loose their constraints. Meaning every part constraint to it will start to float. And in most cases this will render this approach useless. The way you need to structure your assembly becomes more difficult.
B) You need to manage configurations now. Getting proper counts can be tricky. Hidden parts still count in the BOM while suppressed ones don't.
C) Manually hide the rows that you don't want. That is cumbersome too and is not associative with design/visibility change.
D) Your best bet is using a macro that hides rows based on a condition. I have used this workaround by ballooning the parts that I want to show first. Then I hide all the rows that are not ballooned. While this is still not associative the macro works fast.
the following macro will list all components that are not ballooned. You will need to modify it by adding the row numbers to an array. Use that to hide all found rows. Maybe someone here can help.
Positionsnummern suchen ... (DS SolidWorks/SolidWorks) - Foren auf CAD.de
E) Hope that SW will add this very handy feature into the Software one day. Sorting & filtering BOM's by any column should also be there by now. You might hear a "report this to your reseller as a improvement request"....Well, it's already here. Not the first time either. One would think SW can figure it out by reading their own board entries. I post it here, because it's public and a lot of people frequent the board.
This is much more helpful then sending it to SW. That for most part is a waste of time.
Retrieving data ...