So, this thread has been somewhat eye opening for me. I have always assumed that you control the BOM with LOD's not DVR....and I've been using this software for nigh 13 years. I decided to run an experiment yesterday using iLogic and LOD's.
I created a parameter called "Style" and made it multivalue text. I then created three variables for the parameter. "Type 1", "Type 2", and "Type 3".
I then created a form and dragged the paramter into the form...iLogic creates all the buttons and pull downs automatically.
Then I wrote some super quick iLogic code to suppress objects. (I created an LOD called iLogic - since you can't run iLogic code that suppresses/activates objects in the Master LOD). You can see how easy it is to write code to suppress or turn on...I copied 2 of the 3 if statements and just changed some True to False ....
'Controls ObjectSuppression
If Style = "Type 1" Then
Component.IsActive("Assembly1:2") = False
Component.IsActive("AS1211F-M5-06A:1") = False
Component.IsActive("AS1211F-M5-06A:2") = False
Component.IsActive("Festo Adapter:2") = False
Component.IsActive("Festo Adapter:3") = False
Else If Style = "Type 2" Then
Component.IsActive("Assembly1:2") = False
Component.IsActive("AS1211F-M5-06A:1") = False
Component.IsActive("AS1211F-M5-06A:2") = False
Component.IsActive("Festo Adapter:2") = True
Component.IsActive("Festo Adapter:3") = True
Else If Style = "Type 3" Then
Component.IsActive("Assembly1:2") = True
Component.IsActive("AS1211F-M5-06A:1") = True
Component.IsActive("AS1211F-M5-06A:2") = True
Component.IsActive("Festo Adapter:2") = True
Component.IsActive("Festo Adapter:3") = True
End If
I then dropped the assembly into a drawing, selecting the iLogic LOD for the view. I was able to quickly go back into the model, open the form, and change the style, and the parts list updated flawlessley when I went back to the drawing.
This may be a good method, if you make a master model that is your template assembly with all parts, pick the right configuration, save as a new p/n, and then delete out all the suppressed items. Honestly, I haven't worked on it, but you could probably write a quick iLogic code that would delete all suppressed content...therefore making your model truly accurate.
That said, you if there was a way to control the BOM style (Normal/Purchased/Inseperable/Reference) with iLogic easily, you wouldn't need a special level of detail...as you would not need to suppress anything...basically anything set to reference wouldn't be counted. How do you alter this thru the API?