honeybee-openstudio 2.29.3 → 2.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/honeybee-openstudio.gemspec +1 -1
- data/lib/from_openstudio/geometry/door.rb +3 -1
- data/lib/from_openstudio/geometry/face.rb +3 -1
- data/lib/from_openstudio/geometry/room.rb +3 -1
- data/lib/from_openstudio/geometry/shade.rb +3 -1
- data/lib/from_openstudio/material/vegetation.rb +89 -0
- data/lib/from_openstudio/model.rb +6 -21
- data/lib/from_openstudio.rb +1 -0
- data/lib/honeybee/_defaults/model.json +226 -11
- data/lib/honeybee/material/vegetation.rb +42 -0
- data/lib/honeybee.rb +1 -0
- data/lib/to_openstudio/construction/dynamic.rb +1 -1
- data/lib/to_openstudio/material/vegetation.rb +176 -0
- data/lib/to_openstudio/model.rb +2 -0
- data/lib/to_openstudio/ventcool/opening.rb +1 -1
- data/lib/to_openstudio.rb +1 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e61c104adc3d8f346115f29cfdc29e268a8668ba11d5bf3e44fdd054f75f95ba
|
4
|
+
data.tar.gz: 1d9b02e466124bbf3c72bb15e54308146ad0076d7e98339929fddac8d3018200
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdf371172756c14205799e1a476517c64587a261e4331828ddce046082d256e70511ab00cb50275f35ee080deb44f1ce4a7f35bb8a04e21bf8fe94a805c21888
|
7
|
+
data.tar.gz: a76dff993fb5fc51ea9d11d1999553d2f8a43fd107cb17864a6c8dc8ceac9999ca00d64b68d0f51261a70e91991952b5fda794d168f98f4f0470a6767dc680e2
|
data/honeybee-openstudio.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'honeybee-openstudio'
|
7
|
-
spec.version = '2.
|
7
|
+
spec.version = '2.30.0'
|
8
8
|
spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
|
9
9
|
spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
|
10
10
|
|
@@ -40,7 +40,9 @@ module Honeybee
|
|
40
40
|
hash = {}
|
41
41
|
hash[:type] = 'Door'
|
42
42
|
hash[:identifier] = clean_identifier(sub_surface.nameString)
|
43
|
-
|
43
|
+
unless sub_surface.displayName.empty?
|
44
|
+
hash[:display_name] = (sub_surface.displayName.get).force_encoding("UTF-8")
|
45
|
+
end
|
44
46
|
hash[:user_data] = {handle: sub_surface.handle.to_s}
|
45
47
|
hash[:properties] = properties_from_sub_surface(sub_surface)
|
46
48
|
hash[:geometry] = geometry_from_sub_surface(sub_surface, site_transformation)
|
@@ -38,7 +38,9 @@ module Honeybee
|
|
38
38
|
hash = {}
|
39
39
|
hash[:type] = 'Face'
|
40
40
|
hash[:identifier] = clean_identifier(surface.nameString)
|
41
|
-
|
41
|
+
unless surface.displayName.empty?
|
42
|
+
hash[:display_name] = (surface.displayName.get).force_encoding("UTF-8")
|
43
|
+
end
|
42
44
|
hash[:user_data] = {handle: surface.handle.to_s}
|
43
45
|
hash[:properties] = properties_from_surface(surface)
|
44
46
|
hash[:geometry] = geometry_from_surface(surface, site_transformation)
|
@@ -38,7 +38,9 @@ module Honeybee
|
|
38
38
|
hash = {}
|
39
39
|
hash[:type] = 'Room'
|
40
40
|
hash[:identifier] = clean_identifier(space.nameString)
|
41
|
-
|
41
|
+
unless space.displayName.empty?
|
42
|
+
hash[:display_name] = (space.displayName.get).force_encoding("UTF-8")
|
43
|
+
end
|
42
44
|
hash[:user_data] = {space: space.handle.to_s}
|
43
45
|
hash[:properties] = properties_from_space(space)
|
44
46
|
|
@@ -40,7 +40,9 @@ module Honeybee
|
|
40
40
|
hash = {}
|
41
41
|
hash[:type] = 'Shade'
|
42
42
|
hash[:identifier] = clean_identifier(shading_surface.nameString)
|
43
|
-
|
43
|
+
unless shading_surface.displayName.empty?
|
44
|
+
hash[:display_name] = (shading_surface.displayName.get).force_encoding("UTF-8")
|
45
|
+
end
|
44
46
|
hash[:user_data] = {handle: shading_surface.handle.to_s}
|
45
47
|
hash[:properties] = properties_from_shading_surface(shading_surface)
|
46
48
|
hash[:geometry] = geometry_from_shading_surface(shading_surface, site_transformation)
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# *******************************************************************************
|
2
|
+
# Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
|
3
|
+
# Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
6
|
+
# modification, are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# (1) Redistributions of source code must retain the above copyright notice,
|
9
|
+
# this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# (2) Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# (3) Neither the name of the copyright holder nor the names of any contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission from the respective party.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
|
20
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
|
23
|
+
# UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
|
24
|
+
# THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
25
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
26
|
+
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
27
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
28
|
+
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
29
|
+
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
# *******************************************************************************
|
31
|
+
|
32
|
+
require 'honeybee/material/vegetation'
|
33
|
+
require 'to_openstudio/model_object'
|
34
|
+
|
35
|
+
module Honeybee
|
36
|
+
class EnergyMaterialVegetation < ModelObject
|
37
|
+
|
38
|
+
def self.from_material(material)
|
39
|
+
# create an empty hash
|
40
|
+
hash = {}
|
41
|
+
hash[:type] = 'EnergyMaterialVegetation'
|
42
|
+
# set hash values from OpenStudio Object
|
43
|
+
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
47
|
+
hash[:thickness] = material.thickness
|
48
|
+
hash[:conductivity] = material.conductivityofDrySoil
|
49
|
+
hash[:density] = material.densityofDrySoil
|
50
|
+
hash[:specific_heat] = material.specificHeatofDrySoil
|
51
|
+
hash[:plant_height] = material.heightofPlants
|
52
|
+
hash[:leaf_area_index] = material.leafAreaIndex
|
53
|
+
hash[:leaf_reflectivity] = material.leafReflectivity
|
54
|
+
hash[:leaf_emissivity] = material.leafEmissivity
|
55
|
+
hash[:min_stomatal_resist] = material.minimumStomatalResistance
|
56
|
+
hash[:sat_vol_moist_cont] = material.saturationVolumetricMoistureContent
|
57
|
+
hash[:residual_vol_moist_cont] = material.residualVolumetricMoistureContent
|
58
|
+
hash[:init_vol_moist_cont] = material.initialVolumetricMoistureContent
|
59
|
+
hash[:moist_diff_model] = material.moistureDiffusionCalculationMethod.titleize
|
60
|
+
case material.roughness.downcase
|
61
|
+
when 'veryrough'
|
62
|
+
hash[:roughness] == 'VeryRough'
|
63
|
+
when 'mediumrough'
|
64
|
+
hash[:roughness] == 'MediumRough'
|
65
|
+
when 'mediumsmooth'
|
66
|
+
hash[:roughness] == 'MediumSmooth'
|
67
|
+
when 'verysmooth'
|
68
|
+
hash[:roughness] == 'VerySmooth'
|
69
|
+
# In case of Rough or Smooth
|
70
|
+
else
|
71
|
+
hash[:roughness] = material.roughness.titleize
|
72
|
+
end
|
73
|
+
|
74
|
+
# assign the optional properties
|
75
|
+
unless material.thermalAbsorptance.empty?
|
76
|
+
hash[:soil_thermal_absorptance] = material.thermalAbsorptance.get
|
77
|
+
end
|
78
|
+
unless material.solarAbsorptance.empty?
|
79
|
+
hash[:soil_solar_absorptance] = material.solarAbsorptance.get
|
80
|
+
end
|
81
|
+
unless material.visibleAbsorptance.empty?
|
82
|
+
hash[:soil_visible_absorptance] = material.visibleAbsorptance.get
|
83
|
+
end
|
84
|
+
|
85
|
+
hash
|
86
|
+
end
|
87
|
+
|
88
|
+
end # EnergyMaterialVegetation
|
89
|
+
end # Honeybee
|
@@ -31,26 +31,6 @@
|
|
31
31
|
|
32
32
|
require 'honeybee/model'
|
33
33
|
|
34
|
-
require 'from_openstudio/geometry/room'
|
35
|
-
require 'from_openstudio/geometry/shade'
|
36
|
-
require 'from_openstudio/material/opaque'
|
37
|
-
require 'from_openstudio/material/opaque_no_mass'
|
38
|
-
require 'from_openstudio/material/window_simpleglazsys'
|
39
|
-
require 'from_openstudio/material/window_glazing'
|
40
|
-
require 'from_openstudio/material/window_blind'
|
41
|
-
require 'from_openstudio/material/window_gas'
|
42
|
-
require 'from_openstudio/material/window_gas_custom'
|
43
|
-
require 'from_openstudio/material/window_gas_mixture'
|
44
|
-
require 'from_openstudio/construction/air'
|
45
|
-
require 'from_openstudio/construction/opaque'
|
46
|
-
require 'from_openstudio/construction/window'
|
47
|
-
require 'from_openstudio/construction/shade'
|
48
|
-
require 'from_openstudio/construction_set'
|
49
|
-
require 'from_openstudio/schedule/type_limit'
|
50
|
-
require 'from_openstudio/schedule/ruleset'
|
51
|
-
require 'from_openstudio/schedule/fixed_interval'
|
52
|
-
require 'from_openstudio/program_type'
|
53
|
-
|
54
34
|
require 'openstudio'
|
55
35
|
|
56
36
|
module Honeybee
|
@@ -188,6 +168,11 @@ module Honeybee
|
|
188
168
|
result << EnergyMaterialNoMass.from_material(material)
|
189
169
|
end
|
190
170
|
|
171
|
+
# Create HB EnergyMaterialVegetation from OpenStudio RoofVegetation Materials
|
172
|
+
openstudio_model.getRoofVegetations.each do |material|
|
173
|
+
result << EnergyMaterialVegetation.from_material(material)
|
174
|
+
end
|
175
|
+
|
191
176
|
# Create HB EnergyMaterialNoMass from OpenStudio AirGap materials
|
192
177
|
openstudio_model.getAirGaps.each do|material|
|
193
178
|
result << EnergyMaterialNoMass.from_material(material)
|
@@ -239,7 +224,7 @@ module Honeybee
|
|
239
224
|
unless material.nil?
|
240
225
|
if material.to_StandardGlazing.is_initialized or material.to_SimpleGlazing.is_initialized
|
241
226
|
window_construction = true
|
242
|
-
elsif material.to_StandardOpaqueMaterial.is_initialized or material.to_MasslessOpaqueMaterial.is_initialized
|
227
|
+
elsif material.to_StandardOpaqueMaterial.is_initialized or material.to_MasslessOpaqueMaterial.is_initialized or material.to_RoofVegetation.is_initialized
|
243
228
|
opaque_construction = true
|
244
229
|
end
|
245
230
|
if window_construction == true
|
data/lib/from_openstudio.rb
CHANGED
@@ -53,6 +53,7 @@ require 'from_openstudio/construction/air'
|
|
53
53
|
# import the material objects
|
54
54
|
require 'from_openstudio/material/opaque'
|
55
55
|
require 'from_openstudio/material/opaque_no_mass'
|
56
|
+
require 'from_openstudio/material/vegetation'
|
56
57
|
require 'from_openstudio/material/window_gas'
|
57
58
|
require 'from_openstudio/material/window_gas_mixture'
|
58
59
|
require 'from_openstudio/material/window_gas_custom'
|
@@ -3,7 +3,7 @@
|
|
3
3
|
"servers": [],
|
4
4
|
"info": {
|
5
5
|
"description": "Honeybee model schema.",
|
6
|
-
"version": "1.
|
6
|
+
"version": "1.47.2",
|
7
7
|
"title": "Honeybee Model Schema",
|
8
8
|
"contact": {
|
9
9
|
"name": "Ladybug Tools",
|
@@ -209,6 +209,11 @@
|
|
209
209
|
"x-displayName": "EnergyMaterialNoMass",
|
210
210
|
"description": "<SchemaDefinition schemaRef=\"#/components/schemas/EnergyMaterialNoMass\" />\n"
|
211
211
|
},
|
212
|
+
{
|
213
|
+
"name": "energymaterialvegetation_model",
|
214
|
+
"x-displayName": "EnergyMaterialVegetation",
|
215
|
+
"description": "<SchemaDefinition schemaRef=\"#/components/schemas/EnergyMaterialVegetation\" />\n"
|
216
|
+
},
|
212
217
|
{
|
213
218
|
"name": "energywindowmaterialblind_model",
|
214
219
|
"x-displayName": "EnergyWindowMaterialBlind",
|
@@ -469,6 +474,11 @@
|
|
469
474
|
"x-displayName": "ModifierSetAbridged",
|
470
475
|
"description": "<SchemaDefinition schemaRef=\"#/components/schemas/ModifierSetAbridged\" />\n"
|
471
476
|
},
|
477
|
+
{
|
478
|
+
"name": "moisturediffusionmodel_model",
|
479
|
+
"x-displayName": "MoistureDiffusionModel",
|
480
|
+
"description": "<SchemaDefinition schemaRef=\"#/components/schemas/MoistureDiffusionModel\" />\n"
|
481
|
+
},
|
472
482
|
{
|
473
483
|
"name": "nolimit_model",
|
474
484
|
"x-displayName": "NoLimit",
|
@@ -971,6 +981,7 @@
|
|
971
981
|
"electricequipmentabridged_model",
|
972
982
|
"energymaterial_model",
|
973
983
|
"energymaterialnomass_model",
|
984
|
+
"energymaterialvegetation_model",
|
974
985
|
"energywindowmaterialblind_model",
|
975
986
|
"energywindowmaterialgas_model",
|
976
987
|
"energywindowmaterialgascustom_model",
|
@@ -1023,6 +1034,7 @@
|
|
1023
1034
|
"modelradianceproperties_model",
|
1024
1035
|
"modifierset_model",
|
1025
1036
|
"modifiersetabridged_model",
|
1037
|
+
"moisturediffusionmodel_model",
|
1026
1038
|
"nolimit_model",
|
1027
1039
|
"opaqueconstruction_model",
|
1028
1040
|
"opaqueconstructionabridged_model",
|
@@ -1641,6 +1653,7 @@
|
|
1641
1653
|
"flow_coefficient_closed": {
|
1642
1654
|
"title": "Flow Coefficient Closed",
|
1643
1655
|
"description": "An optional number in kg/s-m, at 1 Pa per meter of crack length, used to calculate the mass flow rate when the opening is closed; required to run an AirflowNetwork simulation. The DesignBuilder Cracks template defines the flow coefficient for a tight, low-leakage closed external window to be 0.00001, and the flow coefficient for a very poor, high-leakage closed external window to be 0.003.",
|
1656
|
+
"default": 0,
|
1644
1657
|
"minimum": 0,
|
1645
1658
|
"type": "number",
|
1646
1659
|
"format": "double"
|
@@ -4959,7 +4972,7 @@
|
|
4959
4972
|
},
|
4960
4973
|
"air_boundary_construction": {
|
4961
4974
|
"title": "Air Boundary Construction",
|
4962
|
-
"description": "The identifier of an AirBoundaryConstruction to set the properties of Faces with an AirBoundary type.",
|
4975
|
+
"description": "The identifier of an AirBoundaryConstruction or OpaqueConstruction to set the properties of Faces with an AirBoundary type.",
|
4963
4976
|
"maxLength": 100,
|
4964
4977
|
"minLength": 1,
|
4965
4978
|
"type": "string"
|
@@ -4970,6 +4983,199 @@
|
|
4970
4983
|
],
|
4971
4984
|
"additionalProperties": false
|
4972
4985
|
},
|
4986
|
+
"MoistureDiffusionModel": {
|
4987
|
+
"title": "MoistureDiffusionModel",
|
4988
|
+
"description": "Acceptable values for the moisture diffusion model for vegetation.",
|
4989
|
+
"enum": [
|
4990
|
+
"Simple",
|
4991
|
+
"Advanced"
|
4992
|
+
],
|
4993
|
+
"type": "string"
|
4994
|
+
},
|
4995
|
+
"EnergyMaterialVegetation": {
|
4996
|
+
"title": "EnergyMaterialVegetation",
|
4997
|
+
"description": "Material representing vegetation on the exterior of an opaque construction.",
|
4998
|
+
"type": "object",
|
4999
|
+
"properties": {
|
5000
|
+
"identifier": {
|
5001
|
+
"title": "Identifier",
|
5002
|
+
"description": "Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be < 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t).",
|
5003
|
+
"maxLength": 100,
|
5004
|
+
"minLength": 1,
|
5005
|
+
"pattern": "^[^,;!\\n\\t]+$",
|
5006
|
+
"type": "string"
|
5007
|
+
},
|
5008
|
+
"display_name": {
|
5009
|
+
"title": "Display Name",
|
5010
|
+
"description": "Display name of the object with no character restrictions.",
|
5011
|
+
"type": "string"
|
5012
|
+
},
|
5013
|
+
"user_data": {
|
5014
|
+
"title": "User Data",
|
5015
|
+
"description": "Optional dictionary of user data associated with the object.All keys and values of this dictionary should be of a standard data type to ensure correct serialization of the object (eg. str, float, int, list).",
|
5016
|
+
"type": "object"
|
5017
|
+
},
|
5018
|
+
"type": {
|
5019
|
+
"title": "Type",
|
5020
|
+
"default": "EnergyMaterialVegetation",
|
5021
|
+
"pattern": "^EnergyMaterialVegetation$",
|
5022
|
+
"type": "string",
|
5023
|
+
"readOnly": true
|
5024
|
+
},
|
5025
|
+
"roughness": {
|
5026
|
+
"default": "MediumRough",
|
5027
|
+
"allOf": [
|
5028
|
+
{
|
5029
|
+
"$ref": "#/components/schemas/Roughness"
|
5030
|
+
}
|
5031
|
+
]
|
5032
|
+
},
|
5033
|
+
"thickness": {
|
5034
|
+
"title": "Thickness",
|
5035
|
+
"description": "Thickness of the soil layer in meters.",
|
5036
|
+
"default": 0.1,
|
5037
|
+
"exclusiveMinimum": 0,
|
5038
|
+
"maximum": 3,
|
5039
|
+
"type": "number",
|
5040
|
+
"format": "double"
|
5041
|
+
},
|
5042
|
+
"conductivity": {
|
5043
|
+
"title": "Conductivity",
|
5044
|
+
"description": "Thermal conductivity of the dry soil in W/m-K.",
|
5045
|
+
"default": 0.35,
|
5046
|
+
"exclusiveMinimum": 0,
|
5047
|
+
"type": "number",
|
5048
|
+
"format": "double"
|
5049
|
+
},
|
5050
|
+
"density": {
|
5051
|
+
"title": "Density",
|
5052
|
+
"description": "Density of the dry soil in kg/m3.",
|
5053
|
+
"default": 1100,
|
5054
|
+
"exclusiveMinimum": 0,
|
5055
|
+
"type": "number",
|
5056
|
+
"format": "double"
|
5057
|
+
},
|
5058
|
+
"specific_heat": {
|
5059
|
+
"title": "Specific Heat",
|
5060
|
+
"description": "Specific heat of the dry soil in J/kg-K.",
|
5061
|
+
"default": 1200,
|
5062
|
+
"minimum": 100,
|
5063
|
+
"type": "number",
|
5064
|
+
"format": "double"
|
5065
|
+
},
|
5066
|
+
"soil_thermal_absorptance": {
|
5067
|
+
"title": "Soil Thermal Absorptance",
|
5068
|
+
"description": "Fraction of incident long wavelength radiation that is absorbed by the soil. Default: 0.9.",
|
5069
|
+
"default": 0.9,
|
5070
|
+
"exclusiveMinimum": 0,
|
5071
|
+
"maximum": 0.99999,
|
5072
|
+
"type": "number",
|
5073
|
+
"format": "double"
|
5074
|
+
},
|
5075
|
+
"soil_solar_absorptance": {
|
5076
|
+
"title": "Soil Solar Absorptance",
|
5077
|
+
"description": "Fraction of incident solar radiation absorbed by the soil. Default: 0.7.",
|
5078
|
+
"default": 0.7,
|
5079
|
+
"minimum": 0,
|
5080
|
+
"maximum": 1,
|
5081
|
+
"type": "number",
|
5082
|
+
"format": "double"
|
5083
|
+
},
|
5084
|
+
"soil_visible_absorptance": {
|
5085
|
+
"title": "Soil Visible Absorptance",
|
5086
|
+
"description": "Fraction of incident visible wavelength radiation absorbed by the material. Default: 0.7.",
|
5087
|
+
"default": 0.7,
|
5088
|
+
"minimum": 0,
|
5089
|
+
"maximum": 1,
|
5090
|
+
"type": "number",
|
5091
|
+
"format": "double"
|
5092
|
+
},
|
5093
|
+
"plant_height": {
|
5094
|
+
"title": "Plant Height",
|
5095
|
+
"description": "The height of plants in the vegetation in meters.",
|
5096
|
+
"default": 0.2,
|
5097
|
+
"minimum": 0.005,
|
5098
|
+
"maximum": 1.0,
|
5099
|
+
"type": "number",
|
5100
|
+
"format": "double"
|
5101
|
+
},
|
5102
|
+
"leaf_area_index": {
|
5103
|
+
"title": "Leaf Area Index",
|
5104
|
+
"description": "The projected leaf area per unit area of soil surface (aka. Leaf Area Index or LAI). Note that the fraction of vegetation cover is calculated directly from LAI using an empirical relation.",
|
5105
|
+
"default": 1.0,
|
5106
|
+
"minimum": 0.001,
|
5107
|
+
"maximum": 5.0,
|
5108
|
+
"type": "number",
|
5109
|
+
"format": "double"
|
5110
|
+
},
|
5111
|
+
"leaf_reflectivity": {
|
5112
|
+
"title": "Leaf Reflectivity",
|
5113
|
+
"description": "The fraction of incident solar radiation that is reflected by the leaf surfaces. Solar radiation includes the visible spectrum as well as infrared and ultraviolet wavelengths. Typical values are 0.18 to 0.25.",
|
5114
|
+
"default": 0.22,
|
5115
|
+
"minimum": 0.005,
|
5116
|
+
"maximum": 0.5,
|
5117
|
+
"type": "number",
|
5118
|
+
"format": "double"
|
5119
|
+
},
|
5120
|
+
"leaf_emissivity": {
|
5121
|
+
"title": "Leaf Emissivity",
|
5122
|
+
"description": "The ratio of thermal radiation emitted from leaf surfaces to that emitted by an ideal black body at the same temperature.",
|
5123
|
+
"default": 0.95,
|
5124
|
+
"minimum": 0.8,
|
5125
|
+
"maximum": 1.0,
|
5126
|
+
"type": "number",
|
5127
|
+
"format": "double"
|
5128
|
+
},
|
5129
|
+
"min_stomatal_resist": {
|
5130
|
+
"title": "Min Stomatal Resist",
|
5131
|
+
"description": "The resistance of the plants to moisture transport [s/m]. Plants with low values of stomatal resistance will result in higher evapotranspiration rates than plants with high resistance.",
|
5132
|
+
"default": 180,
|
5133
|
+
"minimum": 50,
|
5134
|
+
"maximum": 300,
|
5135
|
+
"type": "number",
|
5136
|
+
"format": "double"
|
5137
|
+
},
|
5138
|
+
"sat_vol_moist_cont": {
|
5139
|
+
"title": "Sat Vol Moist Cont",
|
5140
|
+
"description": "The saturation moisture content of the soil by volume.",
|
5141
|
+
"default": 0.3,
|
5142
|
+
"minimum": 0.1,
|
5143
|
+
"maximum": 0.5,
|
5144
|
+
"type": "number",
|
5145
|
+
"format": "double"
|
5146
|
+
},
|
5147
|
+
"residual_vol_moist_cont": {
|
5148
|
+
"title": "Residual Vol Moist Cont",
|
5149
|
+
"description": "The residual moisture content of the soil by volume.",
|
5150
|
+
"default": 0.01,
|
5151
|
+
"minimum": 0.01,
|
5152
|
+
"maximum": 0.1,
|
5153
|
+
"type": "number",
|
5154
|
+
"format": "double"
|
5155
|
+
},
|
5156
|
+
"init_vol_moist_cont": {
|
5157
|
+
"title": "Init Vol Moist Cont",
|
5158
|
+
"description": "The initial moisture content of the soil by volume.",
|
5159
|
+
"default": 0.01,
|
5160
|
+
"minimum": 0.05,
|
5161
|
+
"maximum": 0.5,
|
5162
|
+
"type": "number",
|
5163
|
+
"format": "double"
|
5164
|
+
},
|
5165
|
+
"moist_diff_model": {
|
5166
|
+
"default": "Simple",
|
5167
|
+
"allOf": [
|
5168
|
+
{
|
5169
|
+
"$ref": "#/components/schemas/MoistureDiffusionModel"
|
5170
|
+
}
|
5171
|
+
]
|
5172
|
+
}
|
5173
|
+
},
|
5174
|
+
"required": [
|
5175
|
+
"identifier"
|
5176
|
+
],
|
5177
|
+
"additionalProperties": false
|
5178
|
+
},
|
4973
5179
|
"OpaqueConstruction": {
|
4974
5180
|
"title": "OpaqueConstruction",
|
4975
5181
|
"description": "Construction for opaque objects (Face, Shade, Door).",
|
@@ -4996,6 +5202,9 @@
|
|
4996
5202
|
},
|
4997
5203
|
{
|
4998
5204
|
"$ref": "#/components/schemas/EnergyMaterialNoMass"
|
5205
|
+
},
|
5206
|
+
{
|
5207
|
+
"$ref": "#/components/schemas/EnergyMaterialVegetation"
|
4999
5208
|
}
|
5000
5209
|
]
|
5001
5210
|
}
|
@@ -6847,10 +7056,13 @@
|
|
6847
7056
|
},
|
6848
7057
|
"air_boundary_construction": {
|
6849
7058
|
"title": "Air Boundary Construction",
|
6850
|
-
"description": "An AirBoundaryConstruction to set the properties of Faces with an AirBoundary type.",
|
6851
|
-
"
|
7059
|
+
"description": "An AirBoundaryConstruction or OpaqueConstruction to set the properties of Faces with an AirBoundary type.",
|
7060
|
+
"anyOf": [
|
6852
7061
|
{
|
6853
7062
|
"$ref": "#/components/schemas/AirBoundaryConstruction"
|
7063
|
+
},
|
7064
|
+
{
|
7065
|
+
"$ref": "#/components/schemas/OpaqueConstruction"
|
6854
7066
|
}
|
6855
7067
|
]
|
6856
7068
|
}
|
@@ -10298,22 +10510,25 @@
|
|
10298
10510
|
"$ref": "#/components/schemas/EnergyMaterialNoMass"
|
10299
10511
|
},
|
10300
10512
|
{
|
10301
|
-
"$ref": "#/components/schemas/
|
10513
|
+
"$ref": "#/components/schemas/EnergyMaterialVegetation"
|
10302
10514
|
},
|
10303
10515
|
{
|
10304
|
-
"$ref": "#/components/schemas/
|
10516
|
+
"$ref": "#/components/schemas/EnergyWindowMaterialGlazing"
|
10305
10517
|
},
|
10306
10518
|
{
|
10307
|
-
"$ref": "#/components/schemas/
|
10519
|
+
"$ref": "#/components/schemas/EnergyWindowMaterialSimpleGlazSys"
|
10308
10520
|
},
|
10309
10521
|
{
|
10310
|
-
"$ref": "#/components/schemas/
|
10522
|
+
"$ref": "#/components/schemas/EnergyWindowMaterialGas"
|
10311
10523
|
},
|
10312
10524
|
{
|
10313
|
-
"$ref": "#/components/schemas/
|
10525
|
+
"$ref": "#/components/schemas/EnergyWindowMaterialGasMixture"
|
10314
10526
|
},
|
10315
10527
|
{
|
10316
|
-
"$ref": "#/components/schemas/
|
10528
|
+
"$ref": "#/components/schemas/EnergyWindowMaterialGasCustom"
|
10529
|
+
},
|
10530
|
+
{
|
10531
|
+
"$ref": "#/components/schemas/EnergyWindowMaterialBlind"
|
10317
10532
|
},
|
10318
10533
|
{
|
10319
10534
|
"$ref": "#/components/schemas/EnergyWindowMaterialShade"
|
@@ -13612,7 +13827,7 @@
|
|
13612
13827
|
"version": {
|
13613
13828
|
"title": "Version",
|
13614
13829
|
"description": "Text string for the current version of the schema.",
|
13615
|
-
"default": "1.
|
13830
|
+
"default": "1.47.2",
|
13616
13831
|
"pattern": "([0-9]+)\\.([0-9]+)\\.([0-9]+)",
|
13617
13832
|
"type": "string",
|
13618
13833
|
"readOnly": true
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# *******************************************************************************
|
2
|
+
# Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
|
3
|
+
# Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
6
|
+
# modification, are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# (1) Redistributions of source code must retain the above copyright notice,
|
9
|
+
# this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# (2) Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# (3) Neither the name of the copyright holder nor the names of any contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission from the respective party.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
|
20
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
|
23
|
+
# UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
|
24
|
+
# THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
25
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
26
|
+
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
27
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
28
|
+
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
29
|
+
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
# *******************************************************************************
|
31
|
+
|
32
|
+
require 'honeybee/model_object'
|
33
|
+
|
34
|
+
module Honeybee
|
35
|
+
class EnergyMaterialVegetation < ModelObject
|
36
|
+
|
37
|
+
def defaults
|
38
|
+
@@schema[:components][:schemas][:EnergyMaterialVegetation][:properties]
|
39
|
+
end
|
40
|
+
|
41
|
+
end # EnergyMaterialVegetation
|
42
|
+
end # Honeybee
|
data/lib/honeybee.rb
CHANGED
@@ -60,6 +60,7 @@ require 'honeybee/construction/air'
|
|
60
60
|
# import the material objects
|
61
61
|
require 'honeybee/material/opaque'
|
62
62
|
require 'honeybee/material/opaque_no_mass'
|
63
|
+
require 'honeybee/material/vegetation'
|
63
64
|
require 'honeybee/material/window_gas'
|
64
65
|
require 'honeybee/material/window_gas_mixture'
|
65
66
|
require 'honeybee/material/window_gas_custom'
|
@@ -68,7 +68,7 @@ module Honeybee
|
|
68
68
|
@@program_manager = OpenStudio::Model::EnergyManagementSystemProgramCallingManager.new(
|
69
69
|
openstudio_model)
|
70
70
|
@@program_manager.setName('Dynamic_Window_Constructions')
|
71
|
-
@@program_manager.setCallingPoint('
|
71
|
+
@@program_manager.setCallingPoint('BeginTimestepBeforePredictor')
|
72
72
|
end
|
73
73
|
@@program_manager
|
74
74
|
end
|
@@ -0,0 +1,176 @@
|
|
1
|
+
# *******************************************************************************
|
2
|
+
# Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
|
3
|
+
# Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
6
|
+
# modification, are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# (1) Redistributions of source code must retain the above copyright notice,
|
9
|
+
# this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# (2) Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# (3) Neither the name of the copyright holder nor the names of any contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission from the respective party.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
|
20
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
|
23
|
+
# UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
|
24
|
+
# THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
25
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
26
|
+
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
27
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
28
|
+
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
29
|
+
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
# *******************************************************************************
|
31
|
+
|
32
|
+
require 'honeybee/material/vegetation'
|
33
|
+
|
34
|
+
require 'to_openstudio/model_object'
|
35
|
+
|
36
|
+
module Honeybee
|
37
|
+
class EnergyMaterialVegetation < ModelObject
|
38
|
+
|
39
|
+
def find_existing_openstudio_object(openstudio_model)
|
40
|
+
object = openstudio_model.getRoofVegetationByName(@hash[:identifier])
|
41
|
+
return object.get if object.is_initialized
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_openstudio(openstudio_model)
|
46
|
+
# create standard opaque OpenStudio material
|
47
|
+
os_veg_mat = OpenStudio::Model::RoofVegetation.new(openstudio_model)
|
48
|
+
os_veg_mat.setName(@hash[:identifier])
|
49
|
+
unless @hash[:display_name].nil?
|
50
|
+
os_veg_mat.setDisplayName(@hash[:display_name])
|
51
|
+
end
|
52
|
+
os_veg_mat.setSoilLayerName(@hash[:identifier] + '{}_SoilLayer')
|
53
|
+
|
54
|
+
# assign thickness if it exists
|
55
|
+
if @hash[:thickness]
|
56
|
+
os_veg_mat.setThickness(@hash[:thickness])
|
57
|
+
else
|
58
|
+
os_veg_mat.setThickness(defaults[:thickness][:default])
|
59
|
+
end
|
60
|
+
|
61
|
+
# assign conductivity if it exists
|
62
|
+
if @hash[:conductivity]
|
63
|
+
os_veg_mat.setConductivityofDrySoil(@hash[:conductivity])
|
64
|
+
else
|
65
|
+
os_veg_mat.setConductivityofDrySoil(defaults[:conductivity][:default])
|
66
|
+
end
|
67
|
+
|
68
|
+
# assign density if it exists
|
69
|
+
if @hash[:density]
|
70
|
+
os_veg_mat.setDensityofDrySoil(@hash[:density])
|
71
|
+
else
|
72
|
+
os_veg_mat.setDensityofDrySoil(defaults[:density][:default])
|
73
|
+
end
|
74
|
+
|
75
|
+
# assign specific_heat if it exists
|
76
|
+
if @hash[:specific_heat]
|
77
|
+
os_veg_mat.setSpecificHeatofDrySoil(@hash[:specific_heat])
|
78
|
+
else
|
79
|
+
os_veg_mat.setSpecificHeatofDrySoil(defaults[:specific_heat][:default])
|
80
|
+
end
|
81
|
+
|
82
|
+
# assign roughness if it exists
|
83
|
+
if @hash[:roughness]
|
84
|
+
os_veg_mat.setRoughness(@hash[:roughness])
|
85
|
+
else
|
86
|
+
os_veg_mat.setRoughness(defaults[:roughness][:default])
|
87
|
+
end
|
88
|
+
|
89
|
+
# assign thermal absorptance if it exists
|
90
|
+
if @hash[:soil_thermal_absorptance]
|
91
|
+
os_veg_mat.setThermalAbsorptance(@hash[:soil_thermal_absorptance])
|
92
|
+
else
|
93
|
+
os_veg_mat.setThermalAbsorptance(defaults[:soil_thermal_absorptance][:default])
|
94
|
+
end
|
95
|
+
|
96
|
+
# assign solar absorptance if it exists
|
97
|
+
if @hash[:soil_solar_absorptance]
|
98
|
+
os_veg_mat.setSolarAbsorptance(@hash[:soil_solar_absorptance])
|
99
|
+
else
|
100
|
+
os_veg_mat.setSolarAbsorptance(defaults[:soil_solar_absorptance][:default])
|
101
|
+
end
|
102
|
+
|
103
|
+
# assign visible absorptance if it exists
|
104
|
+
if @hash[:soil_visible_absorptance]
|
105
|
+
os_veg_mat.setVisibleAbsorptance(@hash[:soil_visible_absorptance])
|
106
|
+
else
|
107
|
+
os_veg_mat.setVisibleAbsorptance(defaults[:soil_visible_absorptance][:default])
|
108
|
+
end
|
109
|
+
|
110
|
+
# assign plant_height if it exists
|
111
|
+
if @hash[:plant_height]
|
112
|
+
os_veg_mat.setHeightofPlants(@hash[:plant_height])
|
113
|
+
else
|
114
|
+
os_veg_mat.setHeightofPlants(defaults[:plant_height][:default])
|
115
|
+
end
|
116
|
+
|
117
|
+
# assign leaf_area_index if it exists
|
118
|
+
if @hash[:leaf_area_index]
|
119
|
+
os_veg_mat.setLeafAreaIndex(@hash[:leaf_area_index])
|
120
|
+
else
|
121
|
+
os_veg_mat.setLeafAreaIndex(defaults[:leaf_area_index][:default])
|
122
|
+
end
|
123
|
+
|
124
|
+
# assign leaf_reflectivity if it exists
|
125
|
+
if @hash[:leaf_reflectivity]
|
126
|
+
os_veg_mat.setLeafReflectivity(@hash[:leaf_reflectivity])
|
127
|
+
else
|
128
|
+
os_veg_mat.setLeafReflectivity(defaults[:leaf_reflectivity][:default])
|
129
|
+
end
|
130
|
+
|
131
|
+
# assign leaf_emissivity if it exists
|
132
|
+
if @hash[:leaf_emissivity]
|
133
|
+
os_veg_mat.setLeafEmissivity(@hash[:leaf_emissivity])
|
134
|
+
else
|
135
|
+
os_veg_mat.setLeafEmissivity(defaults[:leaf_emissivity][:default])
|
136
|
+
end
|
137
|
+
|
138
|
+
# assign min_stomatal_resist if it exists
|
139
|
+
if @hash[:min_stomatal_resist]
|
140
|
+
os_veg_mat.setMinimumStomatalResistance(@hash[:min_stomatal_resist])
|
141
|
+
else
|
142
|
+
os_veg_mat.setMinimumStomatalResistance(defaults[:min_stomatal_resist][:default])
|
143
|
+
end
|
144
|
+
|
145
|
+
# assign sat_vol_moist_cont if it exists
|
146
|
+
if @hash[:sat_vol_moist_cont]
|
147
|
+
os_veg_mat.setSaturationVolumetricMoistureContentoftheSoilLayer(@hash[:sat_vol_moist_cont])
|
148
|
+
else
|
149
|
+
os_veg_mat.setSaturationVolumetricMoistureContentoftheSoilLayer(defaults[:sat_vol_moist_cont][:default])
|
150
|
+
end
|
151
|
+
|
152
|
+
# assign residual_vol_moist_cont if it exists
|
153
|
+
if @hash[:residual_vol_moist_cont]
|
154
|
+
os_veg_mat.setResidualVolumetricMoistureContentoftheSoilLayer(@hash[:residual_vol_moist_cont])
|
155
|
+
else
|
156
|
+
os_veg_mat.setResidualVolumetricMoistureContentoftheSoilLayer(defaults[:residual_vol_moist_cont][:default])
|
157
|
+
end
|
158
|
+
|
159
|
+
# assign init_vol_moist_cont if it exists
|
160
|
+
if @hash[:init_vol_moist_cont]
|
161
|
+
os_veg_mat.setInitialVolumetricMoistureContentoftheSoilLayer(@hash[:init_vol_moist_cont])
|
162
|
+
else
|
163
|
+
os_veg_mat.setInitialVolumetricMoistureContentoftheSoilLayer(defaults[:init_vol_moist_cont][:default])
|
164
|
+
end
|
165
|
+
|
166
|
+
# assign moist_diff_model if it exists
|
167
|
+
if @hash[:moist_diff_model]
|
168
|
+
os_veg_mat.setMoistureDiffusionCalculationMethod(@hash[:moist_diff_model])
|
169
|
+
else
|
170
|
+
os_veg_mat.setMoistureDiffusionCalculationMethod(defaults[:moist_diff_model][:default])
|
171
|
+
end
|
172
|
+
|
173
|
+
os_veg_mat
|
174
|
+
end
|
175
|
+
end # EnergyMaterialVegetation
|
176
|
+
end # Honeybee
|
data/lib/to_openstudio/model.rb
CHANGED
@@ -227,6 +227,8 @@ module Honeybee
|
|
227
227
|
material_object = EnergyMaterial.new(material)
|
228
228
|
when 'EnergyMaterialNoMass'
|
229
229
|
material_object = EnergyMaterialNoMass.new(material)
|
230
|
+
when 'EnergyMaterialVegetation'
|
231
|
+
material_object = EnergyMaterialVegetation.new(material)
|
230
232
|
when 'EnergyWindowMaterialGas'
|
231
233
|
material_object = EnergyWindowMaterialGas.new(material)
|
232
234
|
$gas_gap_hash[material[:identifier]] = material_object
|
@@ -162,7 +162,7 @@ module Honeybee
|
|
162
162
|
else
|
163
163
|
slope_ang = 90 - (180 - srf_tilt)
|
164
164
|
end
|
165
|
-
os_opening = OpenStudio::Model::AirflowNetworkHorizontalOpening
|
165
|
+
os_opening = OpenStudio::Model::AirflowNetworkHorizontalOpening.new(
|
166
166
|
openstudio_model, flow_coefficient, flow_exponent, slope_ang, discharge_coeff)
|
167
167
|
end
|
168
168
|
else
|
data/lib/to_openstudio.rb
CHANGED
@@ -60,6 +60,7 @@ require 'to_openstudio/construction/air'
|
|
60
60
|
# extend the material objects
|
61
61
|
require 'to_openstudio/material/opaque'
|
62
62
|
require 'to_openstudio/material/opaque_no_mass'
|
63
|
+
require 'to_openstudio/material/vegetation'
|
63
64
|
require 'to_openstudio/material/window_gas'
|
64
65
|
require 'to_openstudio/material/window_gas_mixture'
|
65
66
|
require 'to_openstudio/material/window_gas_custom'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honeybee-openstudio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanushree Charan
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2022-
|
14
|
+
date: 2022-02-05 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -187,6 +187,7 @@ files:
|
|
187
187
|
- lib/from_openstudio/load/ventilation.rb
|
188
188
|
- lib/from_openstudio/material/opaque.rb
|
189
189
|
- lib/from_openstudio/material/opaque_no_mass.rb
|
190
|
+
- lib/from_openstudio/material/vegetation.rb
|
190
191
|
- lib/from_openstudio/material/window_blind.rb
|
191
192
|
- lib/from_openstudio/material/window_gas.rb
|
192
193
|
- lib/from_openstudio/material/window_gas_custom.rb
|
@@ -235,6 +236,7 @@ files:
|
|
235
236
|
- lib/honeybee/load/ventilation.rb
|
236
237
|
- lib/honeybee/material/opaque.rb
|
237
238
|
- lib/honeybee/material/opaque_no_mass.rb
|
239
|
+
- lib/honeybee/material/vegetation.rb
|
238
240
|
- lib/honeybee/material/window_blind.rb
|
239
241
|
- lib/honeybee/material/window_gas.rb
|
240
242
|
- lib/honeybee/material/window_gas_custom.rb
|
@@ -315,6 +317,7 @@ files:
|
|
315
317
|
- lib/to_openstudio/load/ventilation.rb
|
316
318
|
- lib/to_openstudio/material/opaque.rb
|
317
319
|
- lib/to_openstudio/material/opaque_no_mass.rb
|
320
|
+
- lib/to_openstudio/material/vegetation.rb
|
318
321
|
- lib/to_openstudio/material/window_blind.rb
|
319
322
|
- lib/to_openstudio/material/window_gas.rb
|
320
323
|
- lib/to_openstudio/material/window_gas_custom.rb
|