honeybee-openstudio 2.31.1 → 2.31.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f9b620209ce330fea574204c6257db0a2e22f6e898de0d0b27a7d20360fd5296
4
- data.tar.gz: 3f294beea759ed0789cd3928d023edbd4f97697c2179cb77d5e7be971d4ed0a7
3
+ metadata.gz: 58dd2e87b690f4b71e259cf22dce6a44030c3b57a9142c6a361d6cfe68ae4260
4
+ data.tar.gz: 8d4e56c13e0892e3b7d4468e05e07cbe3720802d82bbc102385dfe71f0a99867
5
5
  SHA512:
6
- metadata.gz: dffa3a850ebe2f9b0bc03e67cba8329d1a8d7b4a4c7081cf0a751e3e423795dfb7b90028975efa92cf1d78405117b3dacd3d68e6f1e513ba93e772914ebe8475
7
- data.tar.gz: 1b244c65a2df322052c5d522564199a0ac0e49b7dc1aadb7d6c297c24e4ed48d26d19305e3ec49caee382939ea96b7ea3f54aff3d4b02b1127d904e394b1560f
6
+ metadata.gz: dabe27301e879bb2bd595a929f4f829f578063acaee934ae94dfd25c0c491ff64eb76092fe380225a64b4c489a4ada2b2f5fcd21b8cd48832873611ae9d1a26d
7
+ data.tar.gz: 708afc3119a473bbbe3a2f9acc3e3a6674140014dddefbbaae0b6b9b45f2bc9f893f08f1f06caa2471e85df38bc52d1fdaf85249f7295787e1414430aeb21b2c
@@ -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.31.1'
7
+ spec.version = '2.31.5'
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
 
@@ -79,13 +79,17 @@ module Honeybee
79
79
  # set room energy properties
80
80
  unless space.defaultConstructionSet.empty?
81
81
  const_set = space.defaultConstructionSet.get
82
- hash[:construction_set] = const_set.nameString
82
+ c_set_name = const_set.nameString
83
+ unless c_set_name == 'Default Generic Construction Set'
84
+ hash[:construction_set] = const_set.nameString
85
+ end
83
86
  end
84
87
  unless space.spaceType.empty?
85
88
  space_type = space.spaceType.get
86
89
  hash[:program_type] = space_type.nameString
87
90
  end
88
- # TODO: These are loads assigned to the space directly. How should duplicates created in programtype, if any, be handled?
91
+ # TODO: These are only loads assigned to the space directly.
92
+ # Duplicates and other definitions created in programtype should be summed
89
93
  unless space.people.empty?
90
94
  space.people.each do |people|
91
95
  people_def = people.peopleDefinition
@@ -100,6 +104,7 @@ module Honeybee
100
104
  end
101
105
  end
102
106
  end
107
+
103
108
  unless space.lights.empty?
104
109
  space.lights.each do |light|
105
110
  light_def = light.lightsDefinition
@@ -114,6 +119,7 @@ module Honeybee
114
119
  end
115
120
  end
116
121
  end
122
+
117
123
  unless space.electricEquipment.empty?
118
124
  space.electricEquipment.each do |electric_eq|
119
125
  electric_eq_def = electric_eq.electricEquipmentDefinition
@@ -128,6 +134,7 @@ module Honeybee
128
134
  end
129
135
  end
130
136
  end
137
+
131
138
  unless space.gasEquipment.empty?
132
139
  space.gasEquipment.each do |gas_eq|
133
140
  gas_eq_def = gas_eq.gasEquipmentDefinition
@@ -142,18 +149,7 @@ module Honeybee
142
149
  end
143
150
  end
144
151
  end
145
- unless space.otherEquipment.empty?
146
- hash[:process_loads] = []
147
- space.otherEquipment.each do |other_eq|
148
- other_eq_def = other_eq.otherEquipmentDefinition
149
- if !other_eq_def.designLevel.empty? && !other_eq.schedule.empty?
150
- sch = other_eq.schedule.get
151
- if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
152
- hash[:process_loads] << Honeybee::ProcessAbridged.from_load(other_eq)
153
- end
154
- end
155
- end
156
- end
152
+
157
153
  unless space.spaceInfiltrationDesignFlowRates.empty?
158
154
  space.spaceInfiltrationDesignFlowRates.each do |infiltration|
159
155
  # Only translate if flow per exterior area is specified
@@ -167,12 +163,41 @@ module Honeybee
167
163
  end
168
164
  end
169
165
  end
166
+
167
+ unless space.waterUseEquipment.empty?
168
+ space.waterUseEquipment.each do |shw_equipment|
169
+ # Check if schedule exists and is of the correct type
170
+ unless shw_equipment.flowRateFractionSchedule.empty?
171
+ sch = shw_equipment.flowRateFractionSchedule.get
172
+ if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
173
+ floor_area = space.floorArea # Get floor area
174
+ hash[:service_hot_water] = Honeybee::ServiceHotWaterAbridged.from_load(shw_equipment, floor_area)
175
+ end
176
+ end
177
+ end
178
+ end
179
+
170
180
  unless space.designSpecificationOutdoorAir.empty?
171
181
  hash[:ventilation] = Honeybee::VentilationAbridged.from_load(space.designSpecificationOutdoorAir.get)
172
182
  end
183
+
184
+ unless space.otherEquipment.empty?
185
+ hash[:process_loads] = []
186
+ space.otherEquipment.each do |other_eq|
187
+ other_eq_def = other_eq.otherEquipmentDefinition
188
+ if !other_eq_def.designLevel.empty? && !other_eq.schedule.empty?
189
+ sch = other_eq.schedule.get
190
+ if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
191
+ hash[:process_loads] << Honeybee::ProcessAbridged.from_load(other_eq)
192
+ end
193
+ end
194
+ end
195
+ end
196
+
173
197
  unless space.daylightingControls.empty?
174
198
  hash[:daylighting_control] = Honeybee::DaylightingControl.from_load(space.daylightingControls[0])
175
199
  end
200
+
176
201
  thermal_zone = space.thermalZone
177
202
  unless thermal_zone.empty?
178
203
  thermal_zone = space.thermalZone.get
@@ -0,0 +1,57 @@
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/load/service_hot_water'
33
+ require 'to_openstudio/model_object'
34
+
35
+ module Honeybee
36
+ class ServiceHotWaterAbridged
37
+
38
+ def self.from_load(load, floor_area)
39
+ # create an empty hash
40
+ hash = {}
41
+ hash[:type] = 'ServiceHotWaterAbridged'
42
+ # set hash values from OpenStudio Object
43
+ hash[:identifier] = clean_name(load.nameString)
44
+ load_def = load.waterUseEquipmentDefinition
45
+ # units of peak flow rate are m3/s
46
+ peak_flow = load_def.peakFlowRate
47
+ # unit for flow per area is L/h-m2 (m3/s = 3600000 L/h)
48
+ hash[:flow_per_area] = (peak_flow * 3600000) / floor_area
49
+ unless load.flowRateFractionSchedule.empty?
50
+ schedule = load.flowRateFractionSchedule.get
51
+ hash[:schedule] = schedule.nameString
52
+ end
53
+
54
+ hash
55
+ end
56
+ end #ServiceHotWaterAbridged
57
+ end #Honeybee
@@ -80,6 +80,7 @@ require 'from_openstudio/load/infiltration'
80
80
  require 'from_openstudio/load/ventilation'
81
81
  require 'from_openstudio/load/daylight'
82
82
  require 'from_openstudio/load/process'
83
+ require 'from_openstudio/load/service_hot_water'
83
84
 
84
85
  # extend the program type objects
85
86
  require 'from_openstudio/program_type'
@@ -52,6 +52,7 @@ module Honeybee
52
52
  @@extension ||= Extension.new
53
53
  @@schema ||= @@extension.schema
54
54
  @@standards ||= @@extension.standards
55
+ $triangulate_sub_faces = false
55
56
  $simple_window_cons = false
56
57
 
57
58
  @hash = hash
@@ -54,7 +54,7 @@ module Honeybee
54
54
  final_vertices_list = []
55
55
  matching_os_subsurfaces = []
56
56
  matching_os_subsurface_indices = []
57
- if os_vertices.size > 4
57
+ if $triangulate_sub_faces && os_vertices.size > 4
58
58
 
59
59
  # if this apeture has a matched apeture, see if the other one has already been created
60
60
  # the matched apeture should have been converted to multiple subsurfaces
@@ -54,7 +54,7 @@ module Honeybee
54
54
  final_vertices_list = []
55
55
  matching_os_subsurfaces = []
56
56
  matching_os_subsurface_indices = []
57
- if os_vertices.size > 4
57
+ if $triangulate_sub_faces && os_vertices.size > 4
58
58
 
59
59
  # if this door has a matched door, see if the other one has already been created
60
60
  # the matched door should have been converted to multiple subsurfaces
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.31.1
4
+ version: 2.31.5
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-03-27 00:00:00.000000000 Z
14
+ date: 2022-04-22 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -184,6 +184,7 @@ files:
184
184
  - lib/from_openstudio/load/lighting.rb
185
185
  - lib/from_openstudio/load/people.rb
186
186
  - lib/from_openstudio/load/process.rb
187
+ - lib/from_openstudio/load/service_hot_water.rb
187
188
  - lib/from_openstudio/load/ventilation.rb
188
189
  - lib/from_openstudio/material/opaque.rb
189
190
  - lib/from_openstudio/material/opaque_no_mass.rb