Find component referenced by balloon
Description
This sample demonstrates how to find the component that a balloon references.Code Samples
Select a balloon in a drawing and run the following sample.
Public Sub GetComponentReferencedByBalloon() ' Set a reference to the active drawing document Dim oDoc As DrawingDocument Set oDoc = ThisApplication.ActiveDocument ' Get the selected balloon Dim oBalloon As Balloon Set oBalloon = oDoc.SelectSet(1) Dim oBalloonValueSet As BalloonValueSet For Each oBalloonValueSet In oBalloon.BalloonValueSets Dim strDisplay As String strDisplay = "Balloon Item Number: " ' Add the balloon item number (the overridden value if there is one) If oBalloonValueSet.OverrideValue = "" Then strDisplay = strDisplay & oBalloonValueSet.Value Else strDisplay = strDisplay & oBalloonValueSet.OverrideValue End If Dim oDrawingBOMRow As DrawingBOMRow Set oDrawingBOMRow = oBalloonValueSet.ReferencedRow If oDrawingBOMRow.Custom Then ' The referenced item is a custom parts list row. strDisplay = strDisplay & vbNewLine & "Referenced Component(s):" strDisplay = strDisplay & vbNewLine & " Custom PartsList Row" Else Dim oBOMRow As BOMRow Set oBOMRow = oDrawingBOMRow.BOMRow ' Add the Item Number from the model BOM. strDisplay = strDisplay & vbNewLine & "BOM Item Number: " & oBOMRow.ItemNumber strDisplay = strDisplay & vbNewLine & "Referenced Component(s):" Dim oCompDefs As ComponentDefinitionsEnumerator Set oCompDefs = oBOMRow.ComponentDefinitions If oDrawingBOMRow.Virtual Then ' The referenced item is a virtual component. strDisplay = strDisplay & vbNewLine & " Virtual: " & oCompDefs.Item(1).DisplayName Else ' Add the document name of the referenced component. ' There could be multiple if the balloon references ' a merged BOM row in the model. Dim oCompDef As ComponentDefinition For Each oCompDef In oCompDefs strDisplay = strDisplay & vbNewLine & " " & oCompDef.Document.FullDocumentName Next End If End If MsgBox strDisplay Next End Sub