honeybee-openstudio 2.31.2 → 2.31.4

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: ddf8c7c7b9acf4094ea3a7702932246a6423fab131d5a2586b02421a81d24c16
4
- data.tar.gz: a92d03dc75bd2c562ef5bf63cf6c4f69ecf515cbe36ca3df8f4ac36abf31b92a
3
+ metadata.gz: c847b160e1187c597ff518d513e30b259c15b069d5023e34cf7167aecdad270f
4
+ data.tar.gz: 8776b858a13b15deff5ceabc6738ab851915d28875fd539fc081b035fe4a9c46
5
5
  SHA512:
6
- metadata.gz: d0fe77822120f793df5d5ed31c6d91a8ba601a9af26f6a84f21e1a618a4ef97b78b2477fc26ae99bc46894e3df708725c1c2d76497df3601f9e7c01e1920f6c1
7
- data.tar.gz: a1853e96f594d0329126e5529f87fc3694b1d8a044bb995e38831ddbd72d89af94e81a065f0dc7909be5b5b764e998dcdebfd3bcf3db4ae7da394bdd3a8ee5c6
6
+ metadata.gz: c13aaea4ba8a471519a7ef3971ac07dbe16a24c07420af232e68ba6f0845557bc48b726aad9ef2e2bdba5e55fe8713aaf14516af1a82f1e24edf9ee75e5d58b8
7
+ data.tar.gz: d0b1b82283d64f41247b4cac1263f98ef74e909b556534779b2cff42d014c86ec3587a9bbafbbce0d5e09673858d593e1a90c9ede3da79d44bfe1e18c355b8da
@@ -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.2'
7
+ spec.version = '2.31.4'
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
 
@@ -85,7 +85,8 @@ module Honeybee
85
85
  space_type = space.spaceType.get
86
86
  hash[:program_type] = space_type.nameString
87
87
  end
88
- # TODO: These are loads assigned to the space directly. How should duplicates created in programtype, if any, be handled?
88
+ # TODO: These are only loads assigned to the space directly.
89
+ # Duplicates and other definitions created in programtype should be summed
89
90
  unless space.people.empty?
90
91
  space.people.each do |people|
91
92
  people_def = people.peopleDefinition
@@ -100,6 +101,7 @@ module Honeybee
100
101
  end
101
102
  end
102
103
  end
104
+
103
105
  unless space.lights.empty?
104
106
  space.lights.each do |light|
105
107
  light_def = light.lightsDefinition
@@ -114,6 +116,7 @@ module Honeybee
114
116
  end
115
117
  end
116
118
  end
119
+
117
120
  unless space.electricEquipment.empty?
118
121
  space.electricEquipment.each do |electric_eq|
119
122
  electric_eq_def = electric_eq.electricEquipmentDefinition
@@ -128,6 +131,7 @@ module Honeybee
128
131
  end
129
132
  end
130
133
  end
134
+
131
135
  unless space.gasEquipment.empty?
132
136
  space.gasEquipment.each do |gas_eq|
133
137
  gas_eq_def = gas_eq.gasEquipmentDefinition
@@ -142,18 +146,7 @@ module Honeybee
142
146
  end
143
147
  end
144
148
  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
149
+
157
150
  unless space.spaceInfiltrationDesignFlowRates.empty?
158
151
  space.spaceInfiltrationDesignFlowRates.each do |infiltration|
159
152
  # Only translate if flow per exterior area is specified
@@ -167,17 +160,41 @@ module Honeybee
167
160
  end
168
161
  end
169
162
  end
163
+
164
+ unless space.waterUseEquipment.empty?
165
+ space.waterUseEquipment.each do |shw_equipment|
166
+ # Check if schedule exists and is of the correct type
167
+ unless shw_equipment.flowRateFractionSchedule.empty?
168
+ sch = shw_equipment.flowRateFractionSchedule.get
169
+ if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
170
+ floor_area = space.floorArea # Get floor area
171
+ hash[:service_hot_water] = Honeybee::ServiceHotWaterAbridged.from_load(shw_equipment, floor_area)
172
+ end
173
+ end
174
+ end
175
+ end
176
+
170
177
  unless space.designSpecificationOutdoorAir.empty?
171
178
  hash[:ventilation] = Honeybee::VentilationAbridged.from_load(space.designSpecificationOutdoorAir.get)
172
179
  end
180
+
181
+ unless space.otherEquipment.empty?
182
+ hash[:process_loads] = []
183
+ space.otherEquipment.each do |other_eq|
184
+ other_eq_def = other_eq.otherEquipmentDefinition
185
+ if !other_eq_def.designLevel.empty? && !other_eq.schedule.empty?
186
+ sch = other_eq.schedule.get
187
+ if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
188
+ hash[:process_loads] << Honeybee::ProcessAbridged.from_load(other_eq)
189
+ end
190
+ end
191
+ end
192
+ end
193
+
173
194
  unless space.daylightingControls.empty?
174
195
  hash[:daylighting_control] = Honeybee::DaylightingControl.from_load(space.daylightingControls[0])
175
196
  end
176
- unless space.waterUseEquipment.empty?
177
- # Get floor area
178
- floor_area = space.floorArea
179
- hash[:service_hot_water] = Honeybee::ServiceHotWaterAbridged.from_load(space.waterUseEquipment[0], floor_area)
180
- end
197
+
181
198
  thermal_zone = space.thermalZone
182
199
  unless thermal_zone.empty?
183
200
  thermal_zone = space.thermalZone.get
@@ -41,17 +41,14 @@ module Honeybee
41
41
  hash[:type] = 'ServiceHotWaterAbridged'
42
42
  # set hash values from OpenStudio Object
43
43
  hash[:identifier] = clean_name(load.nameString)
44
- load_def = load.WaterUseEquipmentDefinition
44
+ load_def = load.waterUseEquipmentDefinition
45
45
  # units of peak flow rate are m3/s
46
46
  peak_flow = load_def.peakFlowRate
47
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_def.flowRateFractionSchedule.empty?
50
- sch = load_def.flowRateFractionSchedule
51
- # Translate only Scheudle Ruleset and Schedule Fixed Interval
52
- if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
53
- hash[:schedule] = load_def.flowRateFractionSchedule.get.nameString
54
- end
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
55
52
  end
56
53
 
57
54
  hash
@@ -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.2
4
+ version: 2.31.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanushree Charan