airion,
I used to work at a company that designed custom firetrucks. Every truck was made to order, with different body, and cab options. On top of that, the dimensions of the body and chassis was set by the order. You also had 1000's of optional accessories.
In order to get accurate drawings, we used Pro/Program to interchange assemblies, and pass down geometry to many layers of subassemblies and parts. The subassemblies and parts changed everytime we changed an option or a dimension.
This posed a big problem when it came time to deliver the drawing package. Not only did the drawings have to update, but depending on the cofiguration some of the assemblies would appear or go away. So it was impossible to compile a print list that worked. The solution was a batch file that read the BOM of the assembly in session, and pulled up each individual drawing. Based on matching the BOM numbers with the drawing files it found in the search paths, it brought up every drawing regenerated it, and plotted it. So basicly what would have took hours of pouring over BOM's at many different levels, and pulling up the drawings to plot them, now took only a few minutes.