From bcfab0df01a37304e517605c0f3a8dd2ff7fd888 Mon Sep 17 00:00:00 2001 From: christoph-maurer Date: Tue, 18 Jun 2024 14:27:01 +0200 Subject: [PATCH] Delete for 2 reasons: 1. The most important content becomes part of . 2. We plan to remove all keys which are currently not ready for production. --- schemas/geometry.json | 391 ------------------------------------------ 1 file changed, 391 deletions(-) delete mode 100644 schemas/geometry.json diff --git a/schemas/geometry.json b/schemas/geometry.json deleted file mode 100644 index 3ea089cf..00000000 --- a/schemas/geometry.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://www.buildingenvelopedata.org/schemas/v1/geometry.json", - "title": "geometry data", - "description": "Describe geoemtry data. There are many highly developed geometry kernels which are well suited to handle complex geometry in their file format. For some cases like the shape of a venetian blind, it may be helpful to be able to exchange the geometry independent of a geometry kernel.", - "$defs": { - "geometry": { - "title": "Describe the geometry of a component either by its outer dimensions or as a resource for a Computer Aided Drawing (CAD) software.", - "type": "object", - "properties": { - "dimensions": { - "$ref": "#/$defs/dimensions", - "description": "Height, width and depth of the component." - }, - "origin": { - "$ref": "#/$defs/origin", - "description": "The origin of the coordinate system which is used by `location`." - }, - "location": { - "$ref": "#/$defs/location", - "description": "The location of the center of mass of the component." - }, - "orientation": { - "$ref": "#/$defs/orientation", - "description": "The orientation of the prime surface of the component." - }, - "getHttpsResource": { - "$ref": "common.json#/$defs/getHttpsResource", - "description": "Instead of or in addition to the keys above, a file can be used to define the geometry of the component." - }, - "levelOfDevelopment": { - "$ref": "#/$defs/orientation", - "description": "The Level of Development or Level of Detail (LOD) is used to describe how accurate the reality is modelled." - } - }, - "additionalProperties": false, - "required": [] - }, - "origin": { - "title": "The origin of the coordinate system which is used by `location`.", - "type": "object", - "properties": { - "latitude": { - "$ref": "number.json#/$defs/latitude", - "description": "The latitude of the location of the building." - }, - "longitude": { - "$ref": "number.json#/$defs/longitude", - "description": "The longitude of the location of the building." - }, - "elevation": { - "$ref": "number.json#/$defs/elevation", - "description": "The elevation of the location of the building. " - } - }, - "additionalProperties": false, - "required": ["latitude", "longitude"] - }, - "location": { - "title": "The location of the center of mass of the component.", - "type": "object", - "properties": { - "east": { - "$ref": "number.json#/$defs/meter", - "description": "This distance is measured horizontally in the direction from the `origin` to the east. It has the SI unit of meter." - }, - "north": { - "$ref": "number.json#/$defs/meter", - "description": "This distance is measured horizontally in the direction from the `origin` to the north. It has the SI unit of meter." - }, - "elevation": { - "$ref": "number.json#/$defs/meter", - "description": "This distance is measured vertically in the direction from the `origin` to the sky. It has the SI unit of meter." - } - }, - "additionalProperties": false, - "required": ["east", "north"] - }, - "orientation": { - "title": "The orientation of the prime surface of the component.", - "type": "object", - "properties": { - "azimuth": { - "$ref": "number.json#/$defs/degreeBetweenZeroAndThreeHundredSixtyWithUncertainty", - "description": "When the normal of the non-prime surface is projected on a horizontal plane, then the azimuth angle of the component is the angle between this projection and the north direction. If the prime surface faces west, then the azimuth angle equals 90°." - }, - "componentTilt": { - "$ref": "common.json#/$defs/angles/$defs/componentTilt", - "description": "The tilt angle of the component." - }, - "rotation": { - "$ref": "number.json#/$defs/degreeBetweenZeroAndThreeHundredSixtyWithUncertainty", - "description": "The angle of rotation around the normal of the non-prime surface. First, imagine a plane which is rectangular to the non-prime surface and parallel to the direction of the azimuth angle. The cross-section from the bottom to the top is the first important direction. The rotation angle is the angle between this direction and the prime direction. If the prime direction leads from the bottom to the top, then the rotation angle equals 0°. If the prime direction leads from the left-hand side to the right-hand side as seen from the exterior, then the rotation angle equals 90°." - } - }, - "additionalProperties": false, - "required": ["azimuth", "componentTilt"] - }, - "levelOfDevelopment": { - "title": "The Level of Development or Level of Detail (LOD) is used to describe how accurate the reality is modelled. As geometry/LOD refers to geometry, it is sometimes also called Level of Geometry.", - "type": "array", - "prefixItems": [ - { - "$ref": "number.json#/$defs/nonNegativeInteger", - "description": "This integer indicates the LOD according to the definition of the reference below." - }, - { - "type": "object", - "properties": { - "reference": { - "$ref": "common.json#/$defs/reference", - "description": "This reference defines the LOD which is indicated above." - } - }, - "additionalProperties": false, - "required": ["reference"] - } - ], - "minItems": 2, - "items": false - }, - "assembly": { - "title": "An assembly of components where each item of the array defines one component of the assembly. Note that one component can either consist of a single component or of an assembly of components.", - "type": "object", - "properties": { - "origin": { - "$ref": "#/$defs/origin", - "description": "The origin of the coordinate system which is used by `assemblyList/location`." - }, - "definitionOfSurfacesAndPrimeDirections": { - "title": "Definition of surfaces and prime directions", - "description": "The prime surface and the prime direction are used to define the `orientation` of the component. If there is a `profileAngle` symmetry, the prime direction must be equal to the direction of the profile angle symmetry.", - "type": "object", - "properties": { - "reference": { - "$ref": "common.json#/$defs/reference", - "title": "Reference", - "description": "Reference that defines which surfaces of the components are defined as non-prime and which as prime. Often, the non-prime surface faces the exterior and the prime surface faces the interior. The reference should also define the prime directions of the components." - }, - "description": { - "type": "string", - "title": "Description", - "description": "Description of which sides of the components are defined as non-prime and which as prime and which direction is defined as the prime direction. Often, the non-prime side faces the exterior and the prime side the interior." - } - }, - "minProperties": 1, - "required": [] - }, - "assemblyList": { - "title": "The subcomponents which are used for this assembly.", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "$ref": "identifier.json#/$defs/centralOrDecentral", - "description": "The id represents a specific component of the assembly." - }, - "dimensions": { - "$ref": "#/$defs/dimensions", - "description": "Height, width and depth of the component." - }, - "location": { - "$ref": "#/$defs/location", - "description": "The location of the center of mass of the component." - }, - "orientation": { - "$ref": "#/$defs/orientation", - "description": "The orientation of the prime surface of the component." - }, - "getHttpsResource": { - "$ref": "common.json#/$defs/getHttpsResource", - "description": "Instead of or in addition to the keys above, a file can be used to define the geometry of the component." - }, - "levelOfDevelopment": { - "$ref": "#/$defs/orientation", - "description": "The Level of Development or Level of Detail (LOD) is used to describe how accurate the reality is modelled." - } - }, - "additionalProperties": false, - "minProperties": 1, - "required": ["id"] - }, - "minItems": 2 - } - }, - "additionalProperties": false, - "minProperties": 1, - "required": ["assemblyList"] - }, - "point": { - "title": "A point according to the definition of a coordinate system elsewhere.", - "type": "object", - "properties": { - "x": { - "$ref": "number.json#/$defs/meter" - }, - "y": { - "$ref": "number.json#/$defs/meter" - }, - "z": { - "$ref": "number.json#/$defs/meter" - } - }, - "additionalProperties": false, - "required": ["x", "y", "z"] - }, - "vector": { - "title": "A geometric vector according to the definition of a coordinate system elsewhere.", - "type": "object", - "properties": { - "x": { - "$ref": "number.json#/$defs/meter" - }, - "y": { - "$ref": "number.json#/$defs/meter" - }, - "z": { - "$ref": "number.json#/$defs/meter" - } - }, - "additionalProperties": false, - "required": ["x", "y", "z"] - }, - "coordinateSystem": { - "title": "Definition of the coordinate system of the data set", - "type": "object", - "properties": { - "reference": { - "$ref": "common.json#/$defs/reference", - "description": "The coordinate system needs to be well defined. If no suitable reference exists, please create a new publication in the database." - }, - "categories": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "cartesian", - "cylindrical", - "leftHanded", - "polar", - "rightHanded", - "spherical" - ], - "description": "Often, a right-handed cartesian coordinate system is used." - }, - "uniqueItems": true, - "minItems": 1 - } - }, - "additionalProperties": false, - "required": [] - }, - "nurbsBoundedSurface": { - "title": "A non-uniform rational B-spline (NURBS) surface is a very general way to define a surface. It is created by two NURBS curves.", - "type": "object", - "properties": { - "uDirection": { - "$ref": "#/$defs/nurbsBoundedCurve" - }, - "vDirection": { - "$ref": "#/$defs/nurbsBoundedCurve" - } - }, - "additionalProperties": false, - "required": ["uDirection", "vDirection"] - }, - "nurbsBoundedCurve": { - "title": "A non-uniform rational B-spline (NURBS) is a very general way to define a curve.", - "type": "object", - "properties": { - "degree": { - "type": "integer", - "minimum": 1, - "maximum": 10, - "description": "The degree of a NURBS curve defines the polynomial degree of the basis functions of the curve. For degree=1, the curve is a linear interpolation between the control points." - }, - "controlPoints": { - "title": "The control points have a strong influence on the shape of the curve.", - "type": "array", - "items": { - "type": "array", - "prefixItems": [ - { - "$ref": "#/$defs/point", - "description": "If the curve is 3D, the 3D points are appropriate. For 2D curves, the value for the z-axis should be 0." - }, - { - "type": "object", - "properties": { - "weights": { - "type": "number", - "description": "The weight of a control points determines its influences on the shape of the curve." - } - }, - "additionalProperties": false, - "required": ["weights"] - } - ], - "minItems": 2, - "items": false - }, - "minItems": 2, - "description": "The number of control points plus the degree plus 1 has to be equal to the number of knots." - }, - "knots": { - "type": "array", - "items": { - "type": "number", - "description": "Each knot is a number which is either equal or larger than the preceding knot. Although usually the control points are used to shape the curve, the knots could also be used for this purpose. The first and last knot are usually repeated so that the curve ends exactly at these points." - }, - "minItems": 2, - "description": "The number of control points plus the degree plus 1 has to be equal to the number of knots." - } - }, - "additionalProperties": false, - "required": ["degree", "controlPoints", "knots"] - }, - "body": { - "type": "object", - "properties": { - "brep": { - "title": "Boundary representation (brep) defines a component by the surfaces between solid and non-solid.", - "type": "array", - "items": { - "$ref": "#/$defs/nurbsBoundedSurface" - }, - "minItems": 1, - "description": "This array lists all surfaces between solid and non-solid of the component." - } - }, - "additionalProperties": false, - "required": [] - }, - "dimensions": { - "type": "object", - "properties": { - "installed": { - "title": "This geometric definition of the dimensions refers to the installation of the component in a building envelope and a view perpendicular to the building envelope. The dimensions can be used to define a bounding box which includes all parts of the component. If a component can be installed in different ways, more than one set of dimensions can be defined.", - "type": "array", - "items": { - "type": "object", - "properties": { - "height": { - "$ref": "number.json#/$defs/meterWithUncertainty", - "description": "The height of the component along the vertical axis of the building envelope. It has the units meter." - }, - "width": { - "$ref": "number.json#/$defs/meterWithUncertainty", - "description": "The width of the component along the horizontal axis of the building envelope. It has the units meter." - }, - "depth": { - "$ref": "number.json#/$defs/meterWithUncertainty", - "description": "The depth of the component along the axis perpendicular to the building envelope. It has the units meter." - } - }, - "additionalProperties": false, - "minProperties": 1, - "required": [] - }, - "minItems": 1 - }, - "independent": { - "title": "When the dimensions of a component are defined independent of a specific installation or coordinate system, then the dimensions can only be sorted by their values. The dimensions can be used to define a bounding box which includes all parts of the component.", - "type": "object", - "properties": { - "smallest": { - "$ref": "number.json#/$defs/meterWithUncertainty", - "description": "The smallest dimension of the component. It has the units meter." - }, - "intermediate": { - "$ref": "number.json#/$defs/meterWithUncertainty", - "description": "The dimension of the component which is larger the `smallest` and smaller than `largest`. It has the units meter." - }, - "largest": { - "$ref": "number.json#/$defs/meterWithUncertainty", - "description": "The largest dimension of the component. It has the units meter." - } - }, - "additionalProperties": false, - "minProperties": 1, - "required": [] - } - }, - "additionalProperties": false, - "minProperties": 1, - "required": [] - } - }, - "$ref": "#/$defs/geometry" -}