980 lines
22 KiB
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
|
|
}
|
|
}
|
|
} |