honeybee-openstudio 2.38.7 → 2.38.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 00dbd4e1a8ff317244a829844ed85f824e52cd22dfbb671310d4a9ede84a8103
4
- data.tar.gz: b1f445898204f6af213451b219f9c2dc0fc00df1770b01ddce712ea85cdb7cf9
3
+ metadata.gz: a2f2bfb60c9779aff40ac4d86c6d2d3416fd1c34722b5378874b6b85cceaf8cd
4
+ data.tar.gz: e1638526a3701c0035efdb8695fdbb026364ecc85c42a38e262de43e9beb729f
5
5
  SHA512:
6
- metadata.gz: ac40630d69c86a9d7e2a874ef341253e8ade7cdaf5227b9e377f5a3a7febb138506789aa1e9e4d0f0d5aa1158c5df99d798b6bf7f87c2a3ab3976b19fc26cacd
7
- data.tar.gz: edd6e41aa96ee53efec65c7cfd24a10fa18a230f0426950168fba654ece99b1fb6411684bb26e71a847410c9d18b13f7634ba0dd096a1f41296ba0f6c54fec4a
6
+ metadata.gz: 619bfa717c81e91aea5f481a6f86f538fb7c1cb4a508b4e8fa1695826096bde37e892de9fae98b3df71036c295b1ba2aed9f5f008a154e8ecfee2b6643e8b9e8
7
+ data.tar.gz: 22b5002543933e86a89192ae2fb6e0780306ca94308fd808651c93135f0f9f67145894e04f6188ac330d4345fb13ea49c8709dff26869af4eb6ea08548d77267
@@ -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.38.7'
7
+ spec.version = '2.38.9'
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
 
@@ -170,7 +170,7 @@ module Honeybee
170
170
  return result
171
171
  end
172
172
 
173
- def to_openstudio_shade(openstudio_model, shading_surface_group)
173
+ def to_openstudio_shade(openstudio_model)
174
174
  # get the vertices from the aperture
175
175
  if @hash[:geometry][:vertices].nil?
176
176
  hb_verts = @hash[:geometry][:boundary]
@@ -217,9 +217,6 @@ module Honeybee
217
217
  end
218
218
  end
219
219
 
220
- # add the shade to the group
221
- os_shading_surface.setShadingSurfaceGroup(shading_surface_group)
222
-
223
220
  os_shading_surface
224
221
  end
225
222
 
@@ -163,7 +163,7 @@ module Honeybee
163
163
  return result
164
164
  end
165
165
 
166
- def to_openstudio_shade(openstudio_model, shading_surface_group)
166
+ def to_openstudio_shade(openstudio_model)
167
167
  # get the vertices from the door
168
168
  if @hash[:geometry][:vertices].nil?
169
169
  hb_verts = @hash[:geometry][:boundary]
@@ -212,9 +212,6 @@ module Honeybee
212
212
  end
213
213
  end
214
214
 
215
- # add the shade to the group
216
- os_shading_surface.setShadingSurfaceGroup(shading_surface_group)
217
-
218
215
  os_shading_surface
219
216
  end
220
217
 
@@ -248,25 +248,6 @@ module Honeybee
248
248
  end
249
249
  end
250
250
 
251
- # add the shade to the group
252
- os_shading_surface.setShadingSurfaceGroup(shading_surface_group)
253
-
254
- # convert the apertures to shade objects
255
- if @hash[:apertures]
256
- @hash[:apertures].each do |aperture|
257
- hb_aperture = Aperture.new(aperture)
258
- os_subsurface_aperture = hb_aperture.to_openstudio_shade(openstudio_model, shading_surface_group)
259
- end
260
- end
261
-
262
- # convert the apertures to shade objects
263
- if @hash[:doors]
264
- @hash[:doors].each do |door|
265
- hb_door = Door.new(door)
266
- os_subsurface_door = hb_door.to_openstudio_shade(openstudio_model, shading_surface_group)
267
- end
268
- end
269
-
270
251
  os_shading_surface
271
252
  end
272
253
 
@@ -128,20 +128,12 @@ class OpenStudio::Model::Model
128
128
  end
129
129
 
130
130
  # get the various controls for the radiant system
131
- if rad_props[:minimum_operation_time]
132
- minimum_operation = rad_props[:minimum_operation_time]
133
- else
134
- minimum_operation = 1
135
- end
136
131
  if rad_props[:switch_over_time]
137
132
  switch_over_time = rad_props[:switch_over_time]
138
133
  else
139
134
  switch_over_time = 24
140
135
  end
141
136
 
142
- # get the start and end hour from the input zones
143
- start_hour, end_hour = start_end_hour_from_zones_occupancy(zones)
144
-
145
137
  # add radiant system to the conditioned zones
146
138
  include_carpet = false
147
139
  control_strategy = 'proportional_control'
@@ -162,9 +154,6 @@ class OpenStudio::Model::Model
162
154
  radiant_type: radiant_type,
163
155
  control_strategy: control_strategy,
164
156
  include_carpet: include_carpet,
165
- model_occ_hr_start: start_hour,
166
- model_occ_hr_end: end_hour,
167
- minimum_operation: minimum_operation,
168
157
  switch_over_time: switch_over_time,
169
158
  cz_mult: cz_mult)
170
159
 
@@ -175,93 +164,6 @@ class OpenStudio::Model::Model
175
164
 
176
165
  end
177
166
 
178
- # get the start and end hour from the occupancy schedules of thermal zones
179
- def start_end_hour_from_zones_occupancy(thermal_zones, threshold: 0.1)
180
- # set the default start and end hour in the event there's no occupancy
181
- start_hour = 12
182
- end_hour = 12
183
- # loop through the occupancy schedules and get the lowest start hour; highest end hour
184
- thermal_zones.each do |zone|
185
- zone.spaces.each do |space|
186
- # gather all of the people objects assigned to the sapce
187
- peoples = []
188
- unless space.spaceType.empty?
189
- space_type = space.spaceType.get
190
- unless space_type.people.empty?
191
- space_type.people.each do |ppl|
192
- peoples << ppl
193
- end
194
- end
195
- end
196
- space.people.each do |ppl|
197
- peoples << ppl
198
- end
199
- # loop through the pople and gather all occupancy schedules
200
- peoples.each do |people|
201
- occupancy_sch_opt = people.numberofPeopleSchedule
202
- unless occupancy_sch_opt.empty?
203
- occupancy_sch = occupancy_sch_opt.get
204
- if occupancy_sch.to_ScheduleRuleset.is_initialized
205
- occupancy_sch = occupancy_sch.to_ScheduleRuleset.get
206
- # gather all of the day schedules across the schedule ruleset
207
- schedule_days, day_ids = [], []
208
- required_days = [
209
- occupancy_sch.defaultDaySchedule,
210
- occupancy_sch.summerDesignDaySchedule,
211
- occupancy_sch.winterDesignDaySchedule,
212
- occupancy_sch.holidaySchedule
213
- ]
214
- required_days.each do |day_sch|
215
- unless day_ids.include? day_sch.nameString
216
- schedule_days << day_sch
217
- day_ids << day_sch.nameString
218
- end
219
- end
220
- occupancy_sch.scheduleRules.each do |schedule_rule|
221
- day_sch = schedule_rule.daySchedule
222
- unless day_ids.include? day_sch.nameString
223
- schedule_days << day_sch
224
- day_ids << day_sch.nameString
225
- end
226
- end
227
- # loop through the day schedules and see if the start and end hours should be changed
228
- schedule_days.each do |day_sch|
229
- time_until = [1]
230
- day_sch.times.each do |time|
231
- time_until << time.hours
232
- end
233
- final_time = time_until[-2]
234
- day_sch.values.zip(time_until).each do |value, time|
235
- if value > threshold
236
- if time < start_hour
237
- start_hour = time
238
- end
239
- if time > end_hour
240
- end_hour = time
241
- end
242
- if time == final_time
243
- start_hour = 1
244
- end_hour = 24
245
- end
246
- end
247
- end
248
- end
249
- end
250
- end
251
- end
252
- end
253
- end
254
-
255
- # if no values were set, just set the system to be on all of the time
256
- if start_hour == 12 or start_hour == 0
257
- start_hour = 1
258
- end
259
- if end_hour == 12
260
- end_hour = 24
261
- end
262
- return start_hour, end_hour
263
- end
264
-
265
167
  def model_add_low_temp_radiant(std,
266
168
  thermal_zones,
267
169
  hot_water_loop,
@@ -273,9 +175,6 @@ class OpenStudio::Model::Model
273
175
  model_occ_hr_end: 24.0,
274
176
  control_strategy: 'proportional_control',
275
177
  proportional_gain: 0.3,
276
- minimum_operation: 1,
277
- weekend_temperature_reset: 2,
278
- early_reset_out_arg: 20,
279
178
  switch_over_time: 24.0,
280
179
  cz_mult: 4)
281
180
 
@@ -598,18 +497,18 @@ class OpenStudio::Model::Model
598
497
  # rename nodes before adding EMS code
599
498
  std.rename_plant_loop_nodes(self)
600
499
 
500
+ # TODO: Un-comment this once these controls are fixed (Matt made a lot of changes for OpenStudio 3.8)
601
501
  # set radiant loop controls
602
- if control_strategy == 'proportional_control'
603
- std.model_add_radiant_proportional_controls(self, zone, radiant_loop,
604
- radiant_type: radiant_type,
605
- model_occ_hr_start: model_occ_hr_start,
606
- model_occ_hr_end: model_occ_hr_end,
607
- proportional_gain: proportional_gain,
608
- minimum_operation: minimum_operation,
609
- weekend_temperature_reset: weekend_temperature_reset,
610
- early_reset_out_arg: early_reset_out_arg,
611
- switch_over_time: switch_over_time)
612
- end
502
+ #if control_strategy == 'proportional_control'
503
+ # std.model_add_radiant_proportional_controls(self, zone, radiant_loop,
504
+ # radiant_temperature_control_type: 'SurfaceFaceTemperature',
505
+ # use_zone_occupancy_for_control: true,
506
+ # occupied_percentage_threshold: 0.10,
507
+ # model_occ_hr_start: model_occ_hr_start,
508
+ # model_occ_hr_end: model_occ_hr_end,
509
+ # proportional_gain: proportional_gain,
510
+ # switch_over_time: switch_over_time)
511
+ #end
613
512
  end
614
513
 
615
514
  return radiant_loops
@@ -649,7 +649,7 @@ module Honeybee
649
649
  end
650
650
  @hash[:orphaned_faces].each do |face|
651
651
  face_object = Face.new(face)
652
- openstudio_shade = face_object.to_openstudio_shade(@openstudio_model, shading_surface_group)
652
+ openstudio_shade = face_object.to_openstudio_shade(@openstudio_model)
653
653
  if $orphan_groups
654
654
  openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
655
655
  end
@@ -663,9 +663,9 @@ module Honeybee
663
663
  shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
664
664
  shading_surface_group.setShadingSurfaceType('Building')
665
665
  end
666
- @hash[:orphaned_apertures].each do |ap|
666
+ @hash[:orphaned_apertures].each do |ap|
667
667
  ap_object = Aperture.new(ap)
668
- openstudio_shade = ap_object.to_openstudio_shade(@openstudio_model, shading_surface_group)
668
+ openstudio_shade = ap_object.to_openstudio_shade(@openstudio_model)
669
669
  if $orphan_groups
670
670
  openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
671
671
  end
@@ -679,9 +679,9 @@ module Honeybee
679
679
  shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
680
680
  shading_surface_group.setShadingSurfaceType('Building')
681
681
  end
682
- @hash[:orphaned_doors].each do |dr|
682
+ @hash[:orphaned_doors].each do |dr|
683
683
  dr_object = Door.new(dr)
684
- openstudio_shade = dr_object.to_openstudio_shade(@openstudio_model, shading_surface_group)
684
+ openstudio_shade = dr_object.to_openstudio_shade(@openstudio_model)
685
685
  if $orphan_groups
686
686
  openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
687
687
  end
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.38.7
4
+ version: 2.38.9
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: 2024-04-09 00:00:00.000000000 Z
14
+ date: 2024-05-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json_pure