AnsweredAssumed Answered

IEdmBOMCell.GetTreeLevel Issues

Question asked by Steve Anderson on Sep 6, 2019
Latest reply on Sep 13, 2019 by Steve Anderson


I am trying to look at a BOM in PDM and obtain the BOM level for assemblies.  I am hoping to just look it up and have the information returned, however I am suspecting something is dependent on the whole BOM and it needs everything and cannot just calculate a selected item based on a relative path.  I also feel the SolidWorks documentation for this is lacking!


My code looks like this:


Private Function GetAssyLevel(ByVal Assy As String) As Integer
Dim afile As IEdmFile7 = VAULT.GetFileFromPath(System.IO.Path.GetFullPath(SearchFileInVault(Assy)))

' Get a BOM view with the specified layout
BOMMGR = VAULT.CreateUtility(EdmUtility.EdmUtil_BomMgr)

Dim ppoRetLayouts() As EdmBomLayout = Nothing
Dim ppoRetLayout As EdmBomLayout

Dim arrSize As Integer = ppoRetLayouts.Length

ppoRetLayout = ppoRetLayouts(0)

If ppoRetLayout.mbsLayoutName = "BOM" Then
BOMVIEW = afile.GetComputedBOM(ppoRetLayout.mbsLayoutName, 0, "@", EdmBomFlag.EdmBf_AsBuilt + EdmBomFlag.EdmBf_ShowSelected)

End If

' Display BOM view row and column information
Dim ppoRows() As Object = Nothing
Dim ppoRow As IEdmBomCell

ppoRow = ppoRows(0)

Return ppoRow.GetTreeLevel

End Function


It returns a Tree Level of 0 for every assembly.  


Thank you!