Public Structure udtPartInfo Public udNumber As String Public ReferencedFile As String End Structure Sub Main() Dim drawDoc As DrawingDocument drawDoc = ThisApplication.ActiveDocument Dim baseSheet As Sheet baseSheet = drawDoc.Sheets.Item(1) if (baseSheet.Balloons.Count = 0) Then Return ' There are no balloons on the drawing. Dim valSet As BalloonValueSet valSet = baseSheet.Balloons.Item(1).BalloonValueSets.Item(1) Dim drawBOM As DrawingBOM drawBOM = valSet.ReferencedRow.Parent Dim partInfo() As udtPartInfo ReDim partInfo(drawBOM.DrawingBOMRows.Count - 1) Dim itemColumn As Integer Dim i As Integer For i = 1 To drawBOM.DrawingBOMColumns.Count If drawBOM.DrawingBOMColumns.Item(i).PropertyType = PropertyTypeEnum.kItemPartsListProperty Then itemColumn = i Exit For End If Next For i = 1 To drawBOM.DrawingBOMRows.Count Dim drawBOMRow As DrawingBOMRow drawBOMRow = drawBOM.DrawingBOMRows.Item(i) Dim partDef As PartComponentDefinition partDef = drawBOMRow.BOMRow.ComponentDefinitions.Item(1) partInfo(i - 1).ReferencedFile = partDef.Document.FullFileName partInfo(i - 1).udNumber = drawBOMRow.Item(itemColumn).Value Next For i = 1 To drawDoc.Sheets.Count Dim currentSheet As Sheet currentSheet = drawDoc.Sheets.Item(i) Dim checkBalloon As Balloon For Each checkBalloon In currentSheet.Balloons Dim matchFound As Boolean matchFound = False If (checkBalloon.BalloonValueSets.Count = 0) Then Continue For End If Dim valueSet As BalloonValueSet valueSet = checkBalloon.BalloonValueSets.Item(1) Dim checkFilename As String checkFilename = valueSet.ReferencedFiles.Item(1).FullFileName Dim j As Integer For j = 0 To UBound(partInfo) If checkFilename = partInfo(j).ReferencedFile Then matchFound = True If valueSet.ItemNumber <> partInfo(j).udNumber Then ' Trace.WriteLine(" -- Overriding value: " & valueSet.ItemNumber) valueSet.OverrideValue = partInfo(j).udNumber End If Exit For End If Next Next Next End Sub