Files
bps-schema/schema-radiance.json

980 lines
22 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "bps/radiance",
"title": "HBJSON Radiance Daylighting Schema",
"description": "Radiance daylighting simulation parameters compatible with honeybee-schema radiance properties. Covers modifiers, modifier sets, sensor grids, views, and dynamic states.",
"$defs": {
"_IdentifiedObject": {
"type": "object",
"properties": {
"identifier": {
"type": "string",
"pattern": "^[.A-Za-z0-9_-]+$",
"minLength": 1,
"maxLength": 100
},
"display_name": {
"type": [
"string",
"null"
]
},
"user_data": {
"type": [
"object",
"null"
]
}
},
"required": [
"identifier"
]
},
"Void": {
"type": "object",
"properties": {
"type": {
"const": "Void"
}
},
"required": [
"type"
],
"additionalProperties": false
},
"Plastic": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "Plastic"
},
"r_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"g_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"b_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"specularity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"Metal": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "Metal"
},
"r_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"g_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"b_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"specularity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0.9
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"Trans": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "Trans"
},
"r_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"g_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"b_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"specularity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"transmitted_diff": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"transmitted_spec": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"Glass": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "Glass"
},
"r_transmissivity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"g_transmissivity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"b_transmissivity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"refraction_index": {
"type": "number",
"exclusiveMinimum": 1,
"default": 1.52
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"Mirror": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "Mirror"
},
"r_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 1
},
"g_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 1
},
"b_reflectance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 1
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"Light": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "Light"
},
"r_emittance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"g_emittance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"b_emittance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"Glow": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "Glow"
},
"r_emittance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"g_emittance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"b_emittance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0
},
"max_radius": {
"type": "number",
"default": 0
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"BSDF": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "BSDF"
},
"up_orientation": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"default": [
0.01,
0.01,
1.0
]
},
"thickness": {
"type": "number",
"default": 0
},
"function_file": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"default": "."
},
"transform": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 100
},
"bsdf_data": {
"type": "string",
"minLength": 1
},
"front_diffuse_reflectance": {
"type": [
"array",
"null"
],
"items": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"minItems": 3,
"maxItems": 3
},
"back_diffuse_reflectance": {
"type": [
"array",
"null"
],
"items": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"minItems": 3,
"maxItems": 3
},
"diffuse_transmittance": {
"type": [
"array",
"null"
],
"items": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"type",
"bsdf_data"
],
"additionalProperties": false
}
]
},
"Modifier": {
"oneOf": [
{
"$ref": "#/$defs/Plastic"
},
{
"$ref": "#/$defs/Metal"
},
{
"$ref": "#/$defs/Trans"
},
{
"$ref": "#/$defs/Glass"
},
{
"$ref": "#/$defs/Mirror"
},
{
"$ref": "#/$defs/Light"
},
{
"$ref": "#/$defs/Glow"
},
{
"$ref": "#/$defs/BSDF"
},
{
"$ref": "#/$defs/Void"
}
]
},
"WallModifierSetAbridged": {
"type": "object",
"properties": {
"type": {
"const": "WallModifierSetAbridged"
},
"exterior_modifier": {
"type": [
"string",
"null"
]
},
"interior_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
},
"FloorModifierSetAbridged": {
"type": "object",
"properties": {
"type": {
"const": "FloorModifierSetAbridged"
},
"exterior_modifier": {
"type": [
"string",
"null"
]
},
"interior_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
},
"RoofCeilingModifierSetAbridged": {
"type": "object",
"properties": {
"type": {
"const": "RoofCeilingModifierSetAbridged"
},
"exterior_modifier": {
"type": [
"string",
"null"
]
},
"interior_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
},
"ApertureModifierSetAbridged": {
"type": "object",
"properties": {
"type": {
"const": "ApertureModifierSetAbridged"
},
"window_modifier": {
"type": [
"string",
"null"
]
},
"interior_modifier": {
"type": [
"string",
"null"
]
},
"skylight_modifier": {
"type": [
"string",
"null"
]
},
"operable_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
},
"DoorModifierSetAbridged": {
"type": "object",
"properties": {
"type": {
"const": "DoorModifierSetAbridged"
},
"exterior_modifier": {
"type": [
"string",
"null"
]
},
"interior_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
},
"ShadeModifierSetAbridged": {
"type": "object",
"properties": {
"type": {
"const": "ShadeModifierSetAbridged"
},
"exterior_modifier": {
"type": [
"string",
"null"
]
},
"interior_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
},
"ModifierSet": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "ModifierSet"
},
"wall_set": {
"$ref": "#/$defs/WallModifierSetAbridged"
},
"floor_set": {
"$ref": "#/$defs/FloorModifierSetAbridged"
},
"roof_ceiling_set": {
"$ref": "#/$defs/RoofCeilingModifierSetAbridged"
},
"aperture_set": {
"$ref": "#/$defs/ApertureModifierSetAbridged"
},
"door_set": {
"$ref": "#/$defs/DoorModifierSetAbridged"
},
"shade_set": {
"$ref": "#/$defs/ShadeModifierSetAbridged"
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"RadianceSubFaceStateAbridged": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "RadianceSubFaceStateAbridged"
},
"aperture_modifier": {
"type": [
"string",
"null"
]
},
"door_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"RadianceShadeStateAbridged": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "RadianceShadeStateAbridged"
},
"shade_modifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type"
],
"additionalProperties": false
}
]
},
"Sensor": {
"type": "object",
"properties": {
"type": {
"const": "Sensor"
},
"pos": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"dir": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"type",
"pos",
"dir"
],
"additionalProperties": false
},
"SensorGrid": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "SensorGrid"
},
"sensors": {
"type": "array",
"items": {
"$ref": "#/$defs/Sensor"
},
"minItems": 1
},
"mesh": {
"type": "object"
},
"base_geometry": {
"type": "array",
"items": {
"type": "object"
}
},
"group_identifier": {
"type": [
"string",
"null"
]
},
"room_identifier": {
"type": [
"string",
"null"
]
},
"light_path": {
"type": [
"array",
"null"
],
"items": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"required": [
"type",
"sensors"
],
"additionalProperties": false
}
]
},
"ViewType": {
"type": "string",
"enum": [
"v",
"h",
"l",
"c",
"a",
"s"
]
},
"View": {
"type": "object",
"allOf": [
{
"$ref": "#/$defs/_IdentifiedObject"
},
{
"type": "object",
"properties": {
"type": {
"const": "View"
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"direction": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"up_vector": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"view_type": {
"$ref": "#/$defs/ViewType",
"default": "v"
},
"h_size": {
"type": "number",
"default": 60
},
"v_size": {
"type": "number",
"default": 60
},
"shift": {
"type": [
"number",
"null"
]
},
"lift": {
"type": [
"number",
"null"
]
},
"fore_clip": {
"type": [
"number",
"null"
]
},
"aft_clip": {
"type": [
"number",
"null"
]
},
"group_identifier": {
"type": [
"string",
"null"
]
},
"room_identifier": {
"type": [
"string",
"null"
]
}
},
"required": [
"type",
"position",
"direction",
"up_vector"
],
"additionalProperties": false
}
]
},
"ModelRadianceProperties": {
"type": "object",
"properties": {
"type": {
"const": "ModelRadianceProperties"
},
"modifiers": {
"type": "array",
"items": {
"$ref": "#/$defs/Modifier"
}
},
"modifier_sets": {
"type": "array",
"items": {
"$ref": "#/$defs/ModifierSet"
}
},
"sensor_grids": {
"type": "array",
"items": {
"$ref": "#/$defs/SensorGrid"
}
},
"views": {
"type": "array",
"items": {
"$ref": "#/$defs/View"
}
}
},
"required": [
"type"
],
"additionalProperties": false
}
}
}