Some of our parts get modeled as assemblies but purchased as a single item. Example a butterfly valve, which may have a lever, gear operator, air operator, electric operator, and possibly a limit switch module as well. This is purchased complete under one part number, so once it is created it never needs to show up on a BOM except as that one item. In SolidEdge I found out that if I simply marked the assembly as a weldment it never expanded in a BOM, except the BOM for that assembly itself. Worked great, I zipped through the library one time making all the valves like this a weldment and our BOMs were just the way they should be.
So how to do this in SolidWorks? I would be okay if we could just save the assembly as a part. I'd keep keep a master assembly that I'd use to build all the variations and save each one as a part. Can that be done? In fact could that possibly produce a part with just the outer surfaces and no internal features? Because that would allow us to share product models with others without revealing the engineering secrets inside. Often easy to buy one and copy it, but I'd like to at least sell the one copy!
Second question. We are moving to AllOrders for purchasing and tracking materials. AllOrders said they could provide a utility to import the BOM from a drawing file. I sent them a drawing with a BOM and they said they would need all items in the drawing to make this work. That is hundreds of parts and subassemblies. This suggests to me that a BOM isn't actually stored in a drawing, that it is created each time you open it. Any way to have the drawing save the BOM internally so it can be read? I also can do this through an Excel file and have done that for years with SolidEdge. However what they are offering sounds like a great idea. Pick a drawing, click a button and you have the BOM. Click another button and you have POs to 30 different vendors, Done!
Thanks in advance for any help on this.
In the assembly that you want to show up as a part you can open the configuration properties for the configuration(s) that is used in the upper assembly. Then in the BOM options section there's an option "Child component display when used as a asubassembly", and you can set that to hide. Then it will only show the valve as a single part even in a parts only BOM for the upper assembly. It may not matter to you but you can still make a BOM of the subassembly itself and all the parts will still show up.
The other method you described of saving the assembly to a part file would work too. But then if you have different configurations of the valve you would need to keep track of separate files for each. But you can save the assembly as a part with external surfaces only as you describe, which as you mention is great for sharing models with customers. When you are saving just choose the type as Part and pick the Exterior Faces option.
For your last issue, the BOM in a drawing is tied to the assembly and not separate. This makes sense because if you update the assembly you would (usually) want the BOM to update automatically. So it makes sense that their utility would need access to the drawing and the assembly file and all the parts.