Research · Construction

Datum — an open format for buildable plans

Draft proposal · v0.1 · No production use Published for critique

A JSON Schema and a working reference validator exist and pass their test suite — but nothing here has been used on a real project, and no building has been built against it. This document proposes a standard we believe should exist, and invites people who build for a living to tell us where it is wrong.

1. Abstract

A building plan is a picture. It states geometry precisely and states almost nothing else: not the order in which the thing must be built, not which regulations bind which element, and not the points at which a machine should stop and ask a human. Datum proposes an open, text-based format that carries all four, so that software agents can reason about a building rather than merely render one.

2. The problem

Drawings and BIM models describe a finished state. Construction is not a state, it is a sequence — a foundation cures before a wall stands, a wall exists before conduit runs inside it, conduit is inspected before plaster hides it. That ordering is real, safety-critical, and almost entirely absent from the artefact handed to the people doing the work. It survives instead in the heads of a site manager and a foreman.

Three consequences follow, and all three cost money on every job:

3. Scope and non-goals

In scope: a serialisation for elements, their build-order dependencies, the regulatory constraints binding them, and the points requiring human consultation. A validator that can reject an unbuildable plan.

Non-goals: Datum is not a replacement for IFC, CAD or BIM, and does not attempt to describe geometry better than they do — it references them. It is not a scheduling product, not a procurement system, and not a rendering format. It expresses no opinion on which tools produce it.

4. Design principles

5. What Datum encodes

5.1 Elements and geometry

Each element carries an id, a type drawn from a controlled vocabulary, and a reference into an existing geometry source rather than a duplicate of it.

5.2 Chronology

Two relations, requires and blocks, form a directed acyclic graph over elements. This is the part conventional formats omit, and it is the part that makes the file useful to a planner.

5.3 Regulations as code

Elements reference the clauses that bind them — for South African work, parts of SANS 10400. Where a clause is machine-checkable it carries a predicate; where it requires professional judgement it is marked as such rather than approximated.

5.4 Human consultation points

An element may declare a consult block: a trigger condition and the role to escalate to. This is the mechanism by which an agent is required to defer to the crew rather than proceed on a guess.

6. Illustrative example

JSON is the normative wire format — it validates with existing tooling and has exactly one spelling of everything, which matters more for a format checked by machines than authoring comfort does. YAML maps onto the same structure and is shown here because it reads better on a page. Details will still change.

datum: 0.1
project: warehouse-b
units: mm

elements:
  - id: slab-01
    type: concrete.slab
    depth: 250
    geometry: { ifc_ref: "1H9d2$mBv0kPQ" }
    requires: []
    regulations:
      - clause: SANS-10400-B
        check: machine        # thickness predicate is checkable
      - clause: SANS-10400-H
        check: professional   # requires an engineer's sign-off

  - id: wall-03
    type: masonry.wall
    requires:                 # cure time is a property of the edge,
      - after: slab-01        # not of the slab and not of the wall
        wait: { cure_days: 7 }

  - id: conduit-run-01
    type: electrical.conduit
    requires: [wall-03]       # cannot precede the wall it runs in
    blocks:   [plaster-03]    # plaster must not hide uninspected conduit
    consult:
      trigger: deviation > 50mm
      role: site_electrician

7. Open questions

8. How to contribute

The most useful response to this document is someone who has managed a site telling us which part is naive. If you build, inspect, or regulate buildings for a living, we would like to hear where this breaks.

Send a critique