<?xml encoding=”UTF-8″>By Augusto Goncalves
We can get the prompt string of an Attribute from the Attribute Definition contained in the Block Definition. The following sample code demonstrates this:
<font color="#0000a0">Private</font> <font color="#0000a0">Sub</font> GetBlockAttributePrompts()
<font color="#0000a0">Dim</font> elem <font color="#0000a0">As</font> <font color="#0000a0">Object</font>
<font color="#0000a0">For</font> <font color="#0000a0">Each</font> elem <font color="#0000a0">In</font> ThisDrawing.ModelSpace
<font color="#0000a0">If</font> elem.EntityName = "AcDbBlockReference" <font color="#0000a0">Then</font>
<font color="#0000a0">If</font> elem.HasAttributes <font color="#0000a0">Then<br></font>
<font color="#008000"> 'Get The Block Definition</font>
<font color="#0000a0">Dim</font> block <font color="#0000a0">As</font> AcadBlock
<font color="#0000a0">Set</font> block = ThisDrawing.Blocks.item(elem.Name)
<font color="#0000a0">Dim</font> prompt <font color="#0000a0">As</font> <font color="#0000a0">String</font>
prompt = ""
<font color="#0000a0">Dim</font> item <font color="#0000a0">As</font> <font color="#0000a0">Object</font>
<font color="#0000a0">For</font> <font color="#0000a0">Each</font> item <font color="#0000a0">In</font> block
<font color="#0000a0">If</font> item.EntityName = "AcDbAttributeDefinition" <font color="#0000a0">Then</font>
prompt = prompt + Chr(13) + item.PromptString
<font color="#0000a0">End</font> <font color="#0000a0">If</font>
<font color="#0000a0">Next</font> item
<font color="#0000a0">Debug.Print</font> prompt
<font color="#0000a0">End</font> <font color="#0000a0">If</font>
<font color="#0000a0">End</font> <font color="#0000a0">If</font>
<font color="#0000a0">Next</font> elem
<font color="#0000a0">End</font> <font color="#0000a0">Sub</font>

Leave a Reply