honeybee-openstudio 2.6.6 → 2.6.7
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_honeybee/geometry/room.rb +71 -56
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b0da04a58221bdf1cd64089755dadb753e9c45feb2966a983a7aa9574dea77a
|
4
|
+
data.tar.gz: ef763660f47e53e7336f0b48cbaf99b89c924dbee72bef048977485d483db49e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 862f2c7fa88498e78141a6293797e39e96f9b25d2e10ef8231c0899530917373774f4c4c26bfe674a7f9accc6d2e639dd0c3baab25bd543029b4740034a8ad75
|
7
|
+
data.tar.gz: 15bb34106c90a0f72f3e05fa5075636f2e4e28839b8a1820695087c3c2c1707e3aad9c6c2825f630f5db8e18753f8780484af2fa5005ce50a46ab67224aae114
|
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.6.
|
7
|
+
spec.version = '2.6.7'
|
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
|
|
@@ -54,6 +54,7 @@ module FromHoneybee
|
|
54
54
|
def initialize(hash = {})
|
55
55
|
super(hash)
|
56
56
|
raise "Incorrect model type '#{@type}'" unless @type == 'Room'
|
57
|
+
@unique_space_type = nil
|
57
58
|
end
|
58
59
|
|
59
60
|
def defaults
|
@@ -66,6 +67,33 @@ module FromHoneybee
|
|
66
67
|
nil
|
67
68
|
end
|
68
69
|
|
70
|
+
def get_unique_space_type(openstudio_model, os_space)
|
71
|
+
# get a space type that is unique to the room
|
72
|
+
if @unique_space_type.nil?
|
73
|
+
space_type = os_space.spaceType
|
74
|
+
unless space_type.empty?
|
75
|
+
# copy the space type that is already assigned to the room
|
76
|
+
space_type_object = space_type.get
|
77
|
+
space_type_mod_obj = space_type_object.clone(openstudio_model)
|
78
|
+
new_space_type = space_type_mod_obj.to_SpaceType.get
|
79
|
+
else
|
80
|
+
# create a new space type as there is currently none assigned to the room
|
81
|
+
new_space_type = OpenStudio::Model::SpaceType.new(openstudio_model)
|
82
|
+
end
|
83
|
+
# give the space type a new unique name and assign it to the room
|
84
|
+
st_name = space_type_object.name
|
85
|
+
unless space_type.empty?
|
86
|
+
st_name = st_name.get
|
87
|
+
else
|
88
|
+
st_name = 'CustomSpaceType'
|
89
|
+
end
|
90
|
+
new_space_type.setName(st_name + '_' + @hash[:identifier])
|
91
|
+
os_space.setSpaceType(new_space_type)
|
92
|
+
@unique_space_type = new_space_type
|
93
|
+
end
|
94
|
+
@unique_space_type
|
95
|
+
end
|
96
|
+
|
69
97
|
def to_openstudio(openstudio_model)
|
70
98
|
# create the space and thermal zone
|
71
99
|
os_space = OpenStudio::Model::Space.new(openstudio_model)
|
@@ -213,88 +241,75 @@ module FromHoneybee
|
|
213
241
|
@hash[:outdoor_shades].each do |outdoor_shade|
|
214
242
|
add_shade_to_group(openstudio_model, os_shd_group, outdoor_shade)
|
215
243
|
end
|
216
|
-
end
|
244
|
+
end
|
217
245
|
|
218
246
|
#check whether there are any load objects on the room overriding the programtype
|
219
247
|
if @hash[:properties][:energy][:people]
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
else
|
225
|
-
people_space = PeopleAbridged.new(@hash[:properties][:energy][:people])
|
226
|
-
os_people_space = people_space.to_openstudio(openstudio_model)
|
227
|
-
os_people_space.setSpace(os_space)
|
248
|
+
unique_program = get_unique_space_type(openstudio_model, os_space)
|
249
|
+
unique_program_ppl = unique_program.people
|
250
|
+
unless unique_program_ppl.empty? # remove the previous load definition
|
251
|
+
unique_program_ppl[0].remove()
|
228
252
|
end
|
253
|
+
custom_people = PeopleAbridged.new(@hash[:properties][:energy][:people])
|
254
|
+
os_custom_people = custom_people.to_openstudio(openstudio_model)
|
255
|
+
os_custom_people.setSpaceType(unique_program) # assign the new load definition
|
229
256
|
end
|
230
257
|
|
231
258
|
# assign lighting if it exists
|
232
259
|
if @hash[:properties][:energy][:lighting]
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
else
|
238
|
-
lighting_space = LightingAbridged.new(@hash[:properties][:energy][:lighting])
|
239
|
-
os_lighting_space = lighting_space.to_openstudio(openstudio_model)
|
240
|
-
os_lighting_space.setSpace(os_space)
|
260
|
+
unique_program = get_unique_space_type(openstudio_model, os_space)
|
261
|
+
unique_program_lght = unique_program.lights
|
262
|
+
unless unique_program_lght.empty? # remove the previous load definition
|
263
|
+
unique_program_lght[0].remove()
|
241
264
|
end
|
265
|
+
custom_lighting = LightingAbridged.new(@hash[:properties][:energy][:lighting])
|
266
|
+
os_custom_lighting = custom_lighting.to_openstudio(openstudio_model)
|
267
|
+
os_custom_lighting.setSpaceType(unique_program) # assign the new load definition
|
242
268
|
end
|
243
269
|
|
244
270
|
# assign electric equipment if it exists
|
245
271
|
if @hash[:properties][:energy][:electric_equipment]
|
246
|
-
|
247
|
-
|
248
|
-
unless
|
249
|
-
|
250
|
-
electric_equipment_object.setSpace(os_space)
|
251
|
-
else
|
252
|
-
electric_equipment_space = ElectricEquipmentAbridged.new(@hash[:properties][:energy][:electric_equipment])
|
253
|
-
os_electric_equipment_space = electric_equipment_space.to_openstudio(openstudio_model)
|
254
|
-
os_electric_equipment_space.setSpace(os_space)
|
272
|
+
unique_program = get_unique_space_type(openstudio_model, os_space)
|
273
|
+
unique_program_ele = unique_program.electricEquipment
|
274
|
+
unless unique_program_ele.empty? # remove the previous load definition
|
275
|
+
unique_program_ele[0].remove()
|
255
276
|
end
|
277
|
+
custom_electric_equipment = ElectricEquipmentAbridged.new(@hash[:properties][:energy][:electric_equipment])
|
278
|
+
os_custom_electric_equipment = custom_electric_equipment.to_openstudio(openstudio_model)
|
279
|
+
os_custom_electric_equipment.setSpaceType(unique_program) # assign the new load definition
|
256
280
|
end
|
257
|
-
|
281
|
+
|
258
282
|
# assign gas equipment if it exists
|
259
283
|
if @hash[:properties][:energy][:gas_equipment]
|
260
|
-
|
261
|
-
|
262
|
-
unless
|
263
|
-
|
264
|
-
gas_equipment_object.setSpace(os_space)
|
265
|
-
else
|
266
|
-
gas_equipment_space = GasEquipmentAbridged.new(@hash[:properties][:energy][:gas_equipment])
|
267
|
-
os_gas_equipment_space = gas_equipment_space.to_openstudio(openstudio_model)
|
268
|
-
os_gas_equipment_space.setSpace(os_space)
|
284
|
+
unique_program = get_unique_space_type(openstudio_model, os_space)
|
285
|
+
unique_program_gas = unique_program.gasEquipment
|
286
|
+
unless unique_program_gas.empty? # remove the previous load definition
|
287
|
+
unique_program_gas[0].remove()
|
269
288
|
end
|
289
|
+
custom_gas_equipment = GasEquipmentAbridged.new(@hash[:properties][:energy][:gas_equipment])
|
290
|
+
os_custom_gas_equipment = custom_gas_equipment.to_openstudio(openstudio_model)
|
291
|
+
os_custom_gas_equipment.setSpaceType(unique_program) # assign the new load definition
|
270
292
|
end
|
271
293
|
|
272
294
|
# assign infiltration if it exists
|
273
295
|
if @hash[:properties][:energy][:infiltration] && $use_simple_vent # only use infiltration with simple ventilation
|
274
|
-
|
275
|
-
|
276
|
-
unless
|
277
|
-
|
278
|
-
infiltration_object.setSpace(os_space)
|
279
|
-
else
|
280
|
-
infiltration_space = InfiltrationAbridged.new(@hash[:properties][:energy][:infiltration])
|
281
|
-
os_infiltration_space = infiltration_space.to_openstudio(openstudio_model)
|
282
|
-
os_infiltration_space.setSpace(os_space)
|
296
|
+
unique_program = get_unique_space_type(openstudio_model, os_space)
|
297
|
+
unique_program_inf = unique_program.spaceInfiltrationDesignFlowRates
|
298
|
+
unless unique_program_inf.empty? # remove the previous load definition
|
299
|
+
unique_program_inf[0].remove()
|
283
300
|
end
|
301
|
+
custom_infiltration = InfiltrationAbridged.new(@hash[:properties][:energy][:infiltration])
|
302
|
+
os_custom_infiltration = custom_infiltration.to_openstudio(openstudio_model)
|
303
|
+
os_custom_infiltration.setSpaceType(unique_program) # assign the new load definition
|
284
304
|
end
|
285
|
-
|
305
|
+
|
286
306
|
# assign ventilation if it exists
|
287
307
|
if @hash[:properties][:energy][:ventilation]
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
else
|
294
|
-
ventilation_space = VentilationAbridged.new(@hash[:properties][:energy][:ventilation])
|
295
|
-
os_ventilation_space = ventilation_space.to_openstudio(openstudio_model)
|
296
|
-
os_space.setDesignSpecificationOutdoorAir(os_ventilation_space)
|
297
|
-
end
|
308
|
+
unique_program = get_unique_space_type(openstudio_model, os_space)
|
309
|
+
unique_program.resetDesignSpecificationOutdoorAir()
|
310
|
+
custom_ventilation = VentilationAbridged.new(@hash[:properties][:energy][:ventilation])
|
311
|
+
os_custom_ventilation = custom_ventilation.to_openstudio(openstudio_model)
|
312
|
+
unique_program.setDesignSpecificationOutdoorAir(os_custom_ventilation)
|
298
313
|
end
|
299
314
|
|
300
315
|
# assign setpoint if it exists
|
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.6.
|
4
|
+
version: 2.6.7
|
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: 2020-10-
|
14
|
+
date: 2020-10-23 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|