3D & buildings
Footprints with a height on them: extrusion, city models, volumes, shadows and the meshes you export.
Everything on Spatial Workflow about 3d & buildings, in the order that usually works: understand the idea, then run the task, then fix it when it goes wrong. 20 guides in total.
One learning path runs through this topic — follow it if you would rather work through a route than pick a single guide.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
- 3D spatial data models explained: 2.5D, meshes and solids 3d spatial data models
- Level of detail explained for 3D city models lod 3d city model
- CityJSON and CityGML explained cityjson citygml explained
- Where building heights come from, and how wrong they are building height data source
- 3D Tiles and the web delivery of 3D city models explained 3d tiles explained
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to extrude building footprints into 3D in Python extrude building footprints python
- How to read a CityJSON city model in Python read cityjson python
- How to calculate building volumes and floor area in Python building volume python
- How to classify roof shapes from LiDAR in Python roof shape classification lidar
- How to compute building shadows for a given time in Python building shadow analysis python
- How to estimate rooftop solar potential in Python rooftop solar potential python
- How to compute sky view factor from a surface model sky view factor python
- How to export a 3D city model to glTF in Python export gltf python gis
- How to test whether a window can see a landmark 3d line of sight python
- How to publish a 3D building layer to a web map 3d buildings web map maplibre
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
- Extruded buildings float above or sink into the ground extruded buildings float terrain
- CityJSON coordinates come out tiny or at the origin cityjson coordinates wrong
- A building mesh is not watertight and its volume is wrong mesh not watertight volume
- Shadows point the wrong way or have the wrong length shadow wrong direction python
- A 3D viewer shows nothing or a black screen 3d viewer shows nothing
Learning paths through this topic
A curated route rather than a list — the guides in the order that builds on itself.
Related topics
Subjects that keep coming up alongside this one, most overlap first.