通过 objBlockRef.GetAttributes获取的属性对象,是不包含PromptString的,虽然有TagString和TextString。这个是由于PromptString只保存在块中,而不保存在块参照中。因此只需要再遍历一遍块,获取即可。
Private Sub GetBlockAttributePrompts()
Dim elem As Object
For Each elem In ThisDrawing.ModelSpace
If elem.EntityName = "AcDbBlockReference" Then
If elem.HasAttributes Then
'Get The Block Definition
Dim block As AcadBlock
Set block = ThisDrawing.Blocks.item(elem.Name)
Dim prompt As String
prompt = ""
Dim item As Object
For Each item In block
If item.EntityName = "AcDbAttributeDefinition" Then
prompt = prompt + Chr(13) + item.PromptString
End If
Next item
Debug.Print prompt
End If
End If
Next elem
End Sub