Generating a 3D city model

From TOI-Pedia



This article provides an outline of the different workflows that can be used to generate a 3D city model.


The following background concepts are useful for understanding and creating 3D city models.

Level of Detail (LoD)

There are 5 main levels of detail used to distinguish the geometric detail of buildings in a 3D city model (according to the CityGML standard):

LoD0: 2D building footprint
LoD1: block model, created by extruding a building footprint to a single height (i.e. all buildings have flat roofs)
LoD2: simple model including generalised roof shapes
LoD3: detailed architectural model for the exterior of the building (e.g. including windows, doors, chimneys and other facade details)
LoD4: detailed architectural model for both the interior and exterior of the building (currently not used in practice)
Levels of detail in a 3D city model (Biljecki, Ledoux & Stoter, 2016)


3D city models can include semantics. This means that the main objects in the model are labelled with their meaning (e.g. "building", "road", "city furniture") and any number of attributes. Attributes for a building could include properties such as building height, owner, address. Furthermore, the sub-parts of each object can also be labelled with their meaning and be assigned attributes. For example, each building could be further decomposed into its separate components, labelled as "wall surface", "roof surface", etc (as shown in the figure below).

Semantic decomposition of a building (Ledoux, 2020)

File formats

It is useful to be familiar with common file formats encountered while creating a 3D city model.

  • Input vector data (read natively by QGIS) - GPKG, SHP, GeoJSON
  • Input point cloud data - LAS, LAZ (compressed format), PLY
  • Output data - OBJ, DXF, CityJSON, CityGML


LoD1 models

Workflow 1 - GIS based

  • Software requirements: QGIS, Rhino

This workflow is recommended for quick and easy visualisation. It focuses on using Dutch public datasets and consists of the following steps:

  1. Obtaining data using QGIS (from public datasets in the Netherlands)
  2. Calculating building height from 3D BAG
  3. QGIS to Rhino
  4. Building extrusion in Rhino
  5. Using Enscape with Rhino (for visualisation in VR)

Workflow 2 - CAD based

  • Software requirements: QGIS, Rhino, Grasshopper

This workflow is recommended for accurate representation of geometries and consists of the following steps:

  1. Obtaining data using QGIS (from public datasets in the Netherlands)
  2. Processing steps in QGIS
  3. Processing steps in Grasshopper
  4. Processing steps in Rhino

Workflow 3 - programming based

  • Software requirements: QGIS, Python

This workflow is recommended for [...] and consists of the following steps:

  1. Obtaining data using QGIS
  2. Obtaining data

LoD2 models


Useful links


Biljecki, Filip & Ledoux, Hugo & Stoter, Jantien. (2016). An improved LOD specification for 3D building models. Computers Environment and Urban Systems. 59. 25-37. 10.1016/j.compenvurbsys.2016.04.005.

Ledoux, Hugo. (2020). Semantic 3D city models [PDF file]. Retrieved from

Personal tools