11 Replies Latest reply on Sep 25, 2014 3:03 PM by Mike Campbell

    BOM for virtual assembly will not show $partnumber and $description

    Mike Campbell

      The title says it. Using SW2014 x64 SP4.0

        • Re: BOM for virtual assembly will not show $partnumber and $description
          Glenn Schroeder

          I don't work with virtual assemblies.  Is this a virtual sub-assembly you've created within a higher level assembly?  You might need to save it as an external file for all the properties to show.

          • Re: BOM for virtual assembly will not show $partnumber and $description
            John Burrill

            MIke, virtual subassemblies will display properties according to the same rules as regular subassemblies.  In the example below the 60100008-1 subassembly is virtual and reporting $partnumber to the BOM.


            So, you want to give us a screen shot of your results and explain what's contrary to your expectations?

              • Re: BOM for virtual assembly will not show $partnumber and $description
                Mike Campbell

                It is as stated in the subject line. What you have is not what I have. I don't get anything in your columns B ($partnumber) or E ($description) for virtual parts in my virtual subassembly. (You might note "subassembly".) I do get the quantity and for toolbox components which are external I do get both $partnumber and $description.

                  • Re: BOM for virtual assembly will not show $partnumber and $description
                    John Burrill

                    Yeah, you're not giving enough background information for me to identify where things went wrong.  What you're saying is, "Doctor, Doctor, I can't see my mother,"

                    Now were you trying to:

                    • insert a BOM into a virtual subassembly
                    • get a virtual subassembly to show up on a top-level BOM
                    • get the components of a virtual subassembly to show up in a top-level BOM
                    • -or insert a BOM from a virtual assembly into a drawing?

                    I can tell you right now, there are-by design-only two things you can't do with virtual assemblies that you can with regular assemblies: you can't create drawing views from them and you can't check them into a WPDM vault.  That leaves a couple of general hypotheses: there's a problem with the way your configurations are set up in the virtual assembly, the virutal assembly is excluded from the bill of materials, the virtual assembly is set to promote its child components in an indented assembly or there's a software bug. 

                      • Re: BOM for virtual assembly will not show $partnumber and $description
                        Mike Campbell

                        Ok. To be really clear, I have a drawing sheet with a view of an assembly that includes several virtual subassemblies where each is comprised of virtual parts save for toolbox items which are external. I also have on this drawing sheet a BOM table that is associated with the drawing view. Two of the columns in the BOM are set equal to $partnumber and $description. None of the virtual parts or virtual subassemblies display data in these two columns but the external parts do. All parts display quantity. For all virtual parts Use in bill of materials is checked in Configuration Properties and there is text displayed in both the Description field and Part number displayed when used in a bill of materials field.


                        When I set $prp@partnumber = $partnumber and $prp@description = $description, and change the two column equations in the BOM from $partnumber and $description to $prp@partnumber and $prp@description, all data shows correctly in the table.

                          • Re: BOM for virtual assembly will not show $partnumber and $description
                            John Burrill

                            OK, much more to work with here.  This might seem like I'm telling you a lot of stuff you already know, but sometimes the only way to identify a root-cause is to go through the process step by step, detail by detail.

                            I took an existing assembly containing a sub-assembly and made the sub-assembly virtual.  I then edited the sub-assembly and made its components virtual.  I then created a drawing, inserted a view and a BOM.

                            9-24-2014 11-59-50 PM.png

                            The part number colum is set to use the $partnumber parametervirtual_sub_in_boms5.png and the description column is set to use the Description custom property.virtual_sub_in_boms6.png

                            The virtual sub-assembly is 3901247.  As you can see, the part number and description are showing up in the BOM as  expected.

                            To achieve this, I opened the virtual sub-assembly in its own window, went into configuration properties and specified the part number and the description.


                            These are the the fields the $partnumber and $description parameters call.  I checked the box to make the description appear in the BOM.  It appears that this overrides the Description field in custom properties.  Without that check-box, the only place you'll see the $description parameter report is in the list of configurations used by configuration manager, component descriptions and component properties.

                            One other note: There is no way to reference the $description parameter in the BOM table itself.


                            $Partnumber is a badly implemented property, because the only place it can be specified is either in configuration manager or a design table.  This reports to the BOM and to the balloon text if you specify it, but you can't get it to show up in a note or the titleblock.  It would be nice if there were something like "SW-Part Number" or "SW-Config Part Number" accessible.  A while ago, someone noted that you could enter the parameter code for a custom property in the $partnumber field of configuration manager, but this has a serious flaw, it reads the property of the files context instead of that of the file.  That means if you set a $partnumber to $PRP:"Part No" in configuration manager of a part and then insert that part into an assembly, the BOM item for that part will report the custom property of the assembly.

                            For that reason, the only reliable way to link $partnumber to a custom property is to do so in the design table.  maybe SolidWorks Corp will get around to improving this feature, but given that numerous ER's have been filed over the last few years-including one of mine-I'm not optimistic.

                            Faced with your circumstances, my best guess is that your efforts have yeilded a pair of empty custom properties named $partnumber and $description respectively.  I tried setting the PartNumber and description custom properties to reference $partnumber and $descriptoin, but didn't get any results.

                            At one point while reconstructing your situation, I did have a problem where the BOM was missing several externally saved components.  Restarting Solidworks resolved that issue.

                            Finaly, since you're using SolidWorks 2012.  It could be a bug that was fixed in a service pack or later release.