Dim oDoc As AssemblyDocument = ThisDoc.Document Dim oBom As BOM = oDoc.ComponentDefinition.BOM Dim BomStructured As BOMView For Each oBomView As BOMView In oBom.BOMViews If oBomView.ViewType = BOMViewTypeEnum.kStructuredBOMViewType Then BomStructured = oBomView end if Next Dim i As Integer Dim k As Integer = 0 Dim phItemNumber(0 To 0) As String Dim phDoc(0 To 0) As Document Dim userParams As UserParameters = oDoc.ComponentDefinition.Parameters.UserParameters For i=1 To BomStructured.BOMRows.Count If BomStructured.BOMRows.Item(i).Promoted = True Then ReDim preserve phItemNumber(0 To phItemNumber.Length) phItemNumber(phItemNumber.Length - 1) = BomStructured.BOMRows.Item(i).ItemNumber ReDim preserve phDoc(0 To phDoc.Length) phDoc(phDoc.Length - 1) = BomStructured.BOMRows.Item(i).ComponentDefinitions(1).Document k=k+1 End If Next For Each userPar As UserParameter In oDoc.ComponentDefinition.Parameters.UserParameters If userPar.Name.Contains("ph") Then userPar.Delete End If Next For i = 1 To k userParams.AddByValue("phItNr" & i, phItemNumber(i), UnitsTypeEnum.kTextUnits) userParams.AddByValue("phDoc" & i, phDoc(i).DisplayName, UnitsTypeEnum.kTextUnits) Next userParams.AddByValue("phCount", k, UnitsTypeEnum.kUnitlessUnits)