25/06/2015
					Получение постоянных атрибутов вставки блока при помощи VBA
Как можно получить имя блока, значения атрибутов, найти количество вставок блока и всё это внести в таблицу при помощи VBA? Получаем информацию о блоке из определения блока в таблице блоков.Следующий пример показывает это, получая все атрибуты всех вставок блоков из пространства модели. Вам нужно создать простую форму содержащую listbox с именем ListBox1 и кнопку, запускающую следующую процедуру:
Код - VBA: [Выделить]
					- Private Sub CommandButton1_Click()
 - Dim elem As Object
 - Dim block As AcadBlock
 - Dim item As Object
 - Dim Array1 As Variant
 - Dim count As Integer
 - Dim MBtest1 As String
 - Dim str As String
 - For Each elem In ThisDrawing.ModelSpace
 - If elem.EntityName = "AcDbBlockReference" Then
 - If elem.HasAttributes Then
 - Array1 = elem.GetAttributes
 - If (Array1(count).EntityName) = "AcDbAttribute" Then
 - MBtest1 = Array1(count).TagString & _
 - " - " & Array1(count).TextString
 - ListBox1.AddItem MBtest1
 - End If
 - Next count
 - ' Получаем определение блока из таблицы блоков
 - str = elem.Name
 - Set block = ThisDrawing.Blocks.item(str)
 - For Each item In block
 - str = item.EntityName
 - ' Получаем постоянные атрибуты
 - If item.EntityName = "AcDbAttributeDefinition" Then
 - If item.Mode = acAttributeModeConstant Then
 - ListBox1.AddItem item.TagString & " - " _
 - & item.TextString
 - End If
 - End If
 - Next item
 - End If
 - End If
 - Next elem
 - End Sub
 
                        
						Автор перевода: Александр Ривилис
						
Отредактировано 26.06.2015 в 00:15:18
				Обсуждение: http://adn-cis.org/forum/index.php?topic=2818
Опубликовано 25.06.2015Отредактировано 26.06.2015 в 00:15:18