Dim oDoc As DrawingDocument = InvApp.ActiveDocument
Dim Posit As String = InputBox("Введите номер позиции:", "Поиск позиции на чертеже.", "")
Dim oSheet As Sheet
Dim oBalloon As Balloon
Dim oBalloonValueSet As BalloonValueSet
Dim Flag As Boolean = False
Dim oBalloonColl As Inventor.ObjectCollection = InvApp.TransientObjects.CreateObjectCollection()
Dim ListColl As New List(Of String)
For Each oSheet In oDoc.Sheets
For Each oBalloon In oSheet.Balloons
For Each oBalloonValueSet In oBalloon.BalloonValueSets
If Posit = oBalloonValueSet.Value Then
If oDoc.ActiveSheet.Name = oBalloon.Parent.Name Then
oBalloonColl.Add(oBalloon)
Else
ListColl.Add(oBalloon.Parent.Name)
End If
Flag = True
End If
Next
Next
Next
If oDoc.SelectSet.Count > 0 Then oDoc.SelectSet.Clear()
oDoc.SelectSet.SelectMultiple(oBalloonColl)
If Flag = False Then MsgBox("Позиция " & Chr(34) & Posit & Chr(34) & " на чертеже не найдена.")
ListColl.Sort()
Dim n As String = ""
For i = 0 To ListColl.Count - 1
If InStr(1, n, ListColl(i)) = 0 Then n = n & vbCrLf & ListColl(i)
Next
If n <> "" Then
MsgBox("Позиция " & Chr(34) & Posit & Chr(34) & " найдена на листе(ах): " & n)
End If
InvApp.CommandManager.StartCommand(Inventor.CommandIDEnum.kZoomAllCommand)