per chi fosse interessato dallo spunto di bolo ho creato la procedura degli express "explode atributo to text" in vba... praticamente fa la stessa cosa, ma non sir avere gli express caricati per farla funzionare.
permette però di visualizzare o meno gli attributi invisili una volta convertiti em testo.
público sub explode_att_text()
dim sset2 como acadselectionset
dim blocco como acadblockreference
dim sset3 como acadselectionset
dim attributo as acadentity
dim vlabel(0 a 100) como variante
dim vtext(0 a 100) como variante
dim kwordlist como string
kwordlist = "s n"
thisdrawing.utility.initializeuserinput 1, kwordlist
estedrawing.utility.prompt vblf & vblf
dim retornatring como string
retornatring = thisdrawing.utility.getkeyword("visualizzare attributi nascosti? (s)

: ")
em resumo de erro em seguida
se não fornull(thisdrawing.selectionsets.item("blocco") então
set sset2 = thisdrawiang.selectionsets.item("blocco")
sset2.delete
terminar se
set sset2 = thisdrawing.selectionsets.add("blocco")
dim filtertype(0) como inteiro
dim filterdata(0) como variante
filtertype(0) = 0
filterdata(0) = "inserir"
Tipo de filtro(1) = 2
'filtro de dados(1) = "numvan"
sset2.select acselectionsetall, , , filtertype, filterdata
para cada blocco no sset2
se blocco. temattributs então
dim array1 como variante
array1 = blocco.getattributes
para i = lbound (array1) para ubound (array1)
vlabel(i) = array1(i).tagstring
vtext(i) = array1(i).textstring
debug.print (vtext(i))
Próximo eu
Blocco.explode
Blocco. excluir
em resumo de erro em seguida
se não fornull(thisdrawing.selectionsets.item("attributo") então
set sset3 = thisdrawiang.selectionsets.item("atributo")
sset3.delete
terminar se
set sset3 = thisdrawing.selectionsets.add("atributo")
dim filtertype1(0) como inteiro
dim filterdata1(0) como variante
filtertype1(0) = 0
filterdata1(0) = "attdef"
sset3.select acselectionsetall, , , filtertype1, filterdata1
se retornatring = ", então retornatring = "s"
para cada atributo em sset3
se ucase (returnstring) = "n" então
se attributo.invisible = true então attributo. excluir
terminar se
para i = lbound (array1) para ubound (array1)
se attributo.tagstring = vlabel(i) então
atributo.tagstring = vtext(i)
terminar se
Próximo eu
em seguida
terminar se
sset3.delete
próximo bloco
sset2.delete
end sub