Skip to main content

DIQ_Storage

Last updated 22/07/2026

Overview

The

DIQ_Storage
type represents the binary storage associated with a drawing. It contains the drawing stream (blob) required by DimensionIQ to load, parse, and display drawing content.

The drawing data is stored separately from drawing metadata to allow the host application to implement an appropriate storage strategy. Depending on the application's architecture, the drawing stream may be stored in a database, file system, cloud object storage (such as Amazon S3), or another storage provider.

When DimensionIQ requires access to a drawing, it requests the corresponding

DIQ_Storage
object from the host application using the
onStorageGet(storageKey, onResponse)
capability callback. The host application is responsible for retrieving the stored object and returning it to DimensionIQ.

The drawing content may be supplied in one of two ways:

  • Via the
    storage
    property, which contains the drawing stream or blob directly
  • Via the
    sourceURL
    property, which specifies an HTTP or HTTPS location where the drawing can be retrieved

At least one of these properties must be provided. If

sourceURL
is supplied, the
storage
property is not required. Likewise, if the drawing content is provided directly in
storage
,
sourceURL
is not required.

DIQ_Storage
objects are managed by the host application and should be persisted using the storage mechanism most appropriate for the application's infrastructure.

Properties

PropertyTypeRequiredDescription
key
string
YesUnique identifier for the storage object
storage
string
NoThe drawing stream or blob data, this property is required when
sourceURL
is not supplied
sourceURL
string
NoOptional HTTP or HTTPS URL identifying the external location of the drawing content, this property is required when
storage
is not supplied

Implementation Guidelines

Data Persistence

The host application is responsible for persisting

DIQ_Storage
objects using its preferred storage mechanism.

Unlike most DimensionIQ objects,

DIQ_Storage
is intentionally separated from drawing metadata to allow large drawing files to be managed independently. This provides flexibility for the host application to choose the storage solution that best fits its architecture, including relational or document databases, local or network file systems, cloud object storage services such as Amazon S3, blob storage services, or other enterprise storage solutions.

Each

DIQ_Storage
object must provide the drawing content using either the
storage
property or the
sourceURL
property. Only one of these properties is required, allowing the host application to either store the drawing data directly within the object or reference an externally hosted drawing using a URL.

DimensionIQ does not require a specific storage implementation. Regardless of how the drawing is stored, the host application must be able to retrieve the requested

DIQ_Storage
object and return it when
onStorageGet()
is invoked.

Retrieving Storage

When DimensionIQ needs to load or display a drawing, it invokes the following capability:

onStorageGet(storageKey, onResponse)

The host application should locate the

DIQ_Storage
object that matches the supplied
storageKey
, retrieve the associated drawing content from its chosen storage mechanism, and return the complete
DIQ_Storage
object via the
onResponse
callback.

If the drawing is stored directly within the object, the storage property should contain the drawing stream. Alternatively, if the drawing is stored externally, the

sourceURL
property should specify the HTTP or HTTPS location from which the drawing can be retrieved. One of these properties must be provided for every
DIQ_Storage
object.

DimensionIQ will use whichever storage mechanism is supplied to retrieve the drawing content before parsing and displaying the drawing.

Direct Storage vs External Storage

The storage property allows the drawing contents to be supplied directly as part of the

DIQ_Storage
object.

Alternatively, the

sourceURL
property may be used when drawing files are stored externally. This allows the host application to maintain drawings within dedicated storage services while providing DimensionIQ with a location from which the content can be obtained.

For every

DIQ_Storage
object:

  • Either
    storage
    or
    sourceURL
    must be supplied
  • Both properties are supported, although only one is required
  • The choice of storage mechanism is entirely the responsibility of the host application

This separation provides flexibility for applications that manage large drawing files or use dedicated content delivery infrastructure.

Read-Only Behavior

The

DIQ_Storage
object should be treated as read-only by DimensionIQ after it has been returned by the host application.

The host application owns the storage lifecycle and is responsible for maintaining:

  • The storage identifier -
    key
  • The drawing content -
    storage
    , when used
  • The external storage location -
    sourceURL
    , when used

DimensionIQ consumes the stored data to load drawings but does not modify or manage the underlying storage implementation. Any updates to stored drawing content should be performed by the host application before the updated

DIQ_Storage
object is returned to DimensionIQ.