Extensions
Table of contents
CityJSON uses JSON Schemas to document and validate the data model, schemas should be seen as basically validating the syntax of a JSON document.
A CityJSON Extension is a JSON file that allows us to document how the core data model of CityJSON may be extended, and to validate CityJSON files containing new objects and/or attributes. This is conceptually akin to the Application Domain Extensions (ADEs) in CityGML; see Section 10.13 of the official CityGML documentation.
CitySON v2.0 Extension specifications
How to create an extension?
We offer an Extension builder to create (simple) Extension files.
For more complex files, you will need to manually build them by modifying the output of the builder or building from manually. See the Extensions specifications for v2.0.2 for an overview of how the file should be structured and the possibilities.
Also, this tutorial to create a noise extension guides you through the process, and explains how to validate the extension itself and datasets that uses the extension.
As a template/example, you can have a look at an Extension for CityJSON v2.0 having +GenericCityObect with a new semantic surface.
Registry of Extensions
CityJSON has an official Extension registry: https://github.com/cityjson/extensions.
Once your Extension is working, we advise you to add it to the repository so that others can
- get to know it exists!
- learn from it when building their own Extensions
- use it seamlessly by hosting it (no CORS drama)

