RegenerateTableSuppressed Property (ActiveX)

Enables or disables regeneration of the table block.

Supported platforms: Windows only

Signature

VBA:

object.RegenerateTableSuppressed
object

Type: Table

The object this property applies to.

Property Value

Read-only: No

Type: Boolean

Remarks

All methods that change the Table object do the following:

  1. Open the Table object in write mode
  2. Modify the Table object based on the input parameters
  3. Close the Table object, which recomputes the Table

Recomputing large tables consumes a lot of time and memory because the Table object is reconstructed from scratch.

To avoid performance problems, you should temporarily disable the regeneration of the Table object when modifying large tables through the API, then apply the modifications and re-enable regeneration.

Examples

VBA:

Sub Example_RegenerateTableSuppressed()
    Dim MyModelSpace As AcadModelSpace
    Dim MyTable As IAcadTable
    Dim pt(2) As Double
    Set MyModelSpace = ThisDrawing.ModelSpace
    Set MyTable = MyModelSpace.AddTable(pt, 100, 5, 5, 10)

    'Temporarily disable the recomputing of table block
    MyTable.RegenerateTableSuppressed = True

    Dim i As Integer, j As Integer
    For i = 0 To 99
        For j = 0 To 4
            Call MyTable.SetText(i, j, "my string " & i & ", " & j)
        Next j
    Next i

    'Now force the recomputing of table block
    'so that we can see the update table results
    MyTable.RegenerateTableSuppressed = False

    'You can also call RecomputeTableBlock(true) instead
    'to force the regeneration of table
    'MyTable.RecomputeTableBlock(True)
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_RegenerateTableSuppressed()
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    (setq pt (vlax-3d-point 0 0 0))
  
    (setq MyModelSpace (vla-get-ModelSpace doc))
    (setq MyTable (vla-AddTable MyModelSpace pt 100 5 5 10))

    ;; Temporarily disable the recomputing of table block
    (vla-put-RegenerateTableSuppressed MyTable :vlax-true)

    (setq i 1
          j 0)
  
    (while (>= 99 i)
        (while (>= 4 j)
            (vla-SetText MyTable i j (strcat "my string " (itoa i) ", " (itoa j)))

            (setq j (1+ j))
        )

        (setq i (1+ i)
              j 0)
    )

    ;; Now force the recomputing of table block
    ;; so that we can see the update table results
    (vla-put-RegenerateTableSuppressed MyTable :vlax-false)

    ;; You can also call (vla-RecomputeTableBlock obj :vl;ax-true) instead
    ;; to force the regeneration of table
    ;;(vla-RecomputeTableBlock MyTable :vlax-true)
)