Please, let us be clear here. The Bill Of Material process defined during the (surrender of sovereignty) 1994 NCGA conference wherein what was left of our standards were privatized is about as idiotic as the rest of that conference's actions!
The BOM approached adopted (read: rammed down our throats) is an architectural one that has no real ability or application when dealing with anything other than simplistic project or product management. We threw out six decades worth of industrial part & assembly management experience in pursuit of simplicity for the programmers. The old (1981 revision was the last of which I am aware) MIL-STD-1000 matrix parts list represented many decades (it started during WWI to manage military products & projects) of research & development. It was in use by virtually all major product manufacturing companies around the world -- and we threw it out to make life easier for the programmers.
This is one of the reasons that I harp on the inclusion of a spreadsheet system as a fundamental tool for CAD. Since Shawn Thornhill developed the foundations for modern spreadsheets in 1983 (yes, I remember VisiCalc and SuperCalc, but AsEzAs really set the stage for modern spreadsheets) I have been using them to manage matrix parts lists at the project level. It takes a bit of effort to set-up, but a spreadsheet-based matrix parts list has the advantage of tracking the use of parts, sub-assemblies, and assemblies through a product or project such that you can tell:
1) How many parts, sub-assemblies, or assemblies are used in any given sub-assembly, assembly, or installation.
2) How many total parts, sub-assemblies or assemblies are used for a given product or project.
3) How many parts use the same base raw material (i.e. AL 6061-T651 Bar 1.000 X 2.000) to simplify ordering of material.
Etc.
Throwing out these abilities will go down in CAD history as one of the great demonstrations of mismanagement when we finally overthrow the private control of the standards within which we work!