Skip to content
Back to skills

Geo 3d

BSecurity

3D-standaarden voor ruimtelijke data: CityGML, 3D Tiles, GeoBIM, IFC, LOD (level of detail), Cesium. Ook 3D basisvoorziening en digital twin.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 4, 2026
developmentpythongobashgitapi

Works with

  • cli
  • api

Security analysis

B88/100
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add developer-overheid-nl/skills-geo --skill geo-3d --agent claude-code

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.

Security grade badge for Geo 3d
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/developer-overheid-nl-geo-3d/badge)](https://www.skillsdirectory.com/skills/developer-overheid-nl-geo-3d)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Files in this skill

  • SKILL.md11.8 KB
  • reference.md8.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.