Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide JSON Schema for bsdd #59

Open
lemoinet opened this issue Jul 18, 2023 · 0 comments
Open

Provide JSON Schema for bsdd #59

lemoinet opened this issue Jul 18, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@lemoinet
Copy link
Contributor

{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://example.com/bsdd.schema.json",
    "description": "",
    "type": "object",
    "required": [
        "DomainCode",
        "DomainName",
        "DomainVersion",
        "LanguageIsoCode",
        "LanguageOnly",
        "OrganizationCode",
        "UseOwnUri"
    ],
    "properties": {
        "OrganizationCode": {
            "type": "string",
            "description": "Code of the Organization, preferably short, as it will appear in all the URI links. Only alphabetical characters and numbers are allowed. Can't start with a digit. E.g. \"ifc\". If you do not have a code for your organization yet, request one at bSDD User Helpdesk"
        },
        "DomainCode": {
            "type": "string",
            "description": "Code of the domain, preferably short, only alphabetical characters and numbes allowed, must start with alphabetical character E.g. \"ifc\""
        },
        "DomainVersion": {
            "type": "string",
            "description": "Version of the domain data. Allowed format: up to three dot-separated numbers, e.g.: 1.0.1. Allowed: \"12\", \"10.1\", \"1.2.3\". Not allowed: \"1.2.3.4\", \"Beta\", \"2x3\". We recommend following Semantic Versioning approach."
        },
        "DomainName": {
            "type": "string",
            "description": "Name of the domain. *If the domain exists supplying this name is not necessary."
        },
        "ReleaseDate": {
            "type": [
                "string",
                "null"
            ],
            "description": "Date of release of the version, YYYY-MM-DD E.g. \"2017-12-24\"",
            "format": "date"
        },
        "Status": {
            "type": "string",
            "description": "State of this version. Must be one of: Preview, Active, Inactive",
            "enum": [
                "Preview",
                "Active",
                "Inactive"
            ]
        },
        "MoreInfoUrl": {
            "type": [
                "string",
                "null"
            ],
            "description": "Url to web page with more info about the domain",
            "format": "uri"
        },
        "UseOwnUri": {
            "type": "boolean",
            "description": "Use your own namespace uri for global unique identification of Classifications and Properties. If you don't use your own namespace URI a namespace URI starting with \"http://bsdd.buildingsmart.org\" will be assigned to each Classification and Property",
            "default": false
        },
        "DomainNamespaceUri": {
            "type": [
                "string",
                "null"
            ],
            "description": "Required if UseOwnUri = true. Supply the globally unique namespace that's the first part of all Classifications and Properties namespaces, e.g. \"urn:mycompany:mydomain\"",
            "format": "uri"
        },
        "LanguageIsoCode": {
            "type": "string",
            "description": "ISO language code: indicates the language of the data. If you want to deliver data in multiple language use a json file per language. See reference list languages. * E.g. \"de-DE\""
        },
        "LanguageOnly": {
            "type": "boolean",
            "description": "true if json contains only language specific information, no otherwise *",
            "default": false
        },
        "License": {
            "type": [
                "string",
                "null"
            ],
            "description": "Description of the license the data will be made available (free text). E.g. \"No license\", \"MIT license\""
        },
        "LicenseUrl": {
            "type": [
                "string",
                "null"
            ],
            "description": "Url to a web page with the full license text",
            "format": "uri"
        },
        "QualityAssuranceProcedure": {
            "type": [
                "string",
                "null"
            ],
            "description": "Name or short description of the quality assurance procedure used for the domain, e.g. \"ETIM international\", \"AFNOR NF XP P07-150 (PPBIM)\", \"bSI process\", \"UN GHS 2015\", \"UN CPC 1.1\", \"Private\", \"Unknown\""
        },
        "QualityAssuranceProcedureUrl": {
            "type": [
                "string",
                "null"
            ],
            "description": "Url to a web page with more detailed info on the quality assurance procedure, e.g. \"https://www.buildingsmart.org/about/bsi-process\"",
            "format": "uri"
        },
        "Classifications": {
            "type": "array",
            "description": "List of objects of type Classification.",
            "items": {
                "$ref": "#/$defs/Classification"
            }
        },
        "Properties": {
            "type": "array",
            "description": "List of objects of type Property.",
            "items": {
                "$ref": "#/$defs/Property"
            }
        },
        "Materials": {
            "type": "array",
            "description": "List of objects of type Material.",
            "items": {
                "$ref": "#/$defs/Material"
            }
        }
    },
    "$defs": {
        "AllowedValue": {
            "type": "object",
            "description": "",
            "required": [
                "Code",
                "Value"
            ],
            "properties": {
                "Code": {
                    "type": "string",
                    "description": "Code as unique identification of the value (max 20 characters). If you want to add translations of Values or their Descriptions, you must supply a Code for each Value"
                },
                "Description": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "A description of the value"
                },
                "NamespaceUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "You can provide your own Namespace Uri (must be globally unique).",
                    "format": "uri"
                },
                "SortNumber": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "SortNumber of the Value in the list of Values of the Property it belongs to"
                },
                "Value": {
                    "type": "string",
                    "description": "One of the Values the property can have, e.g. \"Green\" in case the Property is something like \"Color\""
                }
            }
        },
        "Classification": {
            "type": "object",
            "description": "A Classification can be any (abstract) object (e.g. \"IfcWall\"), abstract concept (e.g. \"Costing\") or process (e.g. \"Installation\").",
            "required": [
                "Code",
                "Name"
            ],
            "properties": {
                "ActivationDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Will get date of import if field not present, YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "ClassificationProperties": {
                    "type": "array",
                    "description": "",
                    "items": {
                        "$ref": "#/$defs/ClassificationProperty"
                    }
                },
                "ClassificationRelations": {
                    "type": "array",
                    "description": "",
                    "items": {
                        "$ref": "#/$defs/ClassificationRelation"
                    }
                },
                "ClassificationType": {
                    "type": "string",
                    "description": "Must be one of: Class, ComposedProperty, Domain, GroupOfProperties, ReferenceDocument, AlternativeUse. Read more about classification types. If not specified, the Class type will be used by default.",
                    "enum": [
                        "Class",
                        "ComposedProperty",
                        "Domain",
                        "GroupOfProperties",
                        "ReferenceDocument",
                        "AlternativeUse"
                    ],
                    "default": "Class"
                },
                "Code": {
                    "type": "string",
                    "description": "Unique identification within the domain of the classification E.g. \"ifc-00123-01\""
                },
                "ReferenceCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference code, can have domain specific usage. If null, then the value of Code is used to fill the field. To make ReferenceCode empty use empty string \"\"."
                },
                "CountriesOfUse": {
                    "type": "array",
                    "description": "List of country ISO codes this Classification is being used.",
                    "items": {
                        "type": "string"
                    }
                },
                "CountryOfOrigin": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "ISO Country Code of the country of origin of this classification."
                },
                "CreatorLanguageIsoCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Language ISO code of the creator."
                },
                "DeActivationDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "Definition": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Definition of the Classification"
                },
                "DeprecationExplanation": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": ""
                },
                "DocumentReference": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference to document with full or official definition of the Classification."
                },
                "Name": {
                    "type": "string",
                    "description": "Name of the Classification E.g. \"IfcCurtainWall\""
                },
                "OwnedUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "If you specified \"UseOwnUri = true\" at domain level you must supply the namepsace URI that globally uniquely identifies the Classifciation",
                    "format": "uri"
                },
                "ParentClassificationCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference to the parent Classification. The ID in this field MUST exist in the data delivered. E.g. \"ifc-00123-00\"."
                },
                "RelatedIfcEntityNamesList": {
                    "type": "array",
                    "description": "References to the IFC equivalent of this Classification.",
                    "items": {
                        "type": "string"
                    }
                },
                "ReplacedObjectCodes": {
                    "type": "array",
                    "description": "List of Classification Codes this Classification replaces",
                    "items": {
                        "type": "string"
                    }
                },
                "ReplacingObjectCodes": {
                    "type": "array",
                    "description": "List of Classification Codes this classification is replaced by",
                    "items": {
                        "type": "string"
                    }
                },
                "RevisionDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "RevisionNumber": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": ""
                },
                "Status": {
                    "type": "string",
                    "description": "Status of the Classification: Active (default) or Inactive",
                    "enum": [
                        "Active",
                        "Inactive"
                    ],
                    "default": "Active"
                },
                "SubdivisionsOfUse": {
                    "type": "array",
                    "description": "List of geographical regions of use E.g. \"US-MT\"",
                    "items": {
                        "type": "string"
                    }
                },
                "Synonyms": {
                    "type": "array",
                    "description": "List of alternative names of this classification for easier finding.",
                    "items": {
                        "type": "string"
                    }
                },
                "Uid": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Unique identification (ID), in case the URI is not enough."
                },
                "VersionDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Will get date of import if field not present, YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "VersionNumber": {
                    "type": "integer",
                    "description": ""
                },
                "VisualRepresentationUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "",
                    "format": "uri"
                }
            }
        },
        "ClassificationProperty": {
            "type": "object",
            "description": "",
            "required": [
                "Code"
            ],
            "properties": {
                "AllowedValues": {
                    "type": "array",
                    "description": "List of allowed values for the Property. Overrides the values defined for the Property. Do not use this one for properties of type boolean.",
                    "items": {
                        "$ref": "#/$defs/AllowedValue"
                    }
                },
                "Code": {
                    "type": "string",
                    "description": "Unique identification within the domain of this classification property"
                },
                "Description": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "You can supply the property description specific for the classification. If left out, the 'common' description of the property will be shown where applicable"
                },
                "ExternalPropertyUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "DEPRECATED - Use PropertyNamespaceUri instead",
                    "format": "uri",
                    "deprecated": true
                },
                "IsRequired": {
                    "type": "boolean",
                    "description": "Indicates if this is a required Property of the Classification"
                },
                "IsWritable": {
                    "type": "boolean",
                    "description": "Indicates if the value of this Property of the Classification can be changed"
                },
                "MaxExclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Maximum allowed value, exclusive. Overrides the value defined for the Property. Do not fill both 'inclusive' and 'exclusive' values"
                },
                "MaxInclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Maximum allowed value, inclusive. Overrides the value defined for the Property. Do not fill both 'inclusive' and 'exclusive' values."
                },
                "MinExclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Minimum allowed value, exclusive. Overrides the value defined for the Property"
                },
                "MinInclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Minimum allowed value, inclusive. Overrides the value defined for the Property"
                },
                "Pattern": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "An XML Schema regular expression to limit allowed values. Overrides the pattern defined for the Property"
                },
                "PredefinedValue": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Predefined value for this Property. E.g. value for property \"IsLoadBearing\" can be \"true\" for classification \"IfcWall\""
                },
                "PropertyCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference to the Property if it is in the same Domain. Not required if you fill the PropertyNamespaceUri"
                },
                "PropertyNamespaceUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference to the Property if it is in a different Domain, e.g. http://identifier.buildingsmart.org/uri/buildingsmart/ifc-4.3/prop/position Not required if you fill the PropertyCode",
                    "format": "uri"
                },
                "PropertySet": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Name of the \"property set\" in which the property should be placed during IFC export. When the property should be placed in an IFC entity you should use that. For example, when a property is a material, you should use the value \"IfcMaterial\"."
                },
                "PropertyType": {
                    "type": "string",
                    "description": "Type of the Property for the Classification: Property (default) or Dependency",
                    "enum": [
                        "Property",
                        "Dependency"
                    ],
                    "default": "Property"
                },
                "SortNumber": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "Sort number of this Property within the Classification"
                },
                "Symbol": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": ""
                },
                "Unit": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": ""
                }
            }
        },
        "ClassificationRelation": {
            "type": "object",
            "description": "",
            "required": [
                "RelatedClassificationUri",
                "RelationType"
            ],
            "properties": {
                "RelatedClassificationUri": {
                    "type": "string",
                    "description": "Full namespace URI of the related Classification. Can be to same or different Domain. Example: http://identifier.buildingsmart.org/uri/etim/etim-8.0/class/EC002987",
                    "format": "uri"
                },
                "RelatedClassificationName": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": ""
                },
                "RelationType": {
                    "type": "string",
                    "description": "One of: HasMaterial, HasReference, IsEqualTo, IsSynonymOf, IsParentOf, IsChildOf, HasPart",
                    "enum": [
                        "HasMaterial",
                        "HasReference",
                        "IsEqualTo",
                        "IsSynonymOf",
                        "IsParentOf",
                        "IsChildOf",
                        "HasPart"
                    ]
                },
                "Fraction": {
                    "type": "number",
                    "description": "Optional provision of a fraction of the total amount (e.g. volume or weight) that applies to the Classification owning the relations. The sum of Fractions per classification/relationtype must be 1. Similar to Fraction in IfcMaterialConstituent"
                }
            }
        },
        "Property": {
            "type": "object",
            "required": [
                "Code",
                "Description",
                "Name"
            ],
            "properties": {
                "ActivationDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Will get date of import if field not present, YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "AllowedValues": {
                    "type": "array",
                    "description": "List of allowed values for the property. Note: do not use this one for properties of type boolean.",
                    "items": {
                        "$ref": "#/$defs/AllowedValue"
                    }
                },
                "Code": {
                    "type": "string",
                    "description": "Unique identification within the domain of the property E.g. \"ifc-99088-01\""
                },
                "ConnectedPropertyCodes": {
                    "type": "array",
                    "description": "List of codes of connected properties",
                    "items": {
                        "type": "string"
                    }
                },
                "CountriesOfUse": {
                    "type": "array",
                    "description": "List of country ISO codes this Property is being used.",
                    "items": {
                        "type": "string"
                    }
                },
                "CountryOfOrigin": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "ISO Country Code of the country of origin of this classification."
                },
                "CreatorLanguageIsoCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Language ISO code of the creator."
                },
                "DataType": {
                    "type": "string",
                    "description": "The datatype the property is expressed in. Must be one of: Boolean, Character, Integer, Real, String, Time",
                    "enum": [
                        "Boolean",
                        "Character",
                        "Integer",
                        "Real",
                        "String",
                        "Time"
                    ]
                },
                "DeActivationDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "Definition": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Definition of the Property"
                },
                "DeprecationExplanation": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": ""
                },
                "Description": {
                    "type": "string",
                    "description": ""
                },
                "Dimension": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "In case of a physical quantity, specify dimension according to International_System_of_Quantities, as defined in ISO 80000-1. The order is: length, mass, time, electric current, thermodynamic temperature, amount of substance, and luminous intensity. For example speed (m/s) would be denoted as \"1 0 -1 0 0 0 0\". ",
                    "pattern": "-?[0-9]+ -?[0-9]+ -?[0-9]+ -?[0-9]+ -?[0-9]+ -?[0-9]+ -?[0-9]+"
                },
                "DimensionLength": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "The Length dimension; either use the field Dimension to specifiy all parts, or specify all parts separately"
                },
                "DimensionMass": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "The Mass dimension; either use the field Dimension to specifiy all parts, or specify all parts separately"
                },
                "DimensionTime": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "The Time dimension; either use the field Dimension to specifiy all parts, or specify all parts separately"
                },
                "DimensionElectricCurrent": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "The ElectricCurrent dimension; either use the field Dimension to specifiy all parts, or specify all parts separately"
                },
                "DimensionThermodynamicTemperature": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "The ThermodynamicTemperature dimension; either use the field Dimension to specifiy all parts, or specify all parts separately"
                },
                "DimensionAmountOfSubstance": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "The AmountOfSubstance dimension; either use the field Dimension to specifiy all parts, or specify all parts separately"
                },
                "DimensionLuminousIntensity": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": "The LuminousIntensity dimension; either use the field Dimension to specifiy all parts, or specify all parts separately"
                },
                "DocumentReference": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference to document with full or official definition of the Property."
                },
                "DynamicParameterPropertyCodes": {
                    "type": "array",
                    "description": "List of codes of properties which are parameters of the function for a dynamic property",
                    "items": {
                        "type": "string"
                    }
                },
                "Example": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Example of the Property"
                },
                "IsDynamic": {
                    "type": "boolean",
                    "description": "Default: false If this is a dynamic property, the value is dependent on the parameters provided in field DynamicParameterProperties",
                    "default": false
                },
                "MaxExclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Maximum allowed value, exclusive - do not fill both 'inclusive' and 'exclusive' values"
                },
                "MaxInclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Maximum allowed value, inclusive - do not fill both 'inclusive' and 'exclusive' values"
                },
                "MinExclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Minimum allowed value, exclusive"
                },
                "MinInclusive": {
                    "type": [
                        "number",
                        "null"
                    ],
                    "description": "Minimum allowed value, inclusive"
                },
                "MethodOfMeasurement": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "E.g. \"Thermal transmittance according to ISO 10077-1\""
                },
                "Name": {
                    "type": "string",
                    "description": "Name of the Property E.g. \"IsExternal\""
                },
                "OwnedUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "If you specified \"UseOwnUri = true\" at domain level you must supply the namepsace URI that globally uniquely identifies the Property",
                    "format": "uri"
                },
                "Pattern": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "An XML Schema regular expression to limit allowed values"
                },
                "PhysicalQuantity": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Name of the physical quantity of the property E.g. \"without\" or \"mass\""
                },
                "PropertyValueKind": {
                    "type": "string",
                    "description": "Must be one of: Single (one value, is default), Range (two values), List (multiple values), Complex (consists of multiple properties, use ConnectedProperties), ComplexList (list of complex values)",
                    "enum": [
                        "Single",
                        "Range",
                        "List",
                        "Complex",
                        "ComplexList"
                    ],
                    "default": "Single"
                },
                "ReplacedObjectCodes": {
                    "type": "array",
                    "description": "List of Property Codes this Property replaces",
                    "items": {
                        "type": "string"
                    }
                },
                "ReplacingObjectCodes": {
                    "type": "array",
                    "description": "List of Property Codes this Property is replaced by",
                    "items": {
                        "type": "string"
                    }
                },
                "RevisionDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "RevisionNumber": {
                    "type": "integer",
                    "description": ""
                },
                "Status": {
                    "type": "string",
                    "description": "Status of the Property: \"Active\" (default) or \"Inactive\"",
                    "enum": [
                        "Active",
                        "Inactive"
                    ],
                    "default": "Active"
                },
                "SubdivisionsOfUse": {
                    "type": "array",
                    "description": "List of geographical regions of use E.g. \"US-MT\"",
                    "items": {
                        "type": "string"
                    }
                },
                "TextFormat": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Pair for text type (encoding, number of characters) The encoding is set according to \"Name of encoding standard\" of IANA, RFC 2978 E.g. \"(UTF-8,32)\""
                },
                "Uid": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Unique identification (ID), in case the URI is not enough."
                },
                "Units": {
                    "type": "array",
                    "description": "The units to represent a scale that enables a value to be measured (ISO 80000 or ISO 4217 or ISO 8601). List of values. See reference list (json) units. We are working on supporting the QUDT vocabulary. If you would like to import using QUDT units or want to have the QUDT units in the API output pls let us know.",
                    "items": {
                        "type": "string"
                    }
                },
                "VersionDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Will get date of import if field not present, YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "VersionNumber": {
                    "type": "integer",
                    "description": ""
                },
                "VisualRepresentationUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "",
                    "format": "uri"
                },
                "PropertyRelations": {
                    "type": "array",
                    "description": "List of related properties.",
                    "items": {
                        "$ref": "#/$defs/PropertyRelation"
                    }
                }
            }
        },
        "PropertyRelation": {
            "type": "object",
            "description": "",
            "required": [
                "RelatedPropertyUri",
                "RelationType"
            ],
            "properties": {
                "RelatedPropertyName": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Name of the related Property."
                },
                "RelatedPropertyUri": {
                    "type": "string",
                    "description": "Full namespace URI of the related Property. Can be to same or different Domain.",
                    "format": "uri"
                },
                "RelationType": {
                    "type": "string",
                    "description": "One of: HasReference, IsEqualTo, IsSynonymOf, IsParentOf, IsChildOf, HasPart",
                    "enum": [
                        "HasReference",
                        "IsEqualTo",
                        "IsSynonymOf",
                        "IsParentOf",
                        "IsChildOf",
                        "HasPart"
                    ]
                }
            }
        },
        "Material": {
            "type": "object",
            "required": [
                "Code",
                "Name"
            ],
            "properties": {
                "ActivationDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Will get date of import if field not present, YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "MaterialProperties": {
                    "type": "array",
                    "description": "",
                    "items": {
                        "$ref": "#/$defs/ClassificationProperty"
                    }
                },
                "ClassificationRelations": {
                    "type": "array",
                    "description": "",
                    "items": {
                        "$ref": "#/$defs/ClassificationRelation"
                    }
                },
                "Code": {
                    "type": "string",
                    "description": "Unique identification within the domain of the material E.g. \"ifc-00123-01\""
                },
                "ReferenceCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference code, can have domain specific usage. If null, then the value of Code is used to fill the field. To make ReferenceCode empty use empty string \"\"."
                },
                "CountriesOfUse": {
                    "type": "array",
                    "description": "List of country ISO codes this Material is being used.",
                    "items": {
                        "type": "string"
                    }
                },
                "CountryOfOrigin": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "ISO Country Code of the country of origin of this Material."
                },
                "CreatorLanguageIsoCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Language ISO code of the creator."
                },
                "DeActivationDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "Definition": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Definition of the Material"
                },
                "DeprecationExplanation": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": ""
                },
                "DocumentReference": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference to document with full or official definition of the Material."
                },
                "Name": {
                    "type": "string",
                    "description": "Name of the Material E.g. \"Concrete\""
                },
                "OwnedUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "If you specified \"UseOwnUri = true\" at domain level you must supply the namepsace URI that globally uniquely identifies the Material",
                    "format": "uri"
                },
                "ParentMaterialCode": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Reference to the parent Material. The ID in this field MUST exist in the data delivered. E.g. \"ifc-00123-00\"."
                },
                "ReplacedObjectCodes": {
                    "type": "array",
                    "description": "List of Material Codes this Material replaces",
                    "items": {
                        "type": "string"
                    }
                },
                "ReplacingObjectCodes": {
                    "type": "array",
                    "description": "List of Material Codes this Material is replaced by",
                    "items": {
                        "type": "string"
                    }
                },
                "RevisionDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "RevisionNumber": {
                    "type": [
                        "integer",
                        "null"
                    ],
                    "description": ""
                },
                "Status": {
                    "type": "string",
                    "description": "Status of the Material: Active (default) or Inactive",
                    "enum": [
                        "Active",
                        "Inactive"
                    ],
                    "default": "Active"
                },
                "SubdivisionsOfUse": {
                    "type": "array",
                    "description": "List of geographical regions of use E.g. \"US-MT\"",
                    "items": {
                        "type": "string"
                    }
                },
                "Synonyms": {
                    "type": "array",
                    "description": "List of alternative names of this Material for easier finding.",
                    "items": {
                        "type": "string"
                    }
                },
                "Uid": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Unique identification (ID), in case the URI is not enough."
                },
                "VersionDateUtc": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "Will get date of import if field not present, YYYY-MM-DD E.g. \"2017-12-24\"",
                    "format": "date"
                },
                "VersionNumber": {
                    "type": "integer",
                    "description": ""
                },
                "VisualRepresentationUri": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "description": "",
                    "format": "uri"
                }
            }
        }
    }
}
@atomczak atomczak assigned atomczak and Baars-IT and unassigned atomczak Aug 2, 2023
@atomczak atomczak added the enhancement New feature or request label Aug 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants