Ubiquitous Language

Browse and discover ubiquitous language terms in the Project Delivery Graph domain

Project Delivery Graph Domain Language(21 terms)

Project Delivery Graph

The bounded context and hex module. Owns graph structure and the records that carry graph identity. Not a deployable.

View details

Project Definition Graph

The first model inside the Project Delivery Graph. Describes the designed project (nodes, containment, relationships, types, instances, import runs). Process Graph and Resource Graph are named and not modeled yet.

View details

Import Run

Aggregate root for one processing of one source artifact. Status path queued → in_progress → ready | failed. Retry is a new run. Postgres keeps in_progress; the HTTP log and Airtable revit_import_runs label that state processing.

View details

Import Run Id

Stable identity of an ImportRun. Stored as pdg_import_run id and as revit_import_runs.domain_id.

View details

Artifact Reference

Immutable stored object for one import run. SHA-256 is of the uncompressed JSONL. contentEncoding is gzip. Bytes stay in object storage (ADR-0071), except the local-dev PUT stand-in.

View details

Source Document

The Revit model the export came from. sourceDocumentId is the contract identity; sourceDocumentName is the .rvt file name on the import-run log.

View details

Graph Summary

Nested space → assembly type → part type JSON contract (PRD §3.9 E / ADR-0072). A rematerialized view from pdg_summary_row, not an aggregate. GET reads the view; rematerialize rebuilds it and upserts Airtable.

View details

Node

Aggregate root for one graph node's attributes, containment parent, lifecycle, and origin. Relationships are a separate aggregate. Closed kinds: space, level, phase, assembly_type, part_type, assembly_instance, part_instance.

View details

Relationship

Aggregate for an edge between two nodes. Not part of the Node aggregate.

View details

Resolution Context

Lifecycle filter on every graph read. Default is active. Optional phaseNodeId restricts membership to that phase-created node.

View details

Project Id

Reference to a Design project by domain_id. Not a Project aggregate in this domain. HTTP path {id} is that domain_id, never an Airtable rec… as the graph identity.

View details

Product Assignment

Value object on a Type Node — the selected ProjectProductVariant bound to an assembly_type or part_type. Persisted in Postgres pdg_product_assignment; projected to Airtable assigned_product_variant links. Spaces have neither Object Class nor product assignment (D9).

View details

Type

Graph node kind assembly_type or part_type. Target of assign, clear, and change-object-class steward commands.

View details

Instance Summary

Aggregated pdg_summary_row projected to Airtable *_instance_summary tables (space × type × phase). Steward commands from a summary subject resolve to the authoritative Type.

View details

Project Product Variant

Design-management aggregate (ADR-0083) referenced by assignment and by Design BOM lines. Stock rows reference a Marketplace Product Variant; made-to-order materialization is future work.

View details

BOM Line

Stable product count for one project × ProjectProductVariant, with a public domain_id future procurement can hang off. Not an order. Postgres pdg_bom_line; Construction Airtable project_bom_lines is a count projection. Removing a line is orphaning, not deletion.

View details

BOM Contribution

One space × type × phase × variant resolution row in the Postgres ledger (pdg_bom_contribution). Pure derivation — rematerialize rewrites the set. Never projected to Airtable.

View details

Takeoff Policy

Value object on a type node — takeoff rule, unit, waste factor, procurement mode. Absence means defaults (count / each / 1.0 / atomic). Postgres pdg_type_takeoff_policy. Design assembly_types / part_types fields are a projection.

View details

Takeoff Rule

Which summary bucket a type uses. Live: count, each, area, linear, volume. Reserved and rejected: manual (no store for a hand-entered quantity). Presence in the closed vocabulary is not a feature list.

View details

Procurement Mode

Whether and how a type is procured. Live: atomic, none. Reserved and rejected: expand, allowance, custom_fabrication. Presence in the closed vocabulary is not a feature list.

View details

BOM Resolution Status

How a contribution resolved. Closed: resolved, non_procurable, unresolved, invalid. Unresolved and invalid are real counts, not decoration.

View details