Installs into .claude/skills of the current project.
Are you the author of Geo 3d?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/developer-overheid-nl-geo-3d)
---
name: geo-3d
description: "3D-standaarden voor ruimtelijke data: CityGML, 3D Tiles, GeoBIM, IFC, LOD (level of detail), Cesium. Ook 3D basisvoorziening en digital twin."
allowed-tools:
- Bash(gh api *)
- Bash(curl -s *)
- WebFetch(*)
metadata:
created-with-ai: "true"
created-with-model: claude-opus-4-20250514
created-date: "2025-02-22"
status: concept
---
> **CONCEPT — Let op:** Deze skill is geen officieel product van Geonovum. De beschrijvingen zijn informatieve samenvattingen — niet de officiële standaarden zelf. De definities op [forumstandaardisatie.nl](https://www.forumstandaardisatie.nl/open-standaarden) en [Geonovum](https://www.geonovum.nl) zijn altijd leidend. Overheidsorganisaties die generatieve AI inzetten dienen te voldoen aan het [Overheidsbreed standpunt voor de inzet van generatieve AI](https://open.overheid.nl/documenten/bc03ce31-0cf1-4946-9c94-e934a62ebe73/file). Zie [DISCLAIMER.md](../../DISCLAIMER.md) en onze [verantwoording](https://github.com/developer-overheid-nl/skills-marketplace/blob/main/docs/verantwoording.md).
# 3D Standaarden voor Geodata
**Agent-instructie:** Deze skill helpt bij het werken met 3D geo-standaarden, van CityGML-modellering tot 3D Tiles-visualisatie. Gebruik de voorbeelden voor het benaderen van de 3D Basisvoorziening en het converteren tussen formaten. Verwijs naar `/geo-model` voor de relatie met NEN 3610 en informatiemodellen.
Nederland loopt voorop in 3D geo-informatie met de [3D Basisvoorziening](https://www.pdok.nl/introductie/-/article/3d-basisvoorziening-1) — een landsdekkend 3D-model via PDOK in meerdere formaten, ook te bekijken in de [PDOK 3D Viewer](https://app.pdok.nl/3d-viewer). Geonovum werkt aan standaarden voor 3D data-uitwisseling, integratie van GIS en BIM (GeoBIM), en digital twin-toepassingen. De 3D-standaarden bouwen voort op internationale OGC-standaarden zoals CityGML en 3D Tiles.
## Standaarden Overzicht
| Standaard | Type | Doel |
|-----------|------|------|
| CityGML 2.0 / 3.0 | Datamodel & encoding | 3D stadsmodellen (OGC-standaard) |
| 3D Tiles 1.1 | Streaming | 3D content streamen voor visualisatie (OGC/Cesium) |
| CityJSON 1.1 / 2.0 | Encoding | JSON-gebaseerde encoding voor CityGML |
| IFC | BIM standaard | Building Information Modeling (buildingSMART) |
| NEN 3610 3D | Profiel | 3D-extensie op het basismodel geo-informatie |
## Repositories
| Repository | Beschrijving | Licentie |
|-----------|-------------|--------|
| [Geonovum/GeoBIM](https://github.com/Geonovum/GeoBIM) | Integratie van GIS en BIM | Niet gespecificeerd |
## CityGML
CityGML is de OGC-standaard voor het modelleren en uitwisselen van 3D stadsmodellen. Het definieert een semantisch model met meerdere detailniveaus (Levels of Detail).
### Levels of Detail (LOD)
| LOD | Naam | Beschrijving | Geometrie |
|-----|------|-------------|-----------|
| LOD0 | Regionaal | 2.5D footprint/dakrand | Vlak (2.5D) |
| LOD1 | Blokmodel | Extrusie van footprint | Blok (prisma) |
| LOD2 | Basismodel | Dak- en muurvlakken | Oppervlakken met dakvormen |
| LOD3 | Gedetailleerd | Ramen, deuren, balkons | Gedetailleerde oppervlakken |
| LOD4 | Interieur | Binnenruimtes, meubels | Interieur geometrie |
### CityGML Thematische Modules
| Module | Beschrijving | Voorbeelden |
|--------|-------------|-------------|
| Building | Gebouwen | Woningen, kantoren, scholen |
| Transportation | Infrastructuur | Wegen, spoorwegen, fietspaden |
| Vegetation | Begroeiing | Bomen, parken |
| WaterBody | Water | Rivieren, kanalen, meren |
| LandUse | Landgebruik | Bestemmingsplannen |
| Bridge | Bruggen | Viaducten, voetgangersbruggen |
| Tunnel | Tunnels | Wegtunnels, spoortunnels |
| CityFurniture | Straatmeubilair | Lantaarnpalen, bankjes |
| Relief | Terrein | Digitaal terreinmodel |
| Construction (3.0) | Constructies | Andere bouwwerken dan gebouwen |
### CityGML Voorbeeld (LOD1 gebouw)
```xml
<?xml version="1.0" encoding="UTF-8"?>
<CityModel xmlns="http://www.opengis.net/citygml/2.0"
xmlns:bldg="http://www.opengis.net/citygml/building/2.0"
xmlns:gml="http://www.opengis.net/gml">
<cityObjectMember>
<bldg:Building gml:id="building_001">
<bldg:yearOfConstruction>1985</bldg:yearOfConstruction>
<bldg:function>1000</bldg:function>
<bldg:measuredHeight uom="m">12.5</bldg:measuredHeight>
<bldg:storeysAboveGround>3</bldg:storeysAboveGround>
<bldg:lod1Solid>
<gml:Solid srsName="urn:ogc:def:crs:EPSG::7415">
<gml:exterior>
<gml:CompositeSurface>
<!-- Muurvlakken en dakvlak -->
<gml:surfaceMember>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList>
120000 487000 0
120010 487000 0
120010 487010 0
120000 487010 0
120000 487000 0
</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:CompositeSurface>
</gml:exterior>
</gml:Solid>
</bldg:lod1Solid>
</bldg:Building>
</cityObjectMember>
</CityModel>
```
### CityJSON Voorbeeld
CityJSON is een compactere JSON-representatie van CityGML:
```json
{
"type": "CityJSON",
"version": "2.0",
"CityObjects": {
"building_001": {
"type": "Building",
"attributes": {
"yearOfConstruction": 1985,
"measuredHeight": 12.5,
"function": "1000",
"storeysAboveGround": 3
},
"geometry": [{
"type": "Solid",
"lod": "1",
"boundaries": [
[[[0, 1, 2, 3]], [[4, 5, 6, 7]], [[0, 1, 5, 4]],
[[1, 2, 6, 5]], [[2, 3, 7, 6]], [[3, 0, 4, 7]]]
]
}]
}
},
"vertices": [
[120000, 487000, 0],
[120010, 487000, 0],
[120010, 487010, 0],
[120000, 487010, 0],
[120000, 487000, 12.5],
[120010, 487000, 12.5],
[120010, 487010, 12.5],
[120000, 487010, 12.5]
],
"metadata": {
"referenceSystem": "https://www.opengis.net/def/crs/EPSG/0/7415"
}
}
```
## 3D Tiles
3D Tiles is de OGC-standaard (oorspronkelijk Cesium) voor het streamen van 3D-content. Het wordt gebruikt voor visualisatie van grote 3D-datasets in webbrowsers.
### 3D Tiles Structuur
```
tileset.json ← Hoofdbestand (metadata + boomstructuur)
├── tile_L0.b3dm ← Level 0 (grof)
├── tiles/
│ ├── tile_L1_0.b3dm ← Level 1 (detail)
│ ├── tile_L1_1.b3dm
│ └── ...
```
### 3D Basisvoorziening via PDOK
De [3D Basisvoorziening](https://www.pdok.nl/introductie/-/article/3d-basisvoorziening-1) is het landsdekkende 3D-model van Nederland, beschikbaar via PDOK als 8 collecties. Brondata: BAG, BGT en AHN (4, 5 en 6). Licentie: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.nl) (data: Kadaster). Ontwikkeld door het Kadaster in samenwerking met het ministerie van VRO en de TU Delft. Zie ook de [productbeschrijving](https://3d.kadaster.nl/productbeschrijving/) en de [PDOK 3D Viewer](https://app.pdok.nl/3d-viewer).
Beschikbare formaten: OGC 3D Tiles (gebouwen, terreinen), CityJSON (3D objecten, met IFC converter voor BIM-software), GeoPackage (hoogte-attributen), Quantized Mesh (DTM), LASZip (DSM). Data is beschikbaar via OGC API 3D GeoVolumes en OGC API Features. Zie [reference.md](reference.md) voor de volledige collectie-tabel.
Toepassingen: geluidsmodellering, schaduwanalyse, zonnepotentie, waterafvoerberekeningen, Omgevingswet-plannen en burgercommunicatie. Fouten melden kan via [Verbeter de Kaart](https://verbeterdekaart.nl), recente meldingen staan in de dataset "3D Terugmeldingen". Vragen? Zie [Geoforum.nl](https://geoforum.nl) (categorie datasets/3d).
```bash
# Alle collecties ophalen
curl -s "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections" \
| python3 -m json.tool
# 3D Tiles tileset ophalen (gebouwen)
curl -s "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/gebouwen/3dtiles" \
| python3 -m json.tool | head -30
# DTM Quantized Mesh tileset (voor Cesium terrein)
curl -s "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/digitaalterreinmodel/quantized-mesh" \
| python3 -m json.tool | head -20
```
### Cesium Viewer Voorbeeld
```html
<!DOCTYPE html>
<html>
<head>
<script src="https://cesium.com/downloads/cesiumjs/releases/1.125/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.125/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
<div id="cesiumContainer" style="width:100%; height:100vh;"></div>
<script>
const viewer = new Cesium.Viewer('cesiumContainer');
// 3D Basisvoorziening laden
const tileset = viewer.scene.primitives.add(
new Cesium.Cesium3DTileset({
url: 'https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/gebouwen/3dtiles'
})
);
// Camera naar Nederland
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(4.9, 52.37, 1500),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-45),
roll: 0
}
});
</script>
</body>
</html>
```
## GeoBIM — Integratie GIS en BIM
GeoBIM combineert geo-informatie (GIS) met bouwinformatie (BIM/IFC) voor toepassingen als:
- Omgevingsvergunningen (toetsing bouwaanvraag aan bestemmingsplan)
- Ondergrondse infrastructuur (kabels/leidingen + bouwput)
- Assetmanagement (civiele kunstwerken)
### Verschil GIS en BIM
| Aspect | GIS (CityGML) | BIM (IFC) |
|--------|--------------|-----------|
| Scope | Stad/regio | Gebouw/object |
| CRS | Geografisch (EPSG:28992) | Lokaal (relatief) |
| Detailniveau | LOD0-3 | Constructiedetail |
| Focus | Buitenkant, context | Binnenkant, constructie |
| Formaat | GML, CityJSON, GeoJSON | IFC, BCF |
| Standaardorganisatie | OGC, Geonovum | buildingSMART |
### GeoBIM Workflow
1. **BIM-model (IFC)** exporteren vanuit ontwerpomgeving
2. **Georeferencing** — IFC lokale coordinaten koppelen aan RD-coordinaten
3. **Conversie** naar CityGML/CityJSON op het gewenste LOD
4. **Integratie** met bestaande geo-data (BGT, BAG, AHN)
5. **Publicatie** als 3D Tiles of WFS
## Digital Twins
Digital twins gebruiken 3D geo-standaarden als basis:
| Component | Standaard | Rol |
|-----------|----------|-----|
| 3D stadsmodel | CityGML / 3D Tiles | Visuele basis |
| Terrein | AHN 4/5/6 (raster) | Hoogtemodel |
| Gebouwen | BAG + 3D Basisvoorziening | Gebouwgeometrie |
| Infrastructuur | BGT + IMKL | Wegen, kabels, leidingen |
| Sensordata | SensorThings API | Real-time metingen |
| Simulatie | Diverse | Wateroverlast, wind, geluid |
## Veelvoorkomende Problemen
| Probleem | Oorzaak | Oplossing |
|----------|---------|-----------|
| CityGML-bestand te groot | Heel stadsmodel in 1 bestand | Splits op in tegels, gebruik 3D Tiles voor visualisatie |
| Geometrie niet valide | Zelf-intersecties, gaten | Valideer met val3dity, repareer met tools als 3dfier |
| CRS-mismatch bij GeoBIM | IFC lokale coordinaten | Gebruik georeferencing tools (bijv. IfcMapConversion) |
| 3D Tiles laden traag | Tiles te groot of niet geoptimaliseerd | Gebruik geometric error goed, comprimeer met Draco |
| LOD niet beschikbaar | Data alleen in LOD1 | Gebruik 3D Basisvoorziening (LOD 2.2 landsdekkend, fallback LOD 1.3) |
| CityJSON niet herkend | Software ondersteunt alleen CityGML/XML | Converteer met cjio (CityJSON CLI) naar GML |
## Cross-referenties
- Gebruik `/geo-model` voor NEN 3610 als basis voor 3D informatiemodellen.
- Gebruik `/geo-api` voor het ontsluiten van 3D data via OGC services.
- Gebruik `/geo-inspire` voor INSPIRE-eisen aan 3D gebouwendata.
- Gebruik `/geo-meta` voor metadata van 3D datasets.
## Achtergrondinfo
Zie [reference.md](reference.md) voor gedetailleerde CityGML-encoding, 3D Tiles specificatie-details, en LOD-uitleg.