AnsweredAssumed Answered

IEdmBOMCell.GetTreeLevel Issues

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

Hello:

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

BOMMGR.GetBomLayouts(ppoRetLayouts)
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

BOMVIEW.GetRows(ppoRows)
ppoRow = ppoRows(0)

Return ppoRow.GetTreeLevel

End Function

 

It returns a Tree Level of 0 for every assembly.  

 

Thank you!

Outcomes