Skip to content

Repository Structure

graph LR; Repository-->Project1; Project1-->CityGML1; Project1-->CityGML2; Project1-->WorkflowStepA1; subgraph WorkflowA WorkflowStepA1-->WorkflowStepA2; WorkflowStepA2-->WorkflowStepA3; end Project1-->WorkflowStepB1; subgraph WorkflowB WorkflowStepB1-->WorkflowStepB2; end Repository-->Project2; Project2-->CityGML3; Project2-->WorkflowStepC1; subgraph WorkflowC WorkflowStepC1-->WorkflowStepC2; WorkflowStepC2-->WorkflowStepC3; end Repository-->.cache;


A repository in SimStadt is the root folder in which you collect and save all your projects and CityGML files.

An example repository can be downloaded here.

It contains all your models, your simulation parameters and the results. Those files are usually distributed in separate projects:


You will have to select a repository folder the first time you launch SimStadt.

You can select another folder by clicking on Change Repository in the GUI: ChangeRepository


A project is a sub-folder inside a repository.

The folder name must end with .proj, e.g. Stuttgart.proj or NYC-Manhattan.proj.

It contains CityGML files. You are free to distribute the 3D models in as many projects as you wish.


Workflows will also be saved by SimStadt in the project folder.

You can select a project in the GUI: Repository_folder_


CityGML is an open standardised data model and exchange format to store digital 3D models of cities and landscapes. It defines ways to describe most of the common 3D features and objects found in cities (such as buildings, roads, rivers, bridges, vegetation and city furniture) and the relationships between them.

SimStadt needs a CityGML file as an input for every workflow. CityGML are expected to end with .gml extension. Internally, they are written in XML.

Level of Detail

The CityGML file should have either :

  • Level of Detail 1 (LOD1, extruded 3D geometry, with flat roofs)
  • Level of Detail 2 (LOD2, 3D geometry with detailed roof shape)


Coordinate Reference System

The CityGML file should be georeferenced with a valid coordinate reference system, e.g. EPSG:32632 or EPSG:31467.

The coordinate reference system (CRS) is usually specified in the header of the CityGML file, or for each building:

    <gml:Envelope srsName="EPSG:25832" srsDimension="3">
        <gml:lowerCorner>512665.134 5403112.331 254.0</gml:lowerCorner>
        <gml:upperCorner>512698.044 5403161.657 265.315</gml:upperCorner>

SimStadt uses this information in order to convert the local coordinates into latitude and longitude, for example for WeatherProcessor.


The goal of a workflow is to define a complete simulation from start (a CityGML file) to finish (results files, diagrams or a modified CityGML file).

A workflow is a sequence of workflowsteps.

Examples of workflows are:

Workflows are saved in ***.step folders inside the project folders.


A workflowstep is a single unit of simulation, with one specific goal, e.g.:

Workflowsteps are typically chained together in order to form a workflow.

Workflowsteps are written in Java, like the rest of the SimStadt structure.

It is possible to write new workflowsteps in Java, even without having access to the complete SimStadt sourcecode.

Accessing workflowstep folder directly

Workflowsteps are saved in nested ***.step folders inside the workflow folder. This structure can lead to very long paths, (e.g. TestRepository\Test.proj\b.step\a.step\a.step\a.step\a.step\a.step\a.step). In order to avoid clicking many times in the Explorer in order to access the desired folder, you can select the desired workflowstep in the GUI, and then right-click on Workflow Step tab and selecting Open containing folder.


Some calculations (e.g. IrradianceProcessor) can take a long time to run. In order to speed up the next calculations done on the same CityGML file, results are stored in cache.

It is a hidden .cache folder inside the repository (e.g. TestRepositoryWithCache\.cache), containing information about weather, irradiance or street layout.

It can be deleted without concern, but the next simulations might take longer than usual.

There are also project specific cache folders (e.g. TestRepository\Gruenbuehl.proj\.cache), for shadow calculations with SRA_Perez.