任意の Block オブジェクトのメソッドおよびプロパティを使用して、ブロックを再定義します。
ブロックを再定義すると、図面内のそのブロックへのすべての参照がすぐに更新され、新しい定義を反映します。
再定義は、再定義以前および以降のすべてのブロックの挿入に影響します。定数属性は失われ、新しい定数属性に置き換えられます。変数属性は、新しいブロックに属性がない場合でも変更されません。
次の例では、ブロックを定義し、その定義に円を追加します。次に、ブロック参照としてブロックを図面に挿入します。ブロック定義にある円を更新すると、ブロック参照が自動的に更新されます。
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