BBR — bygninger & enheder
BBR (Bygnings- og Boligregistret) er Register #1. Det nye Datafordeler-backend leverer BBR som en entitets-baseret 1:1-dump: rå koder, FK-strenge, bitemporale snapshots og koordinater i EPSG:25832. Grundfast laver fire transformationer, så du får den bekvemme gamle form tilbage.
1 · Oversatte kodefelter
BBR-felter som anvendelse, materialer og varme leveres som rå koder. Grundfast mapper hver kode til læsbar dansk tekst og returnerer begge dele i et { kode, tekst }-envelope. De 7 kodelister, der oversættes ved launch:
bygningsanvendelseBBR byg021 — bygningens anvendelse.
120 → Fritliggende enfamiliehusenhedsanvendelseEnhedens anvendelse (bolig/erhverv).
120 → Fritliggende enfamiliehusvarmeinstallationBBR byg056 — opvarmningsform.
1 → Fjernvarme/blokvarmeopvarmningsmiddelBBR byg057 — primært brændsel.
7 → NaturgassupplerendevarmeBBR byg058 — supplerende varme.
1 → VarmepumpeydervaegBBR byg032 — ydervæggens materiale.
1 → MurstentagdaekningBBR byg033 — tagdækningsmateriale.
5 → TeglHver liste kan også hentes direkte: GET /v1/kodeliste/:navn (åbent endpoint, ingen nøgle). Flere kodelister oversættes løbende.
2 · Reprojicering EPSG:25832 → WGS84
BBR-koordinater er i ETRS89 / UTM zone 32N (EPSG:25832), fx POINT (574763 6224287). Grundfast reprojicerer til WGS84 (EPSG:4326) og returnerer GeoJSON-konforme [lon, lat]-koordinater — direkte brugbare i kort, Leaflet og MapLibre uden et eget projektionslag.
3 · Current-only (bitemporal støj fjernet)
Det nye backend er bitemporalt: hver entitet bærer registrerings- og virkningstid og kan have flere historiske versioner. Grundfast filtrerer til den aktuelle, gældende version — så du får den bygning, der står der nu, ikke en tidsserie du selv skal sortere. Historik/bitemporal adgang er en Scale-funktion.
4 · Auto-paginering & join
GraphQL-backendet returnerer connections med cursors og pageInfo. Grundfast følger siderne for dig og joiner hele grafen — BFE → grund → bygning → enhed — plus ejerlavsnavn fra Matriklen. Ét kald på et BFE giver hele ejendommen samlet:
GET /v1/bbr/ejendom/5651067
→ { type: "ejendom", bfe_nummer, jordstykke, bygninger: [ … ] }DAR-adresse og ejer hænger som felter PÅ ejendommen — som enrichment på selve property-recorden, aldrig som et selvstændigt adresse- eller CVR-opslag. Ejendommen er kernen; adresse og ejer er kontekst på den.
5 · Datafordeler-nedetid → cache-mirror
Datafordeler kører historisk ~90% oppetid med periodiske 401-flaps. Grundfast retry’er med backoff og serverer fra en cachet SLA-mirror, så et upstream-udfald ikke vælter din integration. Det er kernen i Migration + Maintenance Insurance: et stabilt API oven på et ustabilt — den moat gratis Datafordeler strukturelt ikke kan matche.
Når et svar serveres fra mirroren under et upstream-udfald, bærer det headeren X-Grundfast-Stale: true, så du altid ved, om du ser friske eller cachede data. Følg oppetiden på live status & oppetid — det er den samme cache-mirror, der gør Grundfast til et Datafordeler-alternativ der bare virker.