Creación de definiciones y referencias de atributos
From AutoCAD ActiveX
Para crear una referencia de atributo, es preciso crear antes una definición de atributo en un bloque mediante el método AddAttribute. Este método requiere seis valores de entrada: la altura del texto de atributo, el modo de atributo, la cadena de mensaje, el punto de inserción, la cadena de identificación y el valor por defecto del atributo.
El valor del modo es opcional. Se pueden introducir cinco constantes para especificar el modo de atributo:
- acAttributeModeNormal
- acAttributeModeInvisible
- acAttributeModeConstant
- acAttributeModeVerify
- acAttributeModePreset
Puede introducir cualquier combinación de opciones, todas ellas o ninguna. Si desea especificar una combinación de opciones, añada las constantes juntas. Por ejemplo, podrá introducir acAttributeModeInvisible + acAttributeModeConstant.
La cadena de mensaje aparece al insertar un bloque que contiene el atributo. El valor por defecto de esta cadena es la cadena Tag. Introduzca el modo acAttributeModeConstant para desactivar el mensaje.
El identificador reconoce cada aparición del atributo. Puede utilizar cualquier carácter salvo espacios o signos de admiración. AutoCAD convierte las letras minúsculas en mayúsculas.
Una vez que la definición de atributo se ha incorporado al bloque, siempre que inserte el bloque con el método InsertBlock podrá especificar un valor distinto para la referencia de atributo.
La definición de atributo está asociada al bloque sobre el que se crea. Las definiciones de atributo que se crean en espacio modelo o espacio papel no se consideran enlazadas a ningún bloque determinado.
Creación de una definición de atributo
Este ejemplo crea un bloque y le añade un atributo. Después se inserta el bloque en el dibujo.
Sub Ch10_CreatingAnAttribute()
' Define the block
Dim blockObj As AcadBlock
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.Blocks.Add _
(insertionPnt, "BlockWithAttribute")
' Add an attribute to the blockDim attributeObj As AcadAttributeDim height As DoubleDim mode As LongDim prompt As StringDim insertionPoint(0 To 2) As DoubleDim tag As StringDim value As Stringheight = 1mode = acAttributeModeVerifyprompt = "New Prompt"insertionPoint(0) = 5insertionPoint(1) = 5insertionPoint(2) = 0tag = "New Tag"value = "New Value"Set attributeObj = blockObj.AddAttribute(height, mode, _prompt, insertionPoint, tag, value)' Insert the block, creating a block reference' and an attribute referenceDim blockRefObj As AcadBlockReferenceinsertionPnt(0) = 2insertionPnt(1) = 2insertionPnt(2) = 0Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _(insertionPnt, "BlockWithAttribute", 1#, 1#, 1#, 0)End Sub