Code:
Option ExplicitPrivate Sub Filter_PartsList()
Dim oApp As Inventor.Application
Set oApp = ThisApplication
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = oApp.ActiveDocument
Dim oSheet As Sheet
Set oSheet = oDrawDoc.ActiveSheet
Dim oValues As NameValueMap
Set oValues = oApp.TransientObjects.CreateNameValueMap
Dim oBalloonValueSet As BalloonValueSet
Dim oBalloon As Balloon
For Each oBalloon In oSheet.Balloons
For Each oBalloonValueSet In oBalloon.BalloonValueSets
If oBalloonValueSet.OverrideValue = "" Then
Call oValues.Add(oBalloonValueSet.Value, oBalloonValueSet.Value)
Else
Call oValues.Add(oBalloonValueSet.OverrideValue, oBalloonValueSet.OverrideValue)
End If
Next
Next
Dim oPartsList As PartsList
Set oPartsList = oSheet.PartsLists(1) 'assuming there's only one partslist
Dim i As Integer
Dim oPartsListColumn As PartsListColumn
For i = 1 To oPartsList.PartsListColumns.count
If oPartsList.PartsListColumns(i).PropertyType = kItemPartsListProperty Then
Exit For
End If
Next
Dim sValue As String
Dim oPartsListRow As PartsListRow
On Error Resume Next
For Each oPartsListRow In oPartsList.PartsListRows
sValue = oValues.Item(oPartsListRow.Item(i).value)
If Not Err.Number = 0 Then
oPartsListRow.Visible = False
Err.Clear
Else
oPartsListRow.Visible = True
End If
Next
On Error GoTo 0
End Sub