Skip to content

Most common problems

Wrong Java version

Launching: java -d64 -classpath lib/*:workflows/* -Xms512m -Xmx2g -Djava.util.logging.config.file=logging.properties eu.simstadt.desktop.SimStadtApp
Unrecognized option: -d64
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

SimStadt requires Java 8. See here.

SimStadt might be ported to newer Java versions in the future.

Missing JavaFX

Launching: java -d64 -classpath lib/*:workflows/* -Xms512m -Xmx2g -Djava.util.logging.config.file=logging.properties eu.simstadt.desktop.SimStadtApp
Error: Could not find or load main class eu.simstadt.desktop.SimStadtApp

SimStadt requires JavaFX libraries. See here.

32-bit Java

Error: This Java instance does not support a 64-bit JVM.

This error message means that the installed Java version is 32-bit, but SimStadt requires 64-bit Java. See here.

Negative thermal boundary area above ground

======================== Summary ========================

Excluded 2 buildings from processing (reason: Negative thermal boundary area above ground.)


================ Excluded buildings lists ===============

Excluded 2 buildings from processing (reason: Negative thermal boundary area above ground.)

# GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID
_Oberstadt4736_BD.3hed4aOE5j7UIYdXDgpD;2941.75;591.29;447818.78700;5536496.37450;-
_Oberstadt4736_BD.wX8nkPR3sRSdqyVQfXHW;976.95;231.12;447725.63500;5536501.52650;-

This error was due to a buggy implementation in older versions. Many buildings were discarded from the simulation.

Updating to a newer version (September 2020) should help solve the problem.

Envelope missing

SimStadt: development version (2020-12-15)

java.lang.UnsupportedOperationException: Envelope missing in City GML model or it has no SRS name!
    at eu.simstadt.geo.GeoCoordinatesAccessor.<init>(GeoCoordinatesAccessor.java:124)
    at eu.simstadt.geo.GeoCoordinatesAccessor.coordinatesComputedFromBuildingsIfNeeded(GeoCoordinatesAccessor.java:68)
    at eu.simstadt.datamodel.SimStadtModel.coordinatesComputedFromBuildingsIfNeeded(SimStadtModel.java:82)
...

The coordinate reference system should be defined at the beginning of the CityGML file. For example:

<gml:boundedBy>
    <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>
    </gml:Envelope>
</gml:boundedBy>

Unknown srsName format

SimStadt: development version (2020-12-15)

java.lang.IllegalArgumentException: Unknown srsName format: IncorrectCRS:1234567
    at eu.simstadt.geo.GeoUtils.crsFromSrsName(GeoUtils.java:94)
    at eu.simstadt.geo.GeoCoordinatesAccessor.<init>(GeoCoordinatesAccessor.java:97)
    at eu.simstadt.geo.GeoCoordinatesAccessor.coordinatesComputedFromBuildingsIfNeeded(GeoCoordinatesAccessor.java:55)
    at eu.simstadt.datamodel.SimStadtModel.coordinatesComputedFromBuildingsIfNeeded(SimStadtModel.java:82)
...

This error happens if the CityGML model contains an envelope, but with an incorrectly defined coordinate reference system.

The simplest format is "EPSG:" followed by a valid id:

Incorrect EPSG id

Even if the envelope is correctly defined, with an existing coordinate reference system, the model might still not be correctly georeferenced.

For example, merely taking a German 3D model (e.g. with EPSG:31467) and replacing the EPSG id with ESPSG:32740 (UTM 40 S, for La Réunion) will not break the CityGML model. SimStadt will happily start the simulation, but with a 3D model located very far away from either Germany or La Réunion.

With some luck, some exception will occur (java.lang.IllegalArgumentException: Monthly weather values don't seem to be plausible for this location. Cannot generate hourly values.) so that at least it should be clear that there is a problem somewhere.

But if you have changed the EPSG id and the simulation completes without exception, it might be worth it to look at the log in the console, searching for suspicious information:

INFORMATION: Nearest weather station in INSELDB is 'Perth / Australia' (2421,4 km).

or

INFORMATION: Nearest weather station in INSELDB is 'Hami / China' (27,4 km).

In that case, the coordinates would need to be transformed too, according to the EPSG ids.

RegionChooser could be helpful for debugging.

Empty CSV file

If Heat Demand Analysis runs until the last workflowstep, it means that:

  • the geometry is correct
  • the model is georeferenced
  • weather data has been found for this location.

Still, the output CSV file can be empty.

Missing year of construction

If the log file looks like:

======================== Summary ========================

Excluded 927 buildings from processing (reason: Missing year of construction)


================ Excluded buildings lists ===============

Excluded 927 buildings from processing (reason: Missing year of construction)

# GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID
UUID_Building_733_689925_217494;50,80;16,93;340217,93641;7689037,27931;-
UUID_Building_767_561812_246917;302,66;100,89;340369,43699;7688845,44421;-
...
It means that no information has been provided concerning the year of construction of the buildings.

The buildings with missing "yearOfConstruction" are filtered out in Physics Preprocessor.

Make backups!

Feel free to modify the CityGML in a text editor, but please be sure to have backups of your data before you start.

A quick-and-dirty way to add a "yearOfConstruction" attribute to buildings (e.g. 2003) is to open the CityGML file in a text-editor, and replace:

<bldg:lod2Solid>

with

<bldg:yearOfConstruction>2003</bldg:yearOfConstruction><bldg:lod2Solid>

and

<bldg:lod1Solid>

with

<bldg:yearOfConstruction>2003</bldg:yearOfConstruction><bldg:lod1Solid>

For more complex examples, inject_citygml_attributes.py or FME could be used.

Missing building function

If yearOfConstruction is defined for each building, Usage Preprocessor might still filters some building out if they do not have a building function (e.g. "residential" or "office"). See Usage Library Editor and AlkisCode.

======================== Summary ========================

Excluded 934 buildings from processing (reason: Missing building function)


================ Excluded buildings lists ===============

Excluded 934 buildings from processing (reason: Missing building function)

# GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID
UUID_Building_236_9383_293477;182,55;60,85;340358,82959;7688757,69115;-
UUID_Building_79_855748_199796;2433,61;270,40;339737,98619;7688615,64091;-
...

It is possible to either define <bldg:function>1010</bldg:function> attribute in the CityGML file for the corresponding buildings, or simply select "Assume residential if unknown?" in Usage Preprocessor.

For more complex examples, inject_citygml_attributes.py or FME could be used.

Heat Demand Analysis should be able to complete the simulation with this information.

Unknown ALKIS code

Even if a building function (e.g. 31001_1000) is defined inside the CityGML model, it might be unknown to SimStadt or Usage Library Editor.

======================== Summary ========================


Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3000.)
Excluded 26 buildings from processing (reason: Unknown ALKIS code: 31001_2000.)
Excluded 5 buildings from processing (reason: Unknown ALKIS code: 31001_9998.)
Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3020.)
Excluded 46 buildings from processing (reason: Unknown ALKIS code: 31001_1000.)
Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3041.)


================ Excluded buildings lists ===============

Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3000.)

# GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID
DEBY_LOD2_604881;2267.58;220.78;568080.14250;5517134.97850;-


Excluded 26 buildings from processing (reason: Unknown ALKIS code: 31001_2000.)

# GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID
DEBY_LOD2_605705;19.69;9.19;568338.96200;5517132.37700;-
DEBY_LOD2_605662;97.81;38.89;568176.42100;5517187.76300;-
...

It is possible to define a translation table, written in an AlkisCodes.xml file, located in the same folder as the CityGML file:

<?xml version="1.0" encoding="UTF-8"?>
<codes xmlns:buLib="http://www.simstadt.eu/BuildingUsageLibraries" xmlns="http://www.simstadt.eu/AlkisCodes">
    <codesForBuildingUsageLibraryNamed>Germany_DIN18599-10</codesForBuildingUsageLibraryNamed>
    <code from="31001_1000" to="1010"/>
    <code from="31001_1010" to="1010"/>
    ...
    <code from="31001_3242" to="3242"/>
    <code from="31001_3260" to="3260"/>
    <code from="31001_9701" to="9701"/>
</codes>

The AlkisCode parameter can be activated in Usage Preprocessor, and the building functions should then be translated to known codes.

Only 1 building in model

If only one Building is found in the whole model, but the model looks fine otherwise (e.g. in Solar Potential Analysis), it means there might have been a problem during the export process. It can happen with SketchUp and GeoRES Plugin.

AccessDeniedException

SimStadt: 0.10.0-SNAPSHOT (refactor, rev. a86aac1, 20201130)
java.nio.file.AccessDeniedException: /home/ricou/Desktop/TestRepository/LaRéunion.proj/k.step
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
    at java.nio.file.Files.createDirectory(Files.java:674)
    at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
    at java.nio.file.Files.createDirectories(Files.java:767)
...

An AccessDeniedException means that SimStadt tries to create or modify a file or folder, and is not allowed to do so. It might happen if the repository is located:

  • on a read-only network share.
  • in a Program Files folder.
  • in a folder owned by another user.

Solution: the Repository should be moved to a writable folder owned by the current user, e.g. on the Desktop or in Documents.

The program SimStadt itself can still be saved in a read-only location (e.g. Program Files).

java.lang.NoClassDefFoundError

SimStadt: development version (2021-02-09)

java.lang.NoClassDefFoundError: eu/simstadt/districtgraph/AutomaticDistrictHeating
    at de.hftstuttgart.simstadtworkflowsteps.energy.DistrictHeatingGenerator.lambda$0(DistrictHeatingGenerator.java:67)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:440)
...

Some workflows might fail when SimStadt GUI is run from Eclipse, and if the corresponding projects have been added to the Classpath but not to the Build Path.

Either:

  • Run SimStadt from an extracted zip package
  • Add the workflows to the Build Path

CityGML file cannot be selected in SimStadt

Only files ending with .gml can be imported in SimStadt.

On Windows, after a CityGML file has been edited in Notepad, it might get another extension (.txt), so that the model.gml file is actually saved as model.gml.txt, but only displayed as model.gml in File Explorer.

Since the file is now technically a .txt file, it won't be possible to use it as a CityGML model in SimStadt.

Show file extension

In order to remove the unneeded .txt, it might be necessary to first display the extensions (File Explorer > View tab > File name extensions). The complete filename is then displayed, and can be modified.

java.nio.file.FileSystemException

Simplified Radiosity Algorithm (SRA) might fail if the model is too large, or if not enough memory is available. Among other symptoms, the simulation might fail with java.nio.file.FileSystemException The process cannot access the file because it is being used by another process.

In this case, it might help to split the CityGML model in smaller tiles, which can be done automatically by selecting SRA_Perez_with_tiling in IrradianceProcessor.

Empty Project List

no project

If no project can be found in the drop-down menu, it might be because a project was selected instead of a repository.

Solution: make sure to set the Repository to the correct path, e.g. TestRepositoryWithCache, and not TestRepositoryWithCache/NYC.proj.