By Adam Nagy
When a given LOD (Level Of Detail) is active inside Inventor that simply means that you are looking at a specific document inside the file: each LOD is a separate document stored inside the same file - see File vs Document
If you want to list which components are suppressed inside a given LOD - not the one currently active in the UI - then you don't have to activate it just for that. You can simply open that LODdocument in the background, check which components are suppressed, then close the document if it's not the currently active LOD:
Sub ListWhatsSuppressed()
Dim asm As AssemblyDocument
Set asm = ThisApplication.ActiveDocument
Dim acd As AssemblyComponentDefinition
Set acd = asm.ComponentDefinition
Dim rm As RepresentationsManager
Set rm = acd.RepresentationsManager
Dim nvm As NameValueMap
Set nvm = ThisApplication.TransientObjects.CreateNameValueMap()
Dim doc As AssemblyDocument
Dim occ As ComponentOccurrence
Dim lod As LevelOfDetailRepresentation
For Each lod In rm.LevelOfDetailRepresentations
Debug.Print lod.name
Call nvm.Add("LevelOfDetailRepresentation", lod.name)
Set doc = ThisApplication.Documents.OpenWithOptions( _
asm.FullFileName, nvm, False)
Call nvm.Clear
For Each occ In doc.ComponentDefinition.Occurrences
Debug.Print " >> " + occ.name + _" Suppressed = " + Str(occ.Suppressed)
Next' Don't forget to close the document not used anymore
If Not lod Is rm.ActiveLevelOfDetailRepresentation Then
Call doc.Close(True)
End If
Next
End SubIn this document I added two of my own LOD's as well: one has Combo Assembly, the other has Catch Post component suppressed:
The above VBA code gives the following result:
Master>> Combo Assembly:1 Suppressed = False>> Catch Post:1 Suppressed = False>> Lock Shackle:1 Suppressed = False>> Case Inner:1 Suppressed = False>> Case Outer:1 Suppressed = False>> Case Back:1 Suppressed = False>> Dial:1 Suppressed = False>> Catch Assembly:1 Suppressed = False>> Catch:2 Suppressed = False>> Retainer:1 Suppressed = False All Components Suppressed>> Combo Assembly:1 Suppressed = True>> Catch Post:1 Suppressed = True>> Lock Shackle:1 Suppressed = True>> Case Inner:1 Suppressed = True>> Case Outer:1 Suppressed = True>> Case Back:1 Suppressed = True>> Dial:1 Suppressed = True>> Catch Assembly:1 Suppressed = True>> Catch:2 Suppressed = True>> Retainer:1 Suppressed = True All Parts Suppressed>> Combo Assembly:1 Suppressed = False>> Catch Post:1 Suppressed = True>> Lock Shackle:1 Suppressed = True>> Case Inner:1 Suppressed = True>> Case Outer:1 Suppressed = True>> Case Back:1 Suppressed = True>> Dial:1 Suppressed = True>> Catch Assembly:1 Suppressed = False>> Catch:2 Suppressed = True>> Retainer:1 Suppressed = True All Content Center Suppressed>> Combo Assembly:1 Suppressed = False>> Catch Post:1 Suppressed = False>> Lock Shackle:1 Suppressed = False>> Case Inner:1 Suppressed = False>> Case Outer:1 Suppressed = False>> Case Back:1 Suppressed = False>> Dial:1 Suppressed = False>> Catch Assembly:1 Suppressed = False>> Catch:2 Suppressed = False>> Retainer:1 Suppressed = False ComboSuppressed>> Combo Assembly:1 Suppressed = True>> Catch Post:1 Suppressed = False>> Lock Shackle:1 Suppressed = False>> Case Inner:1 Suppressed = False>> Case Outer:1 Suppressed = False>> Case Back:1 Suppressed = False>> Dial:1 Suppressed = False>> Catch Assembly:1 Suppressed = False>> Catch:2 Suppressed = False>> Retainer:1 Suppressed = False CatchSuppressed>> Combo Assembly:1 Suppressed = False>> Catch Post:1 Suppressed = True>> Lock Shackle:1 Suppressed = False>> Case Inner:1 Suppressed = False>> Case Outer:1 Suppressed = False>> Case Back:1 Suppressed = False>> Dial:1 Suppressed = False>> Catch Assembly:1 Suppressed = False>> Catch:2 Suppressed = False>> Retainer:1 Suppressed = False