The BOM is independant of the CAD system or any software application. The software is just a tool for the user to utilize the BOM.
My company actually has multiple BOMs for the same product.
We have the assembly BOM. This BOM is created in the CAD system and is only lists the parts, components, and subassemblies used to create an assembly. This is essentiall the basis for the other BOMs. This BOM only exists on the face of each assembly drawing.
We have the production BOM. Our production controllers/planners take the assembly BOM and recreate it in an Excel spreadsheet. I'm ashamed to say this is a totally mismanaged process because each planner creates their own BOM in their own format for the program they are assigned to. Not to mention, the human transfer of data from drawing face to spreadsheet leads to errors. But, this BOM has more information in it than the assembly BOM. It has make/buy fields and also has required quantities, including scrap allowance, for the production run of product (contract deliverable quantity). This BOM gets recreated each time a new fixed-price/fixed-quantity contract is awarded. Purchasing also uses this BOM to get pricing.
Finally, there is the product baseline. It's a product baseline more than a BOM, but resembles a BOM none the less. It contains all the revision information of every part of every component including what materials requirements and/or specifications are called out on the drawing notes, including surface finishes. It captures the as-built condition.
The good news is that we are trying to implement a PDM/PLM system to incorporate these distinctly separate BOMs into one system.
--Scott