Skip to content
Collection of tools for processing CityGML files
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
citygml-tools-common updated copyright header Apr 18, 2019
global-app-mover updated lib versions Feb 17, 2019
gradle/wrapper updated to Gradle 5.4 Apr 18, 2019
height-changer updated copyright header Apr 18, 2019
lod-filter updated copyright header Apr 18, 2019
reproject updated copyright header Apr 18, 2019
resources updated Javadoc templates Feb 6, 2019
src/main/java/org/citygml4j/tools updated copyright header Apr 18, 2019
texture-clipper added CityGML reader filters Mar 5, 2019
.gitignore minor change Oct 29, 2018 Update Apr 29, 2019
LICENSE Initial commit Sep 2, 2018
build.gradle bumping to version 1.3.0 Apr 29, 2019
gradlew updated to Gradle 5.4 Apr 18, 2019
gradlew.bat updated to Gradle 5.4 Apr 18, 2019
settings.gradle added skeleton for LoD filter Mar 4, 2019


citygml-tools is a command line utility that bundles several operations for processing CityGML files.


citygml-tools is licensed under the Apache License, Version 2.0. See the LICENSE file for more details.

Latest release

The latest stable release of citygml-tools is 1.3.0.

Download the citygml-tools 1.3.0 release binaries here. Previous releases are available from the releases section.


  • To file bugs found in the software create a GitHub issue.
  • To contribute code for fixing filed issues create a pull request with the issue id.
  • To propose a new feature create a GitHub issue and open a discussion.

Using citygml-tools

Download and unzip the latest release or build the program from source. Afterwards, open a shell environment and execute the citygml-tools script from the bin folder to launch the program.

Use the following command to list the available operations.

> citygml-tools --help
Usage: citygml-tools [-hV] [--log=<level>] [COMMAND]
Collection of tools for processing CityGML files.
      --log=<level>   Log level: error, warn, info, debug (default: info).
  -h, --help          Show this help message and exit.
  -V, --version       Print version information and exit.
  help              Displays help information about the specified command
  change-height     Changes the height values of city objects by a given offset.
  remove-apps       Removes appearances from city objects.
  move-global-apps  Converts global appearances to local ones.
  clip-textures     Clips texture images to the extent of the target surface.
  filter-lods       Filters the LoD representations of city objects.
  reproject         Reprojects city objects to a new spatial reference system.
  from-cityjson     Converts CityJSON files into CityGML.
  to-cityjson       Converts CityGML files into CityJSON.

To display information about how to use a specific command, type the following:

> citygml-tools help [COMMAND]

System requirements

  • Java JRE or JDK >= 1.8

citygml-tools can be run on any platform providing appropriate Java support.

Using citygml-tools as library

citygml-tools is not just a CLI program. Most operations are also available as separate JAR libraries. Simply put the library file from the lib folder on your classpath to use the operation in your citygml4j project. The citygml-tools-common-<version>.jar library renders a mandatory dependency for all operations.

The libraries are also available as Maven artifacts from the Maven Central Repository and from JCenter. For example, to add the global-app-mover library for removing global appearances to your project with Maven, add the following code to your pom.xml. You may need to adapt the global-app-mover version number.


Here is how you use global-app-mover with your Gradle project:

repositories {

dependencies {
  compile ''

Note that all operations, which are not available as separate JAR library, just require a few lines of code with citygml4j. Check out the source code to see how they are implemented.


citygml-tools uses Gradle as build system. To build the program from source, clone the repository to your local machine and run the following command from the root of the repository.

> gradlew installDist

The script automatically downloads all required dependencies for building and running citygml-tools. So make sure you are connected to the internet. The build process runs on all major operating systems and only requires a Java 8 JDK or higher to run.

If the build was successful, you will find the citygml-tools package under citygml-tools/build/install.

You can’t perform that action at this time.