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 | deleted. Retry requeues the same run (ADR-0103). No persisted Uploaded status. 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. Live bytes live in Supabase (revit-imports / dev-revit-imports, ADR-0103). Local PUT is the submit stand-in; Jest uses an in-memory Map. Do not set Content-Encoding gzip on the object.

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 party-directory project by domain_id (ADR-0048), for example project-c1. Not a Project aggregate in this domain. HTTP path {id} and manifest.projectId must be that domain_id, never a Revit document title and never an Airtable rec id.

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 rows are materialized on that Design aggregate.

View details

BOM Line

One purchasable item on the single Design BOM (ADR-0131). Imported lines are one per type (project|type) or one per type and space (project|type|space) and carry that type's product code. Authored lines are inserted (project|authored|<domain_id>) and are not re-aggregated. Postgres pdg_bom_line; Construction project_bom_lines is the projection. Rematerialize orphans only imported lines. An authored line is removed by the delete command.

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