Tool · prototype
BIMdb
An open database whose vocabulary comes from bSDD, the buildingSMART Data Dictionary. IFC 4.3 is the fixed backbone; other bSDD dictionaries (airports, circularity, national classifications) are added when the data needs them.
Code EUPL-1.2 · content CC BY 4.0 unless marked otherwise · source code to be published on GitLab
Try it in your browser
Each button opens a complete BIMdb database, running in a browser tab. Open two members and then the lens: the lens shows both tabs' data together and can merge them into one database. Nothing leaves your browser.
Experiments
Each experiment asks one research question and answers it with a measurement or a test. The numbers are from the release this page belongs to.
Track A
Cut to the bone
How little of IFC 4.3 does a database need, and can lean databases still merge?
20 common building types need 36 of IFC 4.3's 1,418 classes. A class is stored with all its parents, so two lean databases always merge without repair.
Alignment loop
Plain words to the right class
Can plain words find the right class, and ask when they cannot?
On 30 held-out requests: 16 of 20 locked in correctly, 2 wrong, 2 asked; 10 of 10 suggested the right bSDD dictionary (airport, circularity, ETIM, Molio).
Track B
Every tab is a database
Can separately owned databases form one project without a server?
Yes, in one browser: tabs read each other but never write; a lens combines them by merging; tabs remember their data. Across computers needs a relay (next).
Version control
Every change kept
Can every change be kept, proven and replayed, at speed?
Every write is a commit with a SHA-256 id. Writing to disk takes 0.05 ms at 1 million facts (whole-graph saves took about a second). Any past state can be read.
Tracks C and E
Handshake and merge
How do two databases combine without mixing up "similar" things?
Identity is the bSDD URI, versions kept apart. A three-way merge combines both sides' work; items changed differently on both sides wait for a person. Every database signs its commits; its public key is who it is.
Track D
Living schema
What should a database do when bSDD changes?
A setting: off, passive, active or auto. Breaking changes always wait for a person. Checking 16 classes against live bSDD took 14 s; all of IFC 4.3 would take about 20 minutes.
Track F
IDS at the door
Can a delivery specification (IDS) guard what enters a database?
Yes: a wall without a fire rating is refused, one with it accepted, and the verdict is logged. A check takes about 0.4 µs; what cannot be checked yet is noted.
Time series
Sensors in the model
Can sensor readings live in a BIM database without burying its graph?
Yes: a descriptor of 21 facts (IFC 4.3 IfcTimeSeries) plus the readings in files. A year every 15 minutes is 4 files; adding a day takes 3.6 ms, a year of daily means 6 ms.
Track G
Databases inside databases
Can a city database hold its buildings' databases as single elements?
Yes: one element of 8 facts (1.26 kB) per member, pinned to a state or following the latest. Pinned members cannot form loops; following loops are detected.
Use cases
| Use case | What BIMdb does | Experiment |
|---|---|---|
| An airport's baggage system in an IFC model | finds the airport dictionary's "baggage conveyor", loads it with its licence, and files it under IFC 4.3's belt conveyor | Alignment loop |
| Two firms model one building | each keeps its own database; a handshake and a merge combine them, with conflicts listed | Tracks C and E |
| A city of buildings | the city database holds each building as one element; zoom in only where needed | Track G |
| Indoor climate in a building in use | each sensor's readings as a series on its IfcSensor; hourly means per room in one call | Time series |
| Quality gates before data enters | an IDS file checks every item on its way in; failing items are refused or held, and each verdict is logged | Track F |
Sources, licences and privacy
BIMdb is a research project at the BIM Lab, DTU Construct, by K. Negendahl and colleagues. IFC 4.3 classes: buildingSMART International, CC BY-ND 4.0, used unmodified. Source code: EUPL-1.2, to be published on GitLab (dtu-construct-dbt/bimdb).
Privacy: this site sets no cookies and collects nothing. The demo keeps what you enter in your own browser only; clear this site's data to remove it.