UnitsFormat Property (ActiveX)

Specifies the unit format for all dimensions except angular.

Supported platforms: Windows only

Signature

VBA:

object.UnitsFormat
object

Type: DimAligned, DimArcLength, DimDiametric, DimOrdinate, DimRadial, DimRadialLarge, DimRotated

The object this property applies to.

Property Value

Read-only: No

Type: acDimLUnits enum

Remarks

The initial value for this property is acDimLDecimal.

If this property is set to acDimLDecimal, the format specified by the DecimalSeparator and PrimaryUnitsPrecision properties will be used to format the decimal value.

To create a stacked architectural or fractional unit format, use the FractionFormat property.

Note: This property overrides the value of the DIMLUNIT system variable for the given dimension.

Examples

VBA:

Sub Example_UnitsFormat()
   ' This example creates an aligned dimension in model space and
   ' uses UnitsFormat to cycle through some common unit formats
   ' for the dimension

    Dim dimObj As AcadDimAligned
    Dim point1(0 To 2) As Double, point2(0 To 2) As Double
    Dim location(0 To 2) As Double
    
    ' Define the dimension
    point1(0) = 0: point1(1) = 5: point1(2) = 0
    point2(0) = 5.12345678: point2(1) = 5: point2(2) = 0
    location(0) = 5: location(1) = 7: location(2) = 0
    
    ' Create an aligned dimension object in model space
    Set dimObj = ThisDrawing.ModelSpace.AddDimAligned(point1, point2, location)
    ThisDrawing.Application.ZoomAll
    
    ' Cycle through common unit formats
    
    dimObj.UnitsFormat = acDimLScientific     ' Change format to Scientific
    ThisDrawing.Regen acAllViewports
    MsgBox "The dimension units are now set to Scientific"
    
    dimObj.UnitsFormat = acDimLDecimal        ' Change format to Decimal
    ThisDrawing.Regen acAllViewports
    MsgBox "The dimension units are now set to Decimal"
    
    dimObj.UnitsFormat = acDimLArchitectural  ' Change format to Architectural
    ThisDrawing.Regen acAllViewports
    MsgBox "The dimension units are now set to Architectural"
    
    dimObj.UnitsFormat = acDimLWindowsDesktop ' Change format to WindowsDesktop
    ThisDrawing.Regen acAllViewports
    MsgBox "The dimension units are now set to Windows Desktop"

End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_UnitsFormat()
    ;; This example creates an aligned dimension in model space and
    ;; uses UnitsFormat to cycle through some common unit formats
    ;; for the dimension
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Define the dimension
    (setq point1 (vlax-3d-point 0 5 0)
          point2 (vlax-3d-point 5.12345678 5 0)
          location (vlax-3d-point 5 7 0))
    
    ;; Create an aligned dimension object in model space
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq dimObj (vla-AddDimAligned modelSpace point1 point2 location))
    (vla-ZoomAll acadObj)
    
    ;; Cycle through common unit formats
    (vla-put-UnitsFormat dimObj acDimLScientific)     ;; Change format to Scientific
    (vla-Regen doc acAllViewports)
    (alert "The dimension units are now set to Scientific")
    
    (vla-put-UnitsFormat dimObj acDimLDecimal)        ;; Change format to Decimal
    (vla-Regen doc acAllViewports)
    (alert "The dimension units are now set to Decimal")
    
    (vla-put-UnitsFormat dimObj acDimLArchitectural)  ;; Change format to Architectural
    (vla-Regen doc acAllViewports)
    (alert "The dimension units are now set to Architectural")
    
    (vla-put-UnitsFormat dimObj acDimLWindowsDesktop) ;; Change format to WindowsDesktop
    (vla-Regen doc acAllViewports)
    (alert "The dimension units are now set to Windows Desktop")
)