Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time

Change Log

5.0.0 - 2021-10-08

  • Added Docker files to build your own images for the Importer/Exporter command-line interface. Pre-built Docker images are available from Docker Hub at #209
  • Added an import list filter to the import operation for both the GUI and the CLI that allows a user to provide a CSV file containing identifiers of features that shall be imported or skipped. #202
  • Enhanced feature version filter to support searching for terminated features. #192, #185
  • Added a Plugins section to the preferences tab of the Importer/Exporter GUI that lists all installed and available plugins and lets a user dynamically enable and disable plugins. #194
  • Added the FeatureImportExtension plugin extension that lets you hook your code into the import operation. #195
  • MetadataProvider is now a plugin extension in its own right and can be used without FeatureExportExtension.
  • Affine transformations are now also available for the CityGML/CityJSON export operation. #196
  • Added support for importing gml:MultiGeometry objects in case they only contain points or curves.
  • Added support for providing database connection details via environment variables when running the Importer/Exporter on the command line. #212
  • CityJSON output now uses the latest CityJSON version 1.0.3.
  • CityGML/CityJSON import and export operations now fail fast on errors by default. #215
  • Avoid pollution of database schema with temporary tables in case an import or export operation terminates abnormally. #190
  • Breaking: Refactoring of the Plugin API. #200
  • Breaking: Replaced impexp-client module with two separate modules impexp-client-cli and impexp-client-gui to enable Docker images for the command-line interface. #187
  • Moved installer build script to 3dcitydb-suite repository. #186
  • Breaking: Restructured source code to avoid packages being spread over different modules.
  • Fixed inconsistent behaviour of the feature version filter for different CLI commands. #188
  • Fixed NPE during imports when at least one ADE extension is loaded and the dataset contains 3DCityDB ADE properties.
  • Fixed StatementFinalizer of the Tomcat JDBC pool to be thread-safe to avoid that connections cannot be released from the pool. #189
  • Updated PostgreSQL driver to 42.2.23 and Oracle driver to 21.1.0.
  • Updated citygml4j to 2.11.4.

4.3.0 - 2021-04-28

  • Completely redesigned command-line interface (CLI) to be able to invoke default import, export and delete operations without the need for passing an XML config file. #147
  • CityJSON import and export. #88, #92, #89, #166
  • Improved CityGML export performance (up tp 10-15 times faster in case the Importer/Exporter is not running on the same machine or in the same local network as the database server). #126, #136, #137
  • Implemented a more modern GUI look & feel that scales better on HiDPI displays. #149
  • Extended ADE export API to support the export of ADE data in KML/COLLADA/glTF. #124
  • Enhanced LoD export filter with the option to only export the minimum or maximum LoD of a city object. #133
  • Added a feature version filter to be able to query city objects that have been terminated in the database.
  • Added more filter options to the KML/COLLADA/glTF export and substantially reworked the preference settings. A bounding box filter is not mandatory for KML/COLLADA/glTF exports anymore.
  • Added support for exporting binary glTF and Draco compression in KML/COLLADA/glTF exports. #142
  • Added support for importing and exporting arbitrary surfaces as exterior of solids. #130
  • GML geometry types not supported by the SURFACE_GEOMETRY table are internally mapped to a gml:MultiSurface to be able to import them. #130
  • Added a database ID filter to the XML query language.
  • Added explicit CLI script in addition to the start script for simplifying the use of Importer/Exporter CLI mode. #123
  • Users can now choose to write log messages to a specific log file and not just a log directory.
  • Completely updated user manual at
  • General tweaks, bugfixes, and code refactoring
  • Instead of Oracle, PostgreSQL/PostGIS is now the default database connection. #162
  • Reworked GUI and config file to manage and store one workspace per connection for Oracle databases. #164
  • When importing local geometry XLinks into a 3DCityDB instance of version 4.1, the IS_XLINK column of SURFACE_GEOMETRY is now filled with value 2, which allows to substantially improve the export performance. #159
  • Fixed bug in SQL query builder. #122
  • Fixed possible database deadlocks when updating involved tables during XLink resolution.
  • Fixed NPE in CityGML exports in case the output file path has no parent folder.
  • Fixed export of XLinks to surface data members.
  • XLinks in WaterBody objects are now exported differently depending on the target CityGML version.
  • Fixed bug in CityGML export which caused a city object to be exported on multiple tiles in rare cases.
  • Fixed missing tile counter in export status dialog when using XML queries.
  • Fixed bug when reading ZIP input files which could cause the application to freeze.
  • Fixed error due to incorrect database ID values when importing a gml:OrientableSurface.
  • Fixed bug in resolving geometry XLinks across top-level features.
  • Fixed missing X3D materials in KML/COLLADA/glTF exports when theme is set to none.
  • Color settings are used as fallback in COLLADA/glTF exports when the selected theme is not available for a feature.
  • Fixed hierarchical geometry query to work with Oracle 11g and previous versions.
  • Updated to latest versions of the ADE manager plugin and the Spreadsheet Generator plugin.
  • Upgrade PostgreSQL driver to 42.2.14 and PostGIS to 2.5.0.
  • Updated citygml4j to 2.11.3.
  • Starting from this version, all 3DCityDB Maven artifacts are maintained in the JFrog Artifactory Cloud using the new repository link #183

4.2.3 - 2020-04-06

  • Added support for sorting the top-level features in a CityGML export based on one or more simple thematic attributes. The sorting criteria can be defined using the new <sortBy> element of the XML query language. #86
  • Added support for implicit geometries of nested sub-features in KML/COLLADA/glTF exports. #93, #94
  • Added a delete operation to the CLI through the new -delete option. A corresponding <delete> element in the config file lets you define the behavior of the delete operation (e.g. by providing a filter expression). #102
  • Added support for importing gml:PolygonPatch geometry objects.
  • Added installation via CLI to the documentation. #99
  • Added import and export counter for global appearances. #95, #115
  • Added date picker in GUI.
  • Added a link to the online documentation in the Help menu of the GUI.
  • Reworked the feature counter filter for CityGML imports and exports. Instead of providing a lower and upper boundary, you can now provide the total count of features and the start index of the first feature. For exports, this is mapped to SQL LIMIT and OFFSET clauses. Note that the definition in the XML query language now uses a <limit> element instead of the previous <count> element.
  • Improved SQL query builder to create more concise SQL statements.
  • Fixed memory leak for large exports under PostgreSQL.
  • Fixed OpenStreetMap data not showing in the map window. #97
  • Fixed NPE when importing invalid xAL address elements. #103
  • Fixed NPE when exporting PlantCover features as KML/COLLADA/glTF. #91
  • Fixed memory issue due to re-opening of ZIP files in CityGML imports.
  • Fixed import of curve geometries. If a curve geometry was given by several curve segments, then the interior start and end points of the segments were imported into the database. This has been corrected.
  • Fixed the IzPack library to support automated install scripts.
  • Updated to latest versions of the ADE manager plugin and the Spreadsheet Generator plugin.
  • Updated to latest PostgreSQL driver v42.2.10.
  • Updated to latest Oracle driver 19.3.
  • Updated citygml4j to 2.10.5.
  • Updated sqlbuilder to 2.2.1.

4.2.2 - 2019-08-06

  • Added config option to suppress the product information header comment.
  • Moved input and output file information from internal config to external API.

4.2.1 - 2019-04-17

  • Added the -pid-file command-line argument to create a file storing the process ID of the Importer/Exporter at the provided path. This can be useful to check whether the Importer/Exporter is running or to issue a kill command to end it.
  • Added GUI warning dialogs if a Importer/Exporter module does not support ADEs registered in the database.
  • Updated Spreadsheet Plugin to version 3.1.2.
  • Updated ADE Manager Plugin to version 1.1.2.
  • Updated 3DCityDB-Web-Map to version 1.7.1.
  • Added distinct to complex SQL queries to avoid exporting duplicates of a top-level feature.
  • Fixed memory leak when importing ZIP files.
  • Fixed database schema mapping to correctly support qualified XML attributes in CityGML and ADE XML schemas.
  • Fixed NPE in XPath parser.

4.2 - 2019-02-13

  • Reworked Plugin API to support non-GUI plugins. #78
    • Added CityGMLExportExtension as a first non-GUI extension point for plugins. Using this extension, a plugin receives and can process all CityGML features before they are written to the output file. Besides using XSLT stylesheets for CityGML exports, this adds another way of having full control over the output.
    • Due to the changes to the Plugin API, make sure to only use plugins built for this version.
  • Property projections can now also be defined for abstract feature types.
  • Added possibility to define a gml:id prefix for the UUIDs that are created during CityGML imports.
  • Added config options to control the writing of gml:Envelope elements on features and the root CityModel.
  • Added config options to define XML prefixes and schema locations for the CityGML output file.
  • Fixed broken feature type filter for CityGML imports. #75
  • Fixed NPE in GeometryConverter when using affine transformations during CityGML imports. #77
  • The CLI version of the Importer/Exporter now returns an exit code of 1 on failures.
  • Updated citygml4j to 2.9.1.

4.1 - 2019-01-09

  • Added support for using SQL queries and XML-based filter expressions in CityGML exports. Please refer to the documentation to learn more about the new filter capabilities.
  • Added support for importing CityGML data from ZIP/GZIP files and for exporting CityGML content to ZIP/GZIP files. #62, #63
  • Added a counter and a progress bar to spreadsheet exports. #50
  • Due to changes in the Google Maps API license and usage terms, the Google services now require an API key (read more here). This affects the map window and the KML/COLLADA/glTF export of the Importer/Exporter, where Google services are used for address searches and for retrieving height values from the Google Earth terrain model. #61
    • If you want to continue using the Goolge services, then enter your Google API key in the corresponding global preferences dialog that has been added in this release.
    • The map window now uses OSM Nominatim as the default geocoding service, so no need for a Google API key.
    • Querying height values from the Google Earth terrain model in KML/COLLADA/glTF exports requires the Google Elevation service though. Simply deactivate this option if you do not have an API key.
  • When running on Java 9 or higher, the following warning was printed to the console: WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector. This JAXB issue has been resolved in this release by updating to citygml4j 2.8.1.
  • Fixed SQL error when querying the highest LOD of PlantCover objects in KML/COLLADA/glTF exports. #72
  • Fixed error in spreadsheet exports when column titles have leading and trailing whitespaces. #65
  • Fixed bug when using the Importer/Exporter installer in non-GUI installations. #47, #64
  • Fixed NPE when using a local cache for CityGML exports.
  • Fixed NPE when exporting appearances without textures.
  • Fixed CityGML writer to use default namespaces in tiled exports.
  • Upgrade to latest PostgreSQL driver v42.2.5 and PostGIS driver v2.3.0.
  • Upgrade to latest Oracle driver 18.3.

4.0 - 2018-09-18

  • Added new extension mechanism to support arbitrary CityGML ADEs.
  • Added new ADE manager plugin to dynamically extend a 3DCityDB instance with support for a given CityGML ADE.
  • Added support for connecting to different database schemas with the same user.
  • Added support for XSL transformations on CityGML imports and exports.
  • New database operation panel to change the spatial reference system used in the database (incl. optional coordinate transformation).
  • New database operation panel to show supported ADEs.
  • Added support for importing CityGML files with flat hierarchies.
  • Added support for importing gml:MultiGeometry objects consisting only of surfaces. #28
  • Improved parsing of xAL addresses on CityGML imports.
  • New LoD filter for CityGML exports.
  • Added query language for CityGML exports.
  • Added support for exporting to glTF v2.0.
  • Updated collada2gltf to latest version 2.1.3.
  • Added styling of log messages on the console window.
  • Introduced XML-based schema mapping file to denote the mapping of XML schema elements onto relational structures.
  • Source code has been split into modules that are available as Maven artifacts from Bintray.
  • Switched from Ant to Gradle as build system.
  • Fixed bug when resolving geometry Xlinks and replacing gml:ids.
  • Fixed bug in BBOX calculation on CityGML imports.
  • Fixed ConcurrentLockManager to avoid concurrent modification issues.
  • Fixed bug in PlantCover importer.
  • Fixed bug in tiled CityGML exports.
  • Fixed KML/COLLADA/glTF export query for LandUse. #52
  • Fixed NPE in LandUse exporter. #51
  • Replaced DOS paths in KML network links. #31
  • Fixed bug in handling of surface_geometries with multiple surface_data. #25
  • Fixed KML/COLLADA/glTF export of appearances with more than one theme. #24
  • 3DCityDB Docker images are now available for a range of 3DCityDB versions to support continuous integration workflows.