Skip to main content

DIQ_Dimension

Last updated 28/02/2026

Purpose

The

DIQ_Dimension
type represents a single measurable entity created within a layout in DimensionIQ.

It defines the structural, geometric, quantitative, and relational metadata required for the DimensionIQWidget to correctly calculate, display, persist and associate individual measurements within a project.

A

DIQ_Dimension
enables:

  • Representation of a single measured object
  • Association with a dimension group
  • Association with a specific layout
  • Storage of calculated measurement values (length, area, volume, etc)
  • Support for elevation-aware measurements
  • Tracking of BIM-linked objects
  • State-based lifecycle management
  • Accurate quantity and cost workflows

This type is commonly used when:

  • Creating or editing measurements
  • Persisting measurement data to a backend
  • Synchronizing widget state with a host application
  • Calculating quantities and totals
  • Linking measured objects to BIM elements
  • Generating reports or exports
  • Tracking measurement revisions

By standardizing the structure of a dimension, DimensionIQ ensures consistent calculation, rendering, and persistent behavior across host integrations.

Why This Type Exists

Projects often contain thousands of measurements across multiple drawings, layouts, and groups. Each measurement may represent:

  • A linear takeoff
  • A surface area
  • A vertical facade area
  • A volume calculation
  • A counted object
  • A BIM-linked element
  • A weighted material quantity

Without a strict structural contract, managing this data becomes inconsistent and error-prone. The

DIQ_Dimension
type exists to:

  • Provide a consistent representation of a single measurement
  • Ensure predictable calculation outputs
  • Decouple measurement data from UI rendering logic
  • Enable backend persistence and synchronization
  • Support grouping and layout relationships
  • Allow lifecycle tracking (new, updated, deleted, etc)
  • Enable integration with BIM systems

Because each measurement carries both geometric and quantitative information, the widget requires a clearly defined data structure.

DIQ_Dimension
provides that contract.

Properties

PropertiesTypeRequiredDescription
key
string
YesUnique identifier for the dimension
groupKey
string
YesReferences the dimension group this dimension belongs to
layoutKey
string
YesReferences the layout where the dimension was created
name
string
YesUser-defined label for the dimension
state
string
YesLifecycle state of the dimension (eg, new, updated, deleted, unchanged)
type
string
YesMeasurement type (eg, linear, area, volume, count)
count
number
YesNumber of measured instances (for count-based dimensions)
height
number
NoHeight used in calculations (often for vertical or volumetric measurements)
offset
number
NoElevation offset applied to the dimension
length
number
NoCalculated horizontal length
elevatedLength
number
NoLength adjusted for elevation or slope
area
number
NoCalculated surface area
verticalArea
number
NoCalculated vertical area (eg, wall face)
volume
number
NoCalculated volume
weight
number
NoCalculated or derived weight
bimID
string
NoIdentifier linking this dimension to a BIM element
drawingObject
string
YesSerialized representation of the graphical object in the drawing

Behavioral Expectations

Identity and Association
  • key
    must be unique and stable
  • groupKey
    must reference a valid dimension group
  • layoutKey
    must reference a valid layout within a drawing
  • A dimension cannot exist without being associated to both a group and a layout
  • bimID
    , when provided, should reference a valid BIM object in the host system
Measurement Calculations

The widget is responsible for computing:

  • length
  • elevatedLength
  • area
  • verticalArea
  • volume
  • weight

These values:

  • Must reflect the geometry defined in the
    drawingObject
  • May depend on
    height
    and
    offset
  • Must stay consistent with the measurement
    type

The host application should treat these as authoritative computed output unless explicitly recalculated server-side.

State Management

The

state
property enables synchronization with the host system. Common lifecycle states may include:

  • new
  • updated
  • deleted
  • unchanged

This allows the host to:

  • Persist only modified dimensions
  • Remove deleted dimensions
  • Track revision changes
  • Maintain audit integrity
Group and Layout Relationships
  • groupKey
    determines logical categorization
  • layoutKey
    determines physical drawing context
  • Changing a group does not alter geometric data
  • Moving a dimension between layouts updates
    layoutKey
  • Deleting a group or layout may require reassignment or removal of dimensions
Display Behavior
  • name
    is the primary user-facing identifier
  • type
    influences how the measurement is rendered and calculated
  • drawingObject
    defines how the dimension appears visually
  • Elevation-aware measurements rely on
    height
    and
    offset
  • Quantitative properties are displayed in panels, reports, or summaries
BIM Integration

When

bimID
is provided:

  • The dimension is associated with a BIM model element
  • Changes to the BIM object may affect measurement calculations
  • Host systems may use this ID for synchronization or clash detection

If no

bimID
is provided, the dimension is considered drawing-based only.

Summary

DIQ_Dimension
defines the complete structural and quantitative representation of a single measurement within DimensionIQ.

It ensures that:

  • Measurements are consistently calculated
  • Dimensions are correctly associated with groups and layouts
  • Geometric and quantitative data remain synchronized
  • Lifecycle changes can be tracked
  • BIM integrations are supported
  • Host applications can reliably persist and process measurement data

By standardizing individual measurement data, DimensionIQ provides scalable, accurate, and integration-ready quantity management across complex projects.