Værktøj · prototype
BIMdb
En åben database, hvis ordforråd kommer fra bSDD, buildingSMART Data Dictionary. IFC 4.3 er den faste rygrad; andre bSDD-ordbøger (lufthavne, cirkularitet, nationale klassifikationer) kommer med, når data har brug for dem.
Kode EUPL-1.2 · indhold CC BY 4.0, medmindre andet er angivet · kildekoden offentliggøres på GitLab
Prøv den i din browser
Hver knap åbner en komplet BIMdb-database, der kører i en browserfane. Åbn to medlemmer og derefter linsen: linsen viser begge fanernes data samlet og kan flette dem til én database. Intet forlader din browser.
Fundamentet for et fælles datamiljø
Industry Foundation Classes (IFC) are a set of standardized, digital descriptions of the built asset industry. It is an open, global standard published under a Creative Commons license, and as ISO 16739. […] It is vendor-neutral and available to everyone.
På dansk: Industry Foundation Classes (IFC) er et sæt standardiserede, digitale beskrivelser af bygge- og anlægsbranchen. Det er en åben, global standard, udgivet under en Creative Commons-licens og som ISO 16739. […] Den er leverandøruafhængig og tilgængelig for alle.
BIMdb is an open, versioned database for the built asset industry. Every element is an identified item anchored to IFC 4.3 and described in the vocabulary of the buildingSMART Data Dictionary (bSDD), so that databases owned by different parties can check, sign and merge each other's information.
På dansk: BIMdb er en åben, versionsstyret database for bygge- og anlægsbranchen. Hver bygningsdel er et element med sin egen identitet, forankret i IFC 4.3 og beskrevet med ordforrådet fra buildingSMART Data Dictionary (bSDD), så databaser med forskellige ejere kan tjekke, signere og flette hinandens information.
ISO 19650 kalder den aftalte kilde til information for et projekt eller et anlæg for dets fælles datamiljø (CDE, common data environment). Mange CDE'er håndterer informationen som filer: en model går ind og kommer ud i ét stykke. BIMdb er bygget til at være laget under en CDE-platform. Den rummer selve informationen, element for element, med den historik, de tjek og de fletninger, et CDE har brug for; platformen lægger mennesker, roller og arbejdsgange ovenpå.
skal bygges
CDE-platform
mennesker og roller · arbejdsstatus (i arbejde, delt, publiceret, arkiveret) · visning og apps
i dag
BIMdb-API
HTTP (bimdb serve) · i browseren (WebAssembly)
i dag
BIMdb
- Elementer på IFC 4.3hvert med eget id og egen licens
- bSDD-ordforrådIFC 4.3 plus udvidelsesordbøger
- Signerede commitshver ændring gemt, enhver tidligere tilstand kan læses
- Dørvogter og IDStjekket ved døren: taget ind, afvist eller holdt tilbage
- Fletning og medlemmerdatabaser forenes; databaser i databaser
- Filer ved hashdokumenter, billeder, tidsseriemålinger
Sådan gemmer BIMdb IFC
IFC beskriver en bygning som instanser af klasser med attributter, egenskaber og relationer. BIMdb bevarer IFC's betydning, men gemmer den som en graf af fakta (RDF): hvert faktum er ét udsagn om ét element. Tegningerne følger én væg.
-
Klasser og instanser
IFC En klasse som IfcWall siger, hvilken slags ting noget er; en instans er én bestemt væg i en model.
BIMdb Klassen er dens bSDD-adresse. Hver væg er et element med sit eget id og ét faktum, rdf:type, der peger på klassen. To vægge, der ligner hinanden, er stadig to elementer.
-
Underklasser
IFC Klasser danner et træ: IfcWall er en slags IfcBuiltElement, som er en slags IfcElement, og så videre op til IfcRoot.
BIMdb En database starter uden klasser. En klasse kommer ind med alle sine forældre, så én væg giver syv klasser, og et dæk lægger én til. Spørger man efter bygningsdele, finder man vægge og dæk, og fordi hvert træ er komplet, kan to databaser altid flettes uden reparation.
-
Egenskaber og egenskabssæt
IFC En egenskab ligger i et egenskabssæt (Pset_WallCommon), som en relation binder til væggen: fire entiteter for én værdi.
BIMdb Ét faktum på elementet. Sættet er en del af egenskabens navn (Pset_WallCommon.FireRating); et rent navn eller en bSDD-egenskabsadresse virker også. Værdier er tekst, tal eller ja/nej.
-
Attributter
IFC Attributter er fastlagt af klassen: GlobalId, Name, PredefinedType, OwnerHistory og andre.
BIMdb Hver har sin plads: elementets id, dets navn, klassekoden (bSDD skriver IfcWall af typen SHEAR som IfcWallSHEAR) og de signerede commits. Hvert element har også en licens.
-
Rooted og non-rooted
IFC Entiteter under IfcRoot (objekter, relationer, egenskabssæt) har et GlobalId og en historik og kan refereres for sig selv. Ressourceentiteter som en egenskabsværdi, et punkt eller en enhed har ingen af delene; de lever inde i den rooted entitet, der bruger dem.
BIMdb Elementet er BIMdb's rooted ting: eget id, egen historik og licens. Det, IFC lægger i non-rooted entiteter, bliver en del af et element: en værdi er et faktum på det, en fil gemmes én gang ved sin SHA-256-hash og bæres af elementet.
Eksperimenter
Hvert eksperiment stiller ét forskningsspørgsmål og besvarer det med en måling eller en test. Tallene er fra den udgivelse, siden hører til.
Spor A
Skåret ind til benet
Hvor lidt af IFC 4.3 har en database brug for, og kan slanke databaser stadig flettes?
20 almindelige bygningsdele kræver 36 af IFC 4.3's 1.418 klasser. En klasse gemmes altid med alle sine forældre, så to slanke databaser kan altid flettes uden reparation.
Afstemningsløkken
Fra almindelige ord til den rigtige klasse
Kan almindelige ord finde den rigtige klasse, og spørge, når de ikke kan?
På 30 nye forespørgsler: 16 af 20 ramte rigtigt, 2 forkert, 2 spurgte; 10 af 10 foreslog den rigtige bSDD-ordbog (lufthavn, cirkularitet, ETIM, Molio).
Spor B
Hver fane er en database
Kan databaser med hver sin ejer danne ét projekt uden en server?
Ja, i én browser: faner læser hos hinanden, men skriver aldrig; en linse samler dem ved at flette; fanerne husker deres data. På tværs af computere kræver det et relæ (næste skridt).
Versionsstyring
Hver ændring gemt
Kan hver ændring gemmes, bevises og genafspilles, og hurtigt?
Hver skrivning er et commit med et SHA-256-id. At skrive til disk tager 0,05 ms ved 1 million fakta (at gemme hele grafen tog omkring et sekund). Enhver tidligere tilstand kan læses.
Spor C og E
Håndtryk og fletning
Hvordan forenes to databaser uden at blande "lignende" ting sammen?
Identitet er bSDD-URI'en, og versioner holdes adskilt. En trevejsfletning samler begge siders arbejde; elementer, som begge sider har ændret forskelligt, venter på et menneske. Hver database signerer sine commits; dens offentlige nøgle er dens identitet.
Spor D
Levende skema
Hvad skal en database gøre, når bSDD ændrer sig?
En indstilling: off, passive, active eller auto. Ændringer, der bryder noget, venter altid på et menneske. At tjekke 16 klasser mod bSDD tog 14 s; hele IFC 4.3 ville tage omkring 20 minutter.
Spor F
IDS ved døren
Kan en leverancespecifikation (IDS) vogte, hvad der kommer ind i en database?
Ja: en væg uden brandklasse afvises, en med brandklasse tages ind, og afgørelsen logges. Et tjek tager omkring 0,4 µs; hvad der endnu ikke kan tjekkes, noteres.
Tidsserier
Sensorer i modellen
Kan sensormålinger bo i en BIM-database uden at begrave dens graf?
Ja: en beskrivelse på 21 fakta (IFC 4.3 IfcTimeSeries) plus målingerne i filer. Et år hvert kvarter er 4 filer; at tilføje en dag tager 3,6 ms, et år som døgnmiddel 6 ms.
Spor G
Databaser i databaser
Kan en bydatabase rumme sine bygningers databaser som enkelte elementer?
Ja: ét element på 8 fakta (1,26 kB) pr. medlem, låst til en tilstand eller fulgt til den nyeste. Låste medlemmer kan ikke danne løkker; løkker blandt fulgte medlemmer opdages.
Anvendelser
| Anvendelse | Hvad BIMdb gør | Eksperiment |
|---|---|---|
| En lufthavns bagagesystem i en IFC-model | finder lufthavnsordbogens "bagagetransportbånd", henter det med sin licens og placerer det under IFC 4.3's båndtransportør | Afstemningsløkken |
| To firmaer modellerer én bygning | hver beholder sin egen database; et håndtryk og en fletning samler dem, og konflikter listes | Spor C og E |
| En by af bygninger | bydatabasen rummer hver bygning som ét element; zoom kun ind, hvor der er brug for det | Spor G |
| Indeklima i en bygning i drift | hver sensors målinger som en serie på dens IfcSensor; timemiddel pr. rum i ét kald | Tidsserier |
| Kvalitetskontrol, før data kommer ind | en IDS-fil tjekker hvert element på vej ind; elementer, der ikke består, afvises eller holdes tilbage, og hver afgørelse logges | Spor F |
Kilder, licenser og privatliv
BIMdb er et forskningsprojekt i BIM Lab på DTU Construct, af K. Negendahl og kolleger. IFC 4.3-klasser: buildingSMART International, CC BY-ND 4.0, brugt uændret. Kildekode: EUPL-1.2, offentliggøres på GitLab (dtu-construct-dbt/bimdb).
Privatliv: sitet sætter ingen cookies og indsamler intet. Demoen gemmer det, du indtaster, i din egen browser; slet sitets data for at fjerne det.