(изменено: shprot, 30 апреля 2012г. 15:22:39)

Тема: Как получить доступ к свойствам дин. блока в VBA

Имеется выбранный динамический блок, как получить доступ к его свойствам. Например в блоке есть параметр длина, значение которого видно в свойствах блока, как это значение получить программно в VBA (имя блока известно)? Заранее благодарен.

Re: Как получить доступ к свойствам дин. блока в VBA

Попробуй такой вариант, только измени название имени
свойства "Wall Height distance" в коде:

Public Sub ChangeDynProps()
' not tested
' tested on A2009 only
     Dim ss As AcadSelectionSet
     Dim ent As AcadEntity
     Dim bname As String
   Dim props() As AcadDynamicBlockReferenceProperty
     Dim pvalue As Variant
     Dim blkref As AcadBlockReference
     Dim n As Long
     
     
     With ThisDrawing.SelectionSets
          While .Count > 0
               .Item(0).Delete
          Wend
          Set ss = .Add("$DynBlocks$")
     End With

     Dim ftype(0) As Integer
     Dim fdata(0) As Variant

     ftype(0) = 0
     fdata(0) = "INSERT"
     ss.SelectOnScreen ftype, fdata
     
  If ss.Count = 0 Then
  MsgBox "No blocks selected...Exit"
  Exit Sub
  End If
  
For n = 0 To ss.Count - 1
  Set blkref = ss.Item(n)
  If blkref.IsDynamicBlock Then

  Dim i As Integer
  props = blkref.GetDynamicBlockProperties
 
  Dim prop As AcadDynamicBlockReferenceProperty
  ReDim propArray(UBound(props), 1)
  
For i = LBound(props) To UBound(props)
Set prop = props(i)
If prop.PropertyName = "Wall Height distance" Then '<--- Change a property name here
prop.Value = 300#   '<--- Change a property value here
Exit For
End If

Next i

End If

Next n

End Sub

[COLOR=#3333BB]

~'J'~

[/COLOR]

Спасибо сказали: TiDi1

Re: Как получить доступ к свойствам дин. блока в VBA

Решил попользовать код, любезно предоставленной fixo.
Мне приходится использовать встроенные макросы Excel в качестве IDE, т.к. на работе располагаю только этим)
У меня ряд вопросов по этому коду.
1) Он вышибает мне Excel, напрочь. После строчки

If prop.PropertyName = "Мой параметр" Then

AutoCAD 2022 (прикрепил бы .dwg, но форум не дает два файла сразу подгрузить)
2)Почему ReDim происходит переменной propArray, которая даже не объявлена?! по логике там должна быть props

Post's attachments

вылетает.xlsm 12.75 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.