Specifications for CityJSON, a JSON-based encoding for 3D city models
GenericCityObject
is back as a City Object in the data model, because it makes life easy for everyone and it is there in the v3.0 data model (albeit those are specific to the SPACES, which are not implemented in CityJSON)"extraSemanticSurfaces"
), which is a mandatory property of the schema"metadata/pointOfContact"
is now a JSON object, like other addresses for Buildings/BridgesPatch release where the schemas are essentially the same, and where the text of the specs is better/sharper.
CityJSONFeature
: now clear that all children (recursively) of a feature should be bundled with its parent."uri"
to "url"
for the Extensions, and now the schemas can have either of these. Going forward "url"
is the preferred way."BuildingConstructiveElement"
was missing from the schemas as a CO, now added..city.json
and .city.jsonl
Minor changes to the schemas for errors, improved the text of the specs so that it's easier for everyone to read and understand.
"TunnelFurniture"
"BridgeFurniture"
and "Waterway"
and "BuildingConstructiveElement"
Minor changes to the schemas for omissions/errors, harmonised the specs text slightly.
trafficDirection
attribute has been removed (https://github.com/cityjson/specs/issues/107)"vertices-texture"
and not "vertex-texture"
BuildingStorey
, BuildingUnit
, BuildingRoom
, BridgeRoom
OtherConstruction
CityJSONFeature
is defined, which can be used for streaming and handling large filesGenericCityObject
has been removed, Extensions should be used instead"lod"
of geometries from number to string"transform"
property is mandatory"geometry"
property anymoreCityObjectGroup
has the role added as a property, to define what the role of each object in the group is"parent"
property of City Objects is now named "parents": []
, and is an array. This is to allow new City Objects in Extensions to have more than one parent; for the core objects this doesn't change anything (except that the property must be renamed and put an array; cjio upgrade_version()
takes care of this)"extensions"
property now documents the version of the Extension that is used for this file; since an Extension will most likely be updated it should be possible to link to a specific version (X.Y)