Constant Property (ActiveX)

Specifies whether the attribute or attribute reference is constant or not.

Supported platforms: Windows only

Signature

VBA:

object.Constant
object

Type: Attribute, AttributeReference

The objects this property applies to.

Property Value

Read-only: No, Attribute objects; Yes, AttributeReference objects

Type: Boolean

Remarks

A constant attribute is one that maintains the same value in every occurrence. AutoCAD does not prompt for a value of constant attributes. An attribute can exist as only one of four optional modes: constant, preset, invisible, or verify.

Note: The AFLAGS system variable stores the current mode settings. You can query the current mode using the Mode property.

Examples

VBA:

Sub Example_Constant()
    ' This example creates an attribute definition in model space.
    ' It then queries the attribute to see if it is a constant attribute.
    
    Dim attributeObj As AcadAttribute
    Dim height As Double
    Dim mode As Long
    Dim prompt As String
    Dim insertionPoint(0 To 2) As Double
    Dim tag As String
    Dim value As String
    
    ' Define the attribute definition
    height = 1#
    mode = acAttributeModeVerify
    prompt = "New Prompt"
    insertionPoint(0) = 5#: insertionPoint(1) = 5#: insertionPoint(2) = 0
    tag = "New_Tag"
    value = "New Value"
    
    ' Create the attribute definition object in model space
    Set attributeObj = ThisDrawing.ModelSpace.AddAttribute(height, mode, prompt, insertionPoint, tag, value)
    ZoomAll
            
    ' Query the attribute
    GoSub QUERYSTATUS
    
    ' Change the attribute
    attributeObj.constant = Not attributeObj.constant
    GoSub QUERYSTATUS
    
    Exit Sub
    
QUERYSTATUS:
    If attributeObj.constant Then
        MsgBox "The attribute is a constant attribute."
    Else
        MsgBox "The attribute is not a constant attribute."
    End If
    Return
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Constant()
    ;; This example creates an attribute definition in model space.
    ;; It then queries the attribute to see if it is a constant attribute.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Define the attribute definition
    (setq insertionPoint (vlax-3d-point 5 5 0)  
          attHeight 1
          attMode acAttributeModeVerify
          attPrompt "New Prompt"
          attTag "New_Tag"
          attValue "New Value")
    
    ;; Create the attribute definition object in model space
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq attributeObj (vla-AddAttribute modelSpace attHeight attMode attPrompt insertionPoint attTag attValue))
    (vla-ZoomAll acadObj)
            
    ;; Query the attribute
    (if (= (vla-get-Constant attributeObj) :vlax-true)
        (alert "The attribute is a constant attribute.")
        (alert "The attribute is not a constant attribute.")
    )
  
    ;; Change the attribute
    (vla-put-Constant attributeObj (if (= (vla-get-Constant attributeObj) :vlax-true) :vlax-false :vlax-true))
  
    (if (= (vla-get-Constant attributeObj) :vlax-true)
        (alert "The attribute is a constant attribute.")
        (alert "The attribute is not a constant attribute.")
    )
)