5 Replies Latest reply on Jun 30, 2016 9:34 AM by Elmar Klammer

    BOM to only show unhidden components

    Leif Nordstrom

      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?

        • Re: BOM to only show unhidden components
          Sindre Sorhus

          Hi Leif,


          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

          29-06-2016 14-35-27.png

          2. rmb component properties

          29-06-2016 14-36-09.png

          3. exclude from BOM

          29-06-2016 14-36-16.png

          4. Result

          29-06-2016 14-37-00.png




            • Re: BOM to only show unhidden components
              Leif Nordstrom

              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?

                • Re: BOM to only show unhidden components
                  James Rhys-Davies

                  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.

                  • Re: BOM to only show unhidden components
                    Sindre Sorhus

                    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.

                    1. add 3 configurations, A, B and C, in addition to Default
                    2. Then, when Default is active, create 3 new display states and name them A, B and C, in addition to default display state. The display states shold not be linkeed to configurations.
                    3. Now, in the default config. set up the variations of visibility in display state A, B and C. Let Default display state show all components.
                    4. Activet configuration A and activate display state A, then do as I showed in previous post.
                    5. Reactivate display state Default, then activate configurations B and display state B. Do the exclude hidden procedure.
                    6. Same as above step for configuration- and display state C
                    7. Do the same procedure with config- and display state B and C accordingly.


                    Now you have three configurations A, B and C with different BOMs, using display states to make a faster selection of components to exclude.

                • Re: BOM to only show unhidden components
                  Elmar Klammer

                  Hello Leif,


                  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.


                  That's it