Тема: Как добраться до оригинального имени параметрического блока?
Проблема:
В чертеж вставлен несколько раз параметрический блок, с разными параметрами (длина).
1)
Если ипользовать Attribute Extraction то получаю:
Quantity Name
2 68 Шкаф для сушки посуды
Т.е. 2 вхождения блока с именем "68 Шкаф для сушки посуды"
2) Если использовать следующий код
Dim MyBlock As AcadBlock Dim MyBlocks As AcadBlocks Dim MyBlockReference As AcadBlockReference Dim Atts As Variant Public Function SelectMyBlocks(strName As String) As AcadSelectionSet Dim objSelSet As AcadSelectionSet Dim objSelCol As AcadSelectionSets Set objSelCol = ThisDrawing.SelectionSets For Each objSelSet In objSelCol If objSelSet.name = strName Then objSelSet.Delete Exit For End If Next Set objSelSet = ThisDrawing.SelectionSets.Add(strName) Set SelectMyBlocks = objSelSet End Function Public Sub GetMyBlockRefAtts() Dim objSelSet As AcadSelectionSet Dim objBlkRef As AcadBlockReference Dim intType(0) As Integer Dim varDat(0) As Variant Dim strAttributes As String Dim i As Integer Dim g As Integer Dim name As String ' ориентировочное количество разноименных блоков = 200 Dim massive(200) As String Dim s As Integer Dim s1 As Integer Dim prov As String s = 0 s1 = 1 prov = 0 On Error GoTo Err_Control intType(0) = 0 varDat(0) = "INSERT" Set objSelSet = SelectMyBlocks("blocks") objSelSet.Select acSelectionSetAll, FilterType:=intType, _ FilterData:=varDat For Each MyBlockReference In objSelSet name = MyBlockReference.name ' отбраковка копий ' ориентировочное количество разноименных блоков = 200 For i = 0 To 200 If massive(i) = name Then GoTo 15 Next i ' заполнение массива massive(s) = name MsgBox massive(s) s = s + 1 15 Next MyBlockReference Exit_Here: Exit Sub Err_Control: MsgBox Err.Description Resume Exit_Here End Sub
То текстбокс выводит следующие имена: *U13, *U10
Хотя с обычными (не параметрическими) блоками выводится оригинальное имя.
Что мне заменить в коде (name = MyBlockReference.name) чтобы и в случае параметрического блока выводилось оригинальное имя.
Кстати, если вставить много раз параметрический блок, не меняя параметра, то выводится именно оригинальное имя.