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.
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.
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.
Import Run Id
Stable identity of an ImportRun. Stored as pdg_import_run id and as revit_import_runs.domain_id.
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.
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.
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.
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.
Relationship
Aggregate for an edge between two nodes. Not part of the Node aggregate.
Resolution Context
Lifecycle filter on every graph read. Default is active. Optional phaseNodeId restricts membership to that phase-created node.
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.
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).
Type
Graph node kind assembly_type or part_type. Target of assign, clear, and change-object-class steward commands.
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.
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.
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.
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.
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.
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.
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.
BOM Resolution Status
How a contribution resolved. Closed: resolved, non_procurable, unresolved, invalid. Unresolved and invalid are real counts, not decoration.
No matching terms in Project Delivery Graph
Try adjusting your search terms.