Represents a diametric dimension entity in AutoCAD.

This dimension type measures the diameter of a circle or arc by defining two points that lie on the curve and are diametrically opposite each other. Diametric dimensions are essential for circular features in mechanical drawings, architectural plans, and other technical documentation.

The dimension behavior varies based on text placement:

  • If the text is inside the curve being dimensioned, the dimension line will be drawn from the farChordPoint to the chordPoint, with a break for the annotation text.
  • If the dimension text is outside the curve being dimensioned, the dimension line is drawn from the farChordPoint, through the chordPoint, and extends out the leaderLength distance past the chordPoint, where it will do a short horizontal dogleg (if appropriate) to the annotation text.

Hierarchy (View Summary)

Constructors

  • Creates a new diametric dimension.

    Parameters

    • chordPoint: AcGeVector3dLike

      The point (in WCS coordinates) on the curve being dimensioned where the dimension line intersects and extends outside the curve (if the text is outside the curve)

    • farChordPoint: AcGeVector3dLike

      The point (in WCS coordinates) on the curve being dimensioned that is diametrically opposite the chordPoint. This defines the other end of the diameter measurement

    • leaderLength: number = 0

      The distance from the chordPoint to where the dimension will do a horizontal dogleg to the annotation text. This is only used when the text is outside the curve

    • dimText: null | string = null

      Optional custom dimension text to display instead of the calculated diameter value. If null, the calculated diameter will be displayed

    • dimStyle: null | string = null

      Optional name of the dimension style table record to use for formatting. If null, the current default style will be used

    Returns AcDbDiametricDimension

Properties

typeName: string = 'DiametricDimension'

The entity type name

Accessors

  • get database(): AcDbDatabase
  • Gets the database in which this object is resident.

    When an object isn't added to a database, this property returns the current working database. After it is added to a database, it will be set automatically. You should never set this value manually.

    Returns AcDbDatabase

    The database this object belongs to

    const db = obj.database;
    
  • set database(db: AcDbDatabase): void
  • Sets the database for this object.

    This is typically set automatically when the object is added to a database. Manual setting should be avoided unless you know what you're doing.

    Parameters

    Returns void

    obj.database = myDatabase;
    
  • get dimBlockId(): null | string
  • Gets the block table record ID containing the entities that this dimension displays.

    Returns null | string

    The block table record ID, or null if not set

    const blockId = dimension.dimBlockId;
    console.log(`Dimension block ID: ${blockId}`);
  • set dimBlockId(value: null | string): void
  • Sets the block table record ID for this dimension.

    Parameters

    • value: null | string

      The block table record ID, or null to clear

    Returns void

    dimension.dimBlockId = "MyDimensionBlock";
    
  • get dimBlockPosition(): AcGePoint3d
  • Gets the relative position point of the block referenced by the dimension (in WCS coordinates). The block position is the insertion point of the block referenced by the dimension, relative to the primary definition point (DXF group code 10) of the dimension itself.

    The block position (in WCS) is added to the dimension primary definition point (also in WCS) to get the actual insertion point for the anonymous block that is referenced by the dimension. So, for example, changing a dimension's block position from (0,0,0) to (0,0,1) (in WCS) will cause the dimension to display as though it has been moved 1 unit along the WCS Z axis.

    For a dimension newly created via any dimension command, the block position will be (0,0,0). For copies of existing dimensions, or if a dimension is moved, the block position will be the offset vector (in WCS) from where the original dimension was located. For example, moving a dimension 1 unit down the WCS Y axis will cause AutoCAD to update the block position value from (0,0,0) to (0,-1,0) (in WCS coordinates).

    The position point is used for DXF group code 12.

    Returns AcGePoint3d

    The relative position point of the block referenced by the dimension.

  • set dimBlockPosition(value: AcGeVector3dLike): void
  • Sets the relative position point of the block referenced by the dimension (in WCS coordinates). The block position is the insertion point of the block referenced by the dimension, relative to the primary definition point (DXF group code 10) of the dimension itself.

    The block position (in WCS) is added to the dimension primary definition point (also in WCS) to get the actual insertion point for the anonymous block that is referenced by the dimension. So, for example, changing a dimension's block position from (0,0,0) to (0,0,1) (in WCS) will cause the dimension to display as though it has been moved 1 unit along the WCS Z axis.

    For a dimension newly created via any dimension command, the block position will be (0,0,0). For copies of existing dimensions, or if a dimension is moved, the block position will be the offset vector (in WCS) from where the original dimension was located. For example, moving a dimension 1 unit down the WCS Y axis will cause AutoCAD to update the block position value from (0,0,0) to (0,-1,0) (in WCS coordinates).

    The position point is used for DXF group code 12.

    Parameters

    • value: AcGeVector3dLike

      The relative position point of the block referenced by the dimension.

    Returns void

  • get dimensionStyle(): AcDbDimStyleTableRecord
  • Gets the dimension style used by this dimension.

    This method returns the dimension style record associated with this dimension. If no style is specified, it returns the default dimension style.

    Returns AcDbDimStyleTableRecord

    The dimension style record

    const style = dimension.dimensionStyle;
    console.log(`Style name: ${style.name}`);
  • get dimensionStyleName(): null | string
  • Gets the dimension style name used by this dimension.

    Returns null | string

    The dimension style name, or null if not set

    const styleName = dimension.dimensionStyleName;
    console.log(`Dimension style: ${styleName}`);
  • set dimensionStyleName(value: null | string): void
  • Sets the dimension style name for this dimension.

    Parameters

    • value: null | string

      The dimension style name, or null to use default

    Returns void

    dimension.dimensionStyleName = "Standard";
    
  • get dimensionText(): null | string
  • Gets the user-supplied dimension annotation text string.

    This string can contain multiline text formatting characters. The text can be:

    • Empty string ('') for default text only
    • Text with angle brackets for mixed default and user text (e.g., 'This is the default text <>')
    • Period ('.') for no text
    • User-defined text only

    Returns null | string

    The dimension text string

    const text = dimension.dimensionText;
    console.log(`Dimension text: ${text}`);
  • set dimensionText(value: null | string): void
  • Parameters

    • value: null | string

    Returns void

  • get geometricExtents(): AcGeBox3d
  • Gets the geometric extents of this entity.

    This method should be implemented by subclasses to return the bounding box that encompasses the entire entity.

    Returns AcGeBox3d

    The geometric extents as a 3D bounding box

    const extents = entity.geometricExtents;
    console.log(`Min: ${extents.minPoint}, Max: ${extents.maxPoint}`);
  • get isAppendArrow(): boolean
  • The flag to determinate how to attach arrow to endpoint of the line.

    • true: append arrow to endpoint of the line
    • false: overlap arrow with endpoint of the line

    Returns boolean

  • get layer(): string
  • Gets the name of the layer referenced by this entity.

    Returns string

    The layer name

    const layerName = entity.layer;
    
  • set layer(value: string): void
  • Sets the name of the layer for this entity.

    Parameters

    • value: string

      The new layer name

    Returns void

    entity.layer = 'MyLayer';
    
  • get leaderLength(): number
  • Gets the leader length for the dimension.

    The leader length is the distance from the chordPoint dimension definition point, out to where the dimension will do a horizontal dogleg to the annotation text (or stop if no dogleg is necessary). This is only used when the text is outside the curve being dimensioned.

    Returns number

    The leader length in drawing units

  • get lineStyle(): AcGiLineStyle
  • Gets the line style for this entity.

    This method returns the line style based on the entity's linetype and other properties.

    Returns AcGiLineStyle

    The line style object

    const lineStyle = entity.lineStyle;
    
  • get lineType(): string
  • Gets the name of the line type referenced by this entity.

    Returns string

    The linetype name

    const lineType = entity.lineType;
    
  • set lineType(value: string): void
  • Sets the name of the line type for this entity.

    Parameters

    • value: string

      The new linetype name

    Returns void

    entity.lineType = 'DASHED';
    
  • get linetypeScale(): number
  • Gets the line type scale factor of this entity.

    When an entity is first instantiated, its line type scale is initialized to an invalid value. When the entity is added to the database, if a linetype scale has not been specified for the entity, it is set to the database's current line type scale value.

    Returns number

    The linetype scale factor

    const scale = entity.linetypeScale;
    
  • set linetypeScale(value: number): void
  • Sets the line type scale factor for this entity.

    Parameters

    • value: number

      The new linetype scale factor

    Returns void

    entity.linetypeScale = 2.0;
    
  • get objectId(): string
  • Gets the object ID.

    AutoCAD uses 64-bit integers to represent handles, which exceed the maximum integer value of JavaScript. Therefore, strings are used to represent object handles.

    Returns string

    The object ID as a string

    const id = obj.objectId;
    console.log(`Object ID: ${id}`);
  • set objectId(value: string): void
  • Sets the object ID.

    Parameters

    • value: string

      The new object ID

    Returns void

    obj.objectId = 'new-object-id';
    
  • get ownerId(): string
  • Gets the object ID of the owner of this object.

    Returns string

    The owner object ID

    const ownerId = obj.ownerId;
    
  • set ownerId(value: string): void
  • Sets the object ID of the owner of this object.

    Parameters

    • value: string

      The new owner object ID

    Returns void

    obj.ownerId = 'parent-object-id';
    
  • get properties(): AcDbEntityProperties
  • Returns the full property definition for this entity, including all property groups and runtime accessors.

    This getter is used by the property inspector UI to:

    • determine the layout and grouping of properties,
    • look up editable flags and metadata,
    • read/write live values on this entity using accessors.

    The returned structure contains:

    • static metadata (label, type, group structure),
    • dynamic accessor bindings that expose the actual values stored in the entity.

    Note: The groups array contains AcDbEntityPropertyGroup objects whose properties entries are runtime-resolved property descriptors that include AcDbPropertyAccessor objects. Each property object therefore conforms to AcDbEntityRuntimeProperty.

    Returns AcDbEntityProperties

  • get rgbColor(): number
  • Gets the RGB color of this entity.

    This method handles the conversion of color indices (including ByLayer and ByBlock) to actual RGB colors. It resolves layer colors and block colors as needed.

    Returns number

    The RGB color value as a number

    const rgbColor = entity.rgbColor;
    console.log(`RGB: ${rgbColor.toString(16)}`);
  • get textRotation(): number
  • The rotation angle (in radians) of the dimension's annotation text. This is the angle from the dimension's horizontal axis to the horizontal axis used by the text. The angle is in the dimension's OCS X-Y plane with positive angles going counterclockwise when looking down the OCS Z axis towards the OCS origin. The value obtained from: (2 * pi) + the dimension's text rotation angle--the dimension's horizontal rotation angle

    Returns number

  • set textRotation(value: number): void
  • Parameters

    • value: number

    Returns void

  • get type(): string
  • Gets the type name of this entity.

    This method returns the entity type by removing the "AcDb" prefix from the constructor name.

    Returns string

    The entity type name

    const entity = new AcDbLine();
    console.log(entity.type); // "Line"
  • get visibility(): boolean
  • Gets whether this entity is visible.

    Returns boolean

    True if the entity is visible, false otherwise

    const isVisible = entity.visibility;
    
  • set visibility(value: boolean): void
  • Sets whether this entity is visible.

    Parameters

    • value: boolean

      True to make the entity visible, false to hide it

    Returns void

    entity.visibility = false; // Hide the entity
    

Methods

  • Attaches entity information to a graphic interface entity.

    This method transfers essential entity properties (object ID, owner ID, layer name, and visibility) from this entity to the target graphic interface entity. This is typically used during the rendering process to ensure the graphic entity has the correct metadata.

    Parameters

    • target: undefined | null | AcGiEntity

      The graphic interface entity to attach information to

    Returns void

  • Closes the object.

    All changes made to the object since it was opened are committed to the database, and a "closed" notification is sent. This method can be overridden by subclasses to provide specific cleanup behavior.

    Returns void

    obj.close();
    
  • Gets the value of the specified attribute.

    This method will throw an exception if the specified attribute doesn't exist. Use getAttrWithoutException() if you want to handle missing attributes gracefully.

    Parameters

    • attrName: string

      The name of the attribute to retrieve

    Returns any

    The value of the specified attribute

    When the specified attribute doesn't exist

    try {
    const value = obj.getAttr('objectId');
    } catch (error) {
    console.error('Attribute not found');
    }
  • Gets the value of the specified attribute without throwing an exception.

    This method returns undefined if the specified attribute doesn't exist, making it safer for optional attributes.

    Parameters

    • attrName: string

      The name of the attribute to retrieve

    Returns any

    The value of the specified attribute, or undefined if it doesn't exist

    const value = obj.getAttrWithoutException('optionalAttribute');
    if (value !== undefined) {
    // Use the value
    }
  • Gets the object snap points for this entity.

    Object snap points are the points that can be used for precise positioning when drawing or editing. This method should be overridden by subclasses to provide entity-specific snap points.

    Parameters

    • osnapMode: AcDbOsnapMode

      The object snap mode

    • pickPoint: AcGePoint3dLike

      The pick point

    • lastPoint: AcGePoint3dLike

      The last point

    • snapPoints: AcGePoint3d[]

      Array to populate with snap points

    Returns void

    const snapPoints: AcGePoint3d[] = [];
    entity.subGetOsnapPoints(AcDbOsnapMode.Endpoint, 0, pickPoint, lastPoint, snapPoints);
  • Transforms this entity by the specified matrix.

    This method applies a geometric transformation to the entity. Subclasses should override this method to provide entity-specific transformation behavior.

    Parameters

    Returns this

    This entity after transformation

    const matrix = AcGeMatrix3d.translation(10, 0, 0);
    entity.transformBy(matrix);