{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://www.cityjson.org/schemas/1.1.3/geomprimitives.schema.json", "title": "CityJSON geometric primitives schema v1.1.3", "Semantics": { "type": "object", "properties": { "type": { "type": "string", "oneOf": [ { "enum": [ "RoofSurface" ] }, { "enum": [ "GroundSurface" ] }, { "enum": [ "WallSurface" ] }, { "enum": [ "ClosureSurface" ] }, { "enum": [ "OuterCeilingSurface" ] }, { "enum": [ "OuterFloorSurface" ] }, { "enum": [ "Window" ] }, { "enum": [ "Door" ] }, { "enum": [ "InteriorWallSurface" ] }, { "enum": [ "CeilingSurface" ] }, { "enum": [ "FloorSurface" ] }, { "enum": [ "WaterSurface" ] }, { "enum": [ "WaterGroundSurface" ] }, { "enum": [ "WaterClosureSurface" ] }, { "enum": [ "TrafficArea" ] }, { "enum": [ "AuxiliaryTrafficArea" ] }, { "enum": [ "TransportationHole" ] }, { "enum": [ "TransportationMarking" ] }, { "type": "string", "pattern": "(\\+)\\w+" } ] } } }, "Solid": { "type": "object", "properties": { "type": { "enum": [ "Solid" ] }, "lod": { "type": "string", "pattern": "^(\\d\\.)(\\d)$|^(\\d)$" }, "boundaries": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } } } }, "semantics": { "type": "object", "properties": { "surfaces": { "type": "array", "items": { "$ref": "#/Semantics" } }, "values": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } } }, "required": [ "surfaces", "values" ] }, "material": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } }, "value": { "type": "integer" } }, "oneOf": [ { "required": [ "value" ] }, { "required": [ "values" ] } ] } }, "texture": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": [ "integer", "null" ] } } } } } } } } }, "required": [ "type", "lod", "boundaries" ], "additionalProperties": false }, "MultiSolid": { "type": "object", "properties": { "type": { "enum": [ "MultiSolid" ] }, "lod": { "type": "string", "pattern": "^(\\d\\.)(\\d)$|^(\\d)$" }, "boundaries": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } } } } }, "semantics": { "type": "object", "properties": { "surfaces": { "type": "array", "items": { "$ref": "#/Semantics" } }, "values": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } } } }, "required": [ "surfaces", "values" ] }, "material": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } } }, "value": { "type": "integer" } }, "oneOf": [ { "required": [ "value" ] }, { "required": [ "values" ] } ] } }, "texture": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": [ "integer", "null" ] } } } } } } } } } }, "required": [ "type", "lod", "boundaries" ], "additionalProperties": false }, "CompositeSolid": { "type": "object", "properties": { "type": { "enum": [ "CompositeSolid" ] }, "lod": { "type": "string", "pattern": "^(\\d\\.)(\\d)$|^(\\d)$" }, "boundaries": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } } } } }, "semantics": { "type": "object", "properties": { "surfaces": { "type": "array", "items": { "$ref": "#/Semantics" } }, "values": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } } } }, "required": [ "surfaces", "values" ] }, "material": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } } }, "value": { "type": "integer" } }, "oneOf": [ { "required": [ "value" ] }, { "required": [ "values" ] } ] } }, "texture": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": [ "integer", "null" ] } } } } } } } } } }, "required": [ "type", "lod", "boundaries" ], "additionalProperties": false }, "MultiSurface": { "type": "object", "properties": { "type": { "enum": [ "MultiSurface" ] }, "lod": { "type": "string", "pattern": "^(\\d\\.)(\\d)$|^(\\d)$" }, "boundaries": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } } }, "semantics": { "type": "object", "properties": { "surfaces": { "type": "array", "items": { "$ref": "#/Semantics" } }, "values": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } }, "required": [ "surfaces", "values" ] }, "material": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } }, "value": { "type": "integer" } }, "oneOf": [ { "required": [ "value" ] }, { "required": [ "values" ] } ] } }, "texture": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": [ "integer", "null" ] } } } } } } } }, "required": [ "type", "lod", "boundaries" ], "additionalProperties": false }, "CompositeSurface": { "type": "object", "properties": { "type": { "enum": [ "CompositeSurface" ] }, "lod": { "type": "string", "pattern": "^(\\d\\.)(\\d)$|^(\\d)$" }, "boundaries": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } } }, "semantics": { "type": "object", "properties": { "surfaces": { "type": "array", "items": { "$ref": "#/Semantics" } }, "values": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } }, "required": [ "surfaces", "values" ] }, "material": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } }, "value": { "type": "integer" } }, "oneOf": [ { "required": [ "value" ] }, { "required": [ "values" ] } ] } }, "texture": { "type": "object", "additionalProperties": { "type": "object", "properties": { "values": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "type": [ "integer", "null" ] } } } } } } } }, "required": [ "type", "lod", "boundaries" ], "additionalProperties": false }, "MultiLineString": { "type": "object", "properties": { "type": { "enum": [ "MultiLineString" ] }, "lod": { "type": "string", "pattern": "^(\\d\\.)(\\d)$|^(\\d)$" }, "boundaries": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } }, "semantics": { "type": "object", "properties": { "surfaces": { "type": "array", "items": { "$ref": "#/Semantics" } }, "values": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } }, "required": [ "surfaces", "values" ] } }, "required": [ "type", "lod", "boundaries" ], "additionalProperties": false }, "MultiPoint": { "type": "object", "properties": { "type": { "enum": [ "MultiPoint" ] }, "lod": { "type": "string", "pattern": "^(\\d\\.)(\\d)$|^(\\d)$" }, "boundaries": { "type": "array", "items": { "type": "integer" } }, "semantics": { "type": "object", "properties": { "surfaces": { "type": "array", "items": { "$ref": "#/Semantics" } }, "values": { "type": [ "array", "null" ], "items": { "type": [ "integer", "null" ] } } }, "required": [ "surfaces", "values" ] } }, "required": [ "type", "lod", "boundaries" ], "additionalProperties": false } }