Para redefinir un bloque se puede utilizar cualquiera de los métodos y propiedades del objeto Block. Al redefinir un bloque, todas las referencias a ese bloque del dibujo se actualizarán inmediatamente para reflejar la nueva definición.
La redefinición afecta a las inserciones de bloque ya efectuadas y a las futuras. Los atributos constantes se pierden y son reemplazados por atributos constantes nuevos. Los atributos variables permanecen intactos, incluso si el nuevo bloque no tiene atributos.
Redefinición de objetos en una definición de bloque
Este ejemplo crea un bloque y añade un círculo a su definición. Después se inserta el bloque en un dibujo, como referencia de bloque. El círculo de la definición de bloque se actualiza y la referencia de bloque se actualiza automáticamente.
Sub Ch10_RedefiningABlock()
' 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, "CircleBlock")
' Add a circle to the block
Dim circleObj As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 0
center(1) = 0
center(2) = 0
radius = 1
Set circleObj = blockObj.AddCircle(center, radius)
' Insert the block
Dim blockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
ZoomAll
' Redefine the circle in the block,
' and update the block reference
circleObj.radius = 3
blockRefObj.Update
End Sub