honeybee-openstudio 1.8.1 → 1.8.2

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.
Files changed (70) hide show
  1. checksums.yaml +5 -5
  2. data/.coveralls.yml +1 -1
  3. data/.gitignore +32 -32
  4. data/.releaserc.json +7 -7
  5. data/.travis.yml +42 -41
  6. data/Gemfile +18 -18
  7. data/LICENSE.md +23 -23
  8. data/README.md +95 -95
  9. data/Rakefile +20 -20
  10. data/doc_templates/LICENSE.md +23 -23
  11. data/doc_templates/copyright_erb.txt +31 -31
  12. data/doc_templates/copyright_js.txt +4 -4
  13. data/doc_templates/copyright_ruby.txt +29 -29
  14. data/honeybee-openstudio.gemspec +35 -35
  15. data/lib/files/Honeybee.rb +112 -112
  16. data/lib/files/honeybee_workflow.osw +47 -47
  17. data/lib/files/urbanopt_Gemfile +32 -32
  18. data/lib/from_honeybee.rb +86 -86
  19. data/lib/from_honeybee/_openapi/model.json +8126 -8126
  20. data/lib/from_honeybee/_openapi/simulation-parameter.json +842 -842
  21. data/lib/from_honeybee/construction/air.rb +64 -64
  22. data/lib/from_honeybee/construction/opaque.rb +76 -76
  23. data/lib/from_honeybee/construction/shade.rb +107 -107
  24. data/lib/from_honeybee/construction/window.rb +80 -80
  25. data/lib/from_honeybee/construction_set.rb +278 -278
  26. data/lib/from_honeybee/extension.rb +109 -109
  27. data/lib/from_honeybee/geometry/aperture.rb +167 -167
  28. data/lib/from_honeybee/geometry/door.rb +160 -160
  29. data/lib/from_honeybee/geometry/face.rb +163 -163
  30. data/lib/from_honeybee/geometry/room.rb +392 -392
  31. data/lib/from_honeybee/geometry/shade.rb +89 -89
  32. data/lib/from_honeybee/hvac/ideal_air.rb +150 -150
  33. data/lib/from_honeybee/load/electric_equipment.rb +95 -95
  34. data/lib/from_honeybee/load/gas_equipment.rb +97 -97
  35. data/lib/from_honeybee/load/infiltration.rb +94 -94
  36. data/lib/from_honeybee/load/lighting.rb +98 -98
  37. data/lib/from_honeybee/load/people.rb +99 -99
  38. data/lib/from_honeybee/load/setpoint_humidistat.rb +74 -74
  39. data/lib/from_honeybee/load/setpoint_thermostat.rb +71 -71
  40. data/lib/from_honeybee/load/ventilation.rb +95 -95
  41. data/lib/from_honeybee/material/opaque.rb +94 -94
  42. data/lib/from_honeybee/material/opaque_no_mass.rb +94 -94
  43. data/lib/from_honeybee/material/window_blind.rb +238 -238
  44. data/lib/from_honeybee/material/window_gas.rb +76 -76
  45. data/lib/from_honeybee/material/window_gas_custom.rb +118 -118
  46. data/lib/from_honeybee/material/window_gas_mixture.rb +79 -79
  47. data/lib/from_honeybee/material/window_glazing.rb +166 -166
  48. data/lib/from_honeybee/material/window_shade.rb +160 -160
  49. data/lib/from_honeybee/material/window_simpleglazsys.rb +73 -73
  50. data/lib/from_honeybee/model.rb +434 -434
  51. data/lib/from_honeybee/model_object.rb +110 -110
  52. data/lib/from_honeybee/program_type.rb +124 -124
  53. data/lib/from_honeybee/schedule/fixed_interval.rb +115 -115
  54. data/lib/from_honeybee/schedule/ruleset.rb +164 -164
  55. data/lib/from_honeybee/schedule/type_limit.rb +88 -88
  56. data/lib/from_honeybee/simulation/designday.rb +105 -105
  57. data/lib/from_honeybee/simulation/extension.rb +46 -46
  58. data/lib/from_honeybee/simulation/parameter.rb +277 -277
  59. data/lib/from_honeybee/version.rb +34 -34
  60. data/lib/measures/from_honeybee_model/LICENSE.md +26 -26
  61. data/lib/measures/from_honeybee_model/README.md +32 -32
  62. data/lib/measures/from_honeybee_model/measure.rb +91 -91
  63. data/lib/measures/from_honeybee_model/measure.xml +103 -103
  64. data/lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb +126 -126
  65. data/lib/measures/from_honeybee_simulation_parameter/LICENSE.md +26 -26
  66. data/lib/measures/from_honeybee_simulation_parameter/README.md +32 -32
  67. data/lib/measures/from_honeybee_simulation_parameter/measure.rb +95 -95
  68. data/lib/measures/from_honeybee_simulation_parameter/measure.xml +91 -91
  69. data/lib/measures/from_honeybee_simulation_parameter/tests/from_honeybee_simulation_parameter_test.rb +109 -109
  70. metadata +2 -2
@@ -1,96 +1,96 @@
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 'from_honeybee/extension'
33
- require 'from_honeybee/model_object'
34
-
35
- module FromHoneybee
36
- class ElectricEquipmentAbridged < ModelObject
37
- attr_reader :errors, :warnings
38
-
39
- def initialize(hash = {})
40
- super(hash)
41
- raise "Incorrect model type '#{@type}'" unless @type == 'ElectricEquipmentAbridged'
42
- end
43
-
44
- def defaults
45
- @@schema[:components][:schemas][:ElectricEquipmentAbridged][:properties]
46
- end
47
-
48
- def find_existing_openstudio_object(openstudio_model)
49
- model_electric_equipment = openstudio_model.getElectricEquipmentDefinitionByName(@hash[:identifier])
50
- return model_electric_equipment.get unless model_electric_equipment.empty?
51
- nil
52
- end
53
-
54
- def to_openstudio(openstudio_model)
55
- # create electrical equipment and set identifier
56
- os_electric_equip_def = OpenStudio::Model::ElectricEquipmentDefinition.new(openstudio_model)
57
- os_electric_equip = OpenStudio::Model::ElectricEquipment.new(os_electric_equip_def)
58
- os_electric_equip_def.setName(@hash[:identifier])
59
- os_electric_equip.setName(@hash[:identifier])
60
-
61
- # assign watts per area
62
- os_electric_equip_def.setWattsperSpaceFloorArea(@hash[:watts_per_area])
63
-
64
- # assign schedule
65
- electric_equipment_schedule = openstudio_model.getScheduleByName(@hash[:schedule])
66
- unless electric_equipment_schedule.empty?
67
- electric_equipment_schedule_object = electric_equipment_schedule.get
68
- os_electric_equip.setSchedule(electric_equipment_schedule_object)
69
- end
70
-
71
- # assign radiant fraction if it exists
72
- if @hash[:radiant_fraction]
73
- os_electric_equip_def.setFractionRadiant(@hash[:radiant_fraction])
74
- else
75
- os_electric_equip_def.setFractionRadiant(defaults[:radiant_fraction][:default])
76
- end
77
-
78
- # assign latent fraction if it exists
79
- if @hash[:latent_fraction]
80
- os_electric_equip_def.setFractionLatent(@hash[:latent_fraction])
81
- else
82
- os_electric_equip_def.setFractionLatent(defaults[:latent_fraction][:default])
83
- end
84
-
85
- # assign lost fraction if it exists
86
- if @hash[:lost_fraction]
87
- os_electric_equip_def.setFractionLost(@hash[:lost_fraction])
88
- else
89
- os_electric_equip_def.setFractionLost(defaults[:lost_fraction][:default])
90
- end
91
-
92
- os_electric_equip
93
- end
94
-
95
- end #ElectricEquipmentAbridged
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 'from_honeybee/extension'
33
+ require 'from_honeybee/model_object'
34
+
35
+ module FromHoneybee
36
+ class ElectricEquipmentAbridged < ModelObject
37
+ attr_reader :errors, :warnings
38
+
39
+ def initialize(hash = {})
40
+ super(hash)
41
+ raise "Incorrect model type '#{@type}'" unless @type == 'ElectricEquipmentAbridged'
42
+ end
43
+
44
+ def defaults
45
+ @@schema[:components][:schemas][:ElectricEquipmentAbridged][:properties]
46
+ end
47
+
48
+ def find_existing_openstudio_object(openstudio_model)
49
+ model_electric_equipment = openstudio_model.getElectricEquipmentDefinitionByName(@hash[:identifier])
50
+ return model_electric_equipment.get unless model_electric_equipment.empty?
51
+ nil
52
+ end
53
+
54
+ def to_openstudio(openstudio_model)
55
+ # create electrical equipment and set identifier
56
+ os_electric_equip_def = OpenStudio::Model::ElectricEquipmentDefinition.new(openstudio_model)
57
+ os_electric_equip = OpenStudio::Model::ElectricEquipment.new(os_electric_equip_def)
58
+ os_electric_equip_def.setName(@hash[:identifier])
59
+ os_electric_equip.setName(@hash[:identifier])
60
+
61
+ # assign watts per area
62
+ os_electric_equip_def.setWattsperSpaceFloorArea(@hash[:watts_per_area])
63
+
64
+ # assign schedule
65
+ electric_equipment_schedule = openstudio_model.getScheduleByName(@hash[:schedule])
66
+ unless electric_equipment_schedule.empty?
67
+ electric_equipment_schedule_object = electric_equipment_schedule.get
68
+ os_electric_equip.setSchedule(electric_equipment_schedule_object)
69
+ end
70
+
71
+ # assign radiant fraction if it exists
72
+ if @hash[:radiant_fraction]
73
+ os_electric_equip_def.setFractionRadiant(@hash[:radiant_fraction])
74
+ else
75
+ os_electric_equip_def.setFractionRadiant(defaults[:radiant_fraction][:default])
76
+ end
77
+
78
+ # assign latent fraction if it exists
79
+ if @hash[:latent_fraction]
80
+ os_electric_equip_def.setFractionLatent(@hash[:latent_fraction])
81
+ else
82
+ os_electric_equip_def.setFractionLatent(defaults[:latent_fraction][:default])
83
+ end
84
+
85
+ # assign lost fraction if it exists
86
+ if @hash[:lost_fraction]
87
+ os_electric_equip_def.setFractionLost(@hash[:lost_fraction])
88
+ else
89
+ os_electric_equip_def.setFractionLost(defaults[:lost_fraction][:default])
90
+ end
91
+
92
+ os_electric_equip
93
+ end
94
+
95
+ end #ElectricEquipmentAbridged
96
96
  end #FromHoneybee
@@ -1,97 +1,97 @@
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 'from_honeybee/extension'
33
- require 'from_honeybee/model_object'
34
-
35
- module FromHoneybee
36
- class GasEquipmentAbridged < ModelObject
37
- attr_reader :errors, :warnings
38
-
39
- def initialize(hash = {})
40
- super(hash)
41
- raise "Incorrect model type '#{@type}'" unless @type == 'GasEquipmentAbridged'
42
- end
43
-
44
- def defaults
45
- @@schema[:components][:schemas][:GasEquipmentAbridged][:properties]
46
- end
47
-
48
- def find_existing_openstudio_object(openstudio_model)
49
- model_gas_equipment = openstudio_model.getGasEquipmentDefinitionByName(@hash[:identifier])
50
- return model_gas_equipment.get unless model_gas_equipment.empty?
51
- nil
52
- end
53
-
54
- def to_openstudio(openstudio_model)
55
-
56
- # create gas equipment and set identifier
57
- os_gas_equip_def = OpenStudio::Model::GasEquipmentDefinition.new(openstudio_model)
58
- os_gas_equip = OpenStudio::Model::GasEquipment.new(os_gas_equip_def)
59
- os_gas_equip_def.setName(@hash[:identifier])
60
- os_gas_equip.setName(@hash[:identifier])
61
-
62
- # assign watts per space floor area
63
- os_gas_equip_def.setWattsperSpaceFloorArea(@hash[:watts_per_area])
64
-
65
- # assign schedule
66
- gas_equipment_schedule = openstudio_model.getScheduleByName(@hash[:schedule])
67
- unless gas_equipment_schedule.empty?
68
- gas_equipment_schedule_object = gas_equipment_schedule.get
69
- os_gas_equip.setSchedule(gas_equipment_schedule_object)
70
- end
71
-
72
- # assign radiant fraction if it exists
73
- if @hash[:radiant_fraction]
74
- os_gas_equip_def.setFractionRadiant(@hash[:radiant_fraction])
75
- else
76
- os_gas_equip_def.setFractionRadiant(defaults[:radiant_fraction][:default])
77
- end
78
-
79
- # assign latent fraction if it exists
80
- if @hash[:latent_fraction]
81
- os_gas_equip_def.setFractionLatent(@hash[:latent_fraction])
82
- else
83
- os_gas_equip_def.setFractionLatent(defaults[:latent_fraction][:default])
84
- end
85
-
86
- # assign lost fraction if it exists
87
- if @hash[:lost_fraction]
88
- os_gas_equip_def.setFractionLost(@hash[:lost_fraction])
89
- else
90
- os_gas_equip_def.setFractionLost(defaults[:lost_fraction][:default])
91
- end
92
-
93
- os_gas_equip
94
- end
95
-
96
- end #GasEquipmentAbridged
97
- end #FromHoneybee
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 'from_honeybee/extension'
33
+ require 'from_honeybee/model_object'
34
+
35
+ module FromHoneybee
36
+ class GasEquipmentAbridged < ModelObject
37
+ attr_reader :errors, :warnings
38
+
39
+ def initialize(hash = {})
40
+ super(hash)
41
+ raise "Incorrect model type '#{@type}'" unless @type == 'GasEquipmentAbridged'
42
+ end
43
+
44
+ def defaults
45
+ @@schema[:components][:schemas][:GasEquipmentAbridged][:properties]
46
+ end
47
+
48
+ def find_existing_openstudio_object(openstudio_model)
49
+ model_gas_equipment = openstudio_model.getGasEquipmentDefinitionByName(@hash[:identifier])
50
+ return model_gas_equipment.get unless model_gas_equipment.empty?
51
+ nil
52
+ end
53
+
54
+ def to_openstudio(openstudio_model)
55
+
56
+ # create gas equipment and set identifier
57
+ os_gas_equip_def = OpenStudio::Model::GasEquipmentDefinition.new(openstudio_model)
58
+ os_gas_equip = OpenStudio::Model::GasEquipment.new(os_gas_equip_def)
59
+ os_gas_equip_def.setName(@hash[:identifier])
60
+ os_gas_equip.setName(@hash[:identifier])
61
+
62
+ # assign watts per space floor area
63
+ os_gas_equip_def.setWattsperSpaceFloorArea(@hash[:watts_per_area])
64
+
65
+ # assign schedule
66
+ gas_equipment_schedule = openstudio_model.getScheduleByName(@hash[:schedule])
67
+ unless gas_equipment_schedule.empty?
68
+ gas_equipment_schedule_object = gas_equipment_schedule.get
69
+ os_gas_equip.setSchedule(gas_equipment_schedule_object)
70
+ end
71
+
72
+ # assign radiant fraction if it exists
73
+ if @hash[:radiant_fraction]
74
+ os_gas_equip_def.setFractionRadiant(@hash[:radiant_fraction])
75
+ else
76
+ os_gas_equip_def.setFractionRadiant(defaults[:radiant_fraction][:default])
77
+ end
78
+
79
+ # assign latent fraction if it exists
80
+ if @hash[:latent_fraction]
81
+ os_gas_equip_def.setFractionLatent(@hash[:latent_fraction])
82
+ else
83
+ os_gas_equip_def.setFractionLatent(defaults[:latent_fraction][:default])
84
+ end
85
+
86
+ # assign lost fraction if it exists
87
+ if @hash[:lost_fraction]
88
+ os_gas_equip_def.setFractionLost(@hash[:lost_fraction])
89
+ else
90
+ os_gas_equip_def.setFractionLost(defaults[:lost_fraction][:default])
91
+ end
92
+
93
+ os_gas_equip
94
+ end
95
+
96
+ end #GasEquipmentAbridged
97
+ end #FromHoneybee
@@ -1,95 +1,95 @@
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 'from_honeybee/extension'
33
- require 'from_honeybee/model_object'
34
-
35
- module FromHoneybee
36
- class InfiltrationAbridged < ModelObject
37
- attr_reader :errors, :warnings
38
-
39
- def initialize(hash = {})
40
- super(hash)
41
- raise "Incorrect model type '#{@type}'" unless @type == 'InfiltrationAbridged'
42
- end
43
-
44
- def defaults
45
- @@schema[:components][:schemas][:InfiltrationAbridged][:properties]
46
- end
47
-
48
- def find_existing_openstudio_object(openstudio_model)
49
- model_infiltration = openstudio_model.getSpaceInfiltrationDesignFlowRateByName(@hash[:identifier])
50
- return model_infiltration.get unless model_infiltration.empty?
51
- nil
52
- end
53
-
54
- def to_openstudio(openstudio_model)
55
-
56
- # create infiltration OpenStudio object and set identifier
57
- os_infilt = OpenStudio::Model::SpaceInfiltrationDesignFlowRate.new(openstudio_model)
58
- os_infilt.setName(@hash[:identifier])
59
-
60
- # assign flow per surface
61
- os_infilt.setFlowperExteriorSurfaceArea(@hash[:flow_per_exterior_area])
62
-
63
- # assign schedule
64
- infiltration_schedule = openstudio_model.getScheduleByName(@hash[:schedule])
65
- unless infiltration_schedule.empty?
66
- infiltration_schedule_object = infiltration_schedule.get
67
- os_infilt.setSchedule(infiltration_schedule_object)
68
- end
69
-
70
- # assign constant coefficient if it exists
71
- if @hash[:constant_coefficient]
72
- os_infilt.setConstantTermCoefficient(@hash[:constant_coefficient])
73
- else
74
- os_infilt.setConstantTermCoefficient(defaults[:constant_coefficient][:default])
75
- end
76
-
77
- # assign temperature coefficient
78
- if @hash[:temperature_coefficient]
79
- os_infilt.setTemperatureTermCoefficient(@hash[:temperature_coefficient])
80
- else
81
- os_infilt.setTemperatureTermCoefficient(defaults[:temperature_coefficient][:default])
82
- end
83
-
84
- # assign velocity coefficient
85
- if @hash[:velocity_coefficient]
86
- os_infilt.setVelocityTermCoefficient(@hash[:velocity_coefficient])
87
- else
88
- os_infilt.setVelocityTermCoefficient(defaults[:velocity_coefficient][:default])
89
- end
90
-
91
- os_infilt
92
- end
93
-
94
- end #InfiltrationAbridged
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 'from_honeybee/extension'
33
+ require 'from_honeybee/model_object'
34
+
35
+ module FromHoneybee
36
+ class InfiltrationAbridged < ModelObject
37
+ attr_reader :errors, :warnings
38
+
39
+ def initialize(hash = {})
40
+ super(hash)
41
+ raise "Incorrect model type '#{@type}'" unless @type == 'InfiltrationAbridged'
42
+ end
43
+
44
+ def defaults
45
+ @@schema[:components][:schemas][:InfiltrationAbridged][:properties]
46
+ end
47
+
48
+ def find_existing_openstudio_object(openstudio_model)
49
+ model_infiltration = openstudio_model.getSpaceInfiltrationDesignFlowRateByName(@hash[:identifier])
50
+ return model_infiltration.get unless model_infiltration.empty?
51
+ nil
52
+ end
53
+
54
+ def to_openstudio(openstudio_model)
55
+
56
+ # create infiltration OpenStudio object and set identifier
57
+ os_infilt = OpenStudio::Model::SpaceInfiltrationDesignFlowRate.new(openstudio_model)
58
+ os_infilt.setName(@hash[:identifier])
59
+
60
+ # assign flow per surface
61
+ os_infilt.setFlowperExteriorSurfaceArea(@hash[:flow_per_exterior_area])
62
+
63
+ # assign schedule
64
+ infiltration_schedule = openstudio_model.getScheduleByName(@hash[:schedule])
65
+ unless infiltration_schedule.empty?
66
+ infiltration_schedule_object = infiltration_schedule.get
67
+ os_infilt.setSchedule(infiltration_schedule_object)
68
+ end
69
+
70
+ # assign constant coefficient if it exists
71
+ if @hash[:constant_coefficient]
72
+ os_infilt.setConstantTermCoefficient(@hash[:constant_coefficient])
73
+ else
74
+ os_infilt.setConstantTermCoefficient(defaults[:constant_coefficient][:default])
75
+ end
76
+
77
+ # assign temperature coefficient
78
+ if @hash[:temperature_coefficient]
79
+ os_infilt.setTemperatureTermCoefficient(@hash[:temperature_coefficient])
80
+ else
81
+ os_infilt.setTemperatureTermCoefficient(defaults[:temperature_coefficient][:default])
82
+ end
83
+
84
+ # assign velocity coefficient
85
+ if @hash[:velocity_coefficient]
86
+ os_infilt.setVelocityTermCoefficient(@hash[:velocity_coefficient])
87
+ else
88
+ os_infilt.setVelocityTermCoefficient(defaults[:velocity_coefficient][:default])
89
+ end
90
+
91
+ os_infilt
92
+ end
93
+
94
+ end #InfiltrationAbridged
95
95
  end #Ladybug