honeybee-openstudio 2.31.9 → 2.31.12

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: f9cfa9e82e9efaedde24e6ccfe30c4d7fe6cbd4259a81d36de9b8a9936b8259b
4
- data.tar.gz: 6c47a045cf0684fdc33521ca96b6bd1fe3f27a52658fe774a6f76165ab3c87b0
3
+ metadata.gz: ee8eec97c23c887d5b2dd7b58552f50263b297d8e742026ed6d1fc570ba62877
4
+ data.tar.gz: 0d308433a4b52972492f5ad5681fd255244b029481eee40eafa219f9c1cf4402
5
5
  SHA512:
6
- metadata.gz: ceefaa71ad6fe18240c21b2738ddf5741fc9620dcf63088c67511a0fedb132f1ea063879527183624f88a196826f7a58bef62ac9211e605f815264ae3add17c4
7
- data.tar.gz: 4b6e648afaa694daa0e2246f4f5f6cf6c5dadb714e4b4fa7681919447fa24a37cb9bba9e6edbbb77a216e04005a0d23b5da7c8f38df07c60ad2ed2543767ad7d
6
+ metadata.gz: b0cef0873f51d1f92b7c0051721552a0439581e266c2b2c11a7908effea697957136c1860a04d80e8d7a314d41757fae1ca490a20bfcc83f63b22b75c3af0efc
7
+ data.tar.gz: 201801ee7a4ce00794c9358e879f5fdc0116e97d33181587e9f3e1bb1940d336ace21ef5253731e4caecf611f749a055aafdbb4433803cfdf3d9505252b8ff72
@@ -15,8 +15,8 @@ jobs:
15
15
  run: |
16
16
  echo $(pwd)
17
17
  echo $(ls)
18
- docker pull nrel/openstudio:3.3.0
19
- docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.3.0
18
+ docker pull nrel/openstudio:3.4.0
19
+ docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.4.0
20
20
  docker exec -t test pwd
21
21
  docker exec -t test ls
22
22
  docker exec -t test bundle update
@@ -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.9'
7
+ spec.version = '2.31.12'
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
 
@@ -53,8 +53,8 @@ module Honeybee
53
53
  outdoor_shades = outdoor_shades_from_space(space)
54
54
  hash[:outdoor_shades] = outdoor_shades if !outdoor_shades.empty?
55
55
 
56
- multipler = multiplier_from_space(space)
57
- hash[:multipler] = multipler if multipler
56
+ multiplier = multiplier_from_space(space)
57
+ hash[:multiplier] = multiplier if multiplier
58
58
 
59
59
  exclude_floor_area = exclude_floor_area_from_space(space)
60
60
  hash[:exclude_floor_area] = exclude_floor_area
@@ -54,6 +54,7 @@ module Honeybee
54
54
  @@standards ||= @@extension.standards
55
55
  $triangulate_sub_faces = false
56
56
  $simple_window_cons = false
57
+ $orphan_groups = true
57
58
 
58
59
  @hash = hash
59
60
  @type = @hash[:type]
@@ -87,6 +87,7 @@ class FromHoneybeeModelToGbxml < OpenStudio::Measure::ModelMeasure
87
87
  end
88
88
  honeybee_model = Honeybee::Model.read_from_disk(model_json)
89
89
  $simple_window_cons = true
90
+ $orphan_groups = false
90
91
  STDOUT.flush
91
92
  os_model = honeybee_model.to_openstudio_model(model)
92
93
  STDOUT.flush
@@ -150,7 +150,7 @@ class OpenStudio::Model::Model
150
150
  if radiant_type == 'floorwithcarpet'
151
151
  radiant_type = 'floor'
152
152
  include_carpet = true
153
- elsif radiant_type == 'ceilingmetalpanel'
153
+ elsif radiant_type == 'ceilingmetalpanel' || radiant_type == 'floorwithhardwood'
154
154
  control_strategy = 'default'
155
155
  end
156
156
  else
@@ -251,6 +251,7 @@ class OpenStudio::Model::Model
251
251
  end
252
252
  end
253
253
  end
254
+
254
255
  # if no values were set, just set the system to be on all of the time
255
256
  if start_hour == 12 or start_hour == 0
256
257
  start_hour = 1
@@ -282,15 +283,30 @@ class OpenStudio::Model::Model
282
283
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Model.Model', "Replacing constructions with new radiant slab constructions.")
283
284
 
284
285
  # create materials
286
+ # concrete slab materials
285
287
  mat_concrete_3_5in = OpenStudio::Model::StandardOpaqueMaterial.new(self, 'MediumRough', 0.0889, 2.31, 2322, 832)
286
288
  mat_concrete_3_5in.setName('Radiant Slab Concrete - 3.5 in.')
287
289
  mat_concrete_1_5in = OpenStudio::Model::StandardOpaqueMaterial.new(self, 'MediumRough', 0.0381, 2.31, 2322, 832)
288
290
  mat_concrete_1_5in.setName('Radiant Slab Concrete - 1.5 in')
289
291
 
290
- metal_mat = OpenStudio::Model::StandardOpaqueMaterial.new(self, 'MediumSmooth', 0.003175, 30, 7680, 418)
291
- metal_mat.setName('Radiant Metal Layer - 0.125 in')
292
- air_gap_map = OpenStudio::Model::MasslessOpaqueMaterial.new(self, 'Smooth', 0.004572)
293
- air_gap_map.setName('Generic Ceiling Air Gap - R 0.025')
292
+ metal_mat = nil
293
+ air_gap_mat = nil
294
+ wood_mat = nil
295
+ wood_floor_insulation = nil
296
+ gypsum_ceiling_mat = nil
297
+ if radiant_type == 'ceilingmetalpanel'
298
+ metal_mat = OpenStudio::Model::StandardOpaqueMaterial.new(self, 'MediumSmooth', 0.003175, 30, 7680, 418)
299
+ metal_mat.setName('Radiant Metal Layer - 0.125 in')
300
+ air_gap_mat = OpenStudio::Model::MasslessOpaqueMaterial.new(self, 'Smooth', 0.004572)
301
+ air_gap_mat.setName('Generic Ceiling Air Gap - R 0.025')
302
+ elsif radiant_type == 'floorwithhardwood'
303
+ wood_mat = OpenStudio::Model::StandardOpaqueMaterial.new(self, 'MediumSmooth', 0.01905, 0.15, 608, 1629)
304
+ wood_mat.setName('Radiant Hardwood Flooring - 0.75 in')
305
+ wood_floor_insulation = OpenStudio::Model::StandardOpaqueMaterial.new(self, 'Rough', 0.0508, 0.02, 56.06, 1210)
306
+ wood_floor_insulation.setName('Radiant Subfloor Insulation - 4.0 in')
307
+ gypsum_ceiling_mat = OpenStudio::Model::StandardOpaqueMaterial.new(self, 'Smooth', 0.0127, 0.16, 800, 1089)
308
+ gypsum_ceiling_mat.setName('Gypsum Ceiling for Radiant Hardwood Flooring - 0.5 in')
309
+ end
294
310
 
295
311
  mat_refl_roof_membrane = self.getStandardOpaqueMaterialByName('Roof Membrane - Highly Reflective')
296
312
  if mat_refl_roof_membrane.is_initialized
@@ -331,83 +347,125 @@ class OpenStudio::Model::Model
331
347
  # create radiant internal source constructions
332
348
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Model.Model', 'New constructions exclude the metal deck, as high thermal diffusivity materials cause errors in EnergyPlus internal source construction calculations.')
333
349
 
334
- layers = []
335
- layers << mat_slab_insulation
336
- layers << mat_concrete_3_5in
337
- layers << mat_concrete_1_5in
338
- layers << mat_thin_carpet_tile if include_carpet
339
- radiant_ground_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
340
- radiant_ground_slab_construction.setName('Radiant Ground Slab Construction')
341
- radiant_ground_slab_construction.setSourcePresentAfterLayerNumber(2)
342
- radiant_ground_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(3)
343
- radiant_ground_slab_construction.setTubeSpacing(0.2286) # 9 inches
344
-
345
- layers = []
346
- layers << mat_ext_insulation
347
- layers << mat_concrete_3_5in
348
- layers << mat_concrete_1_5in
349
- layers << mat_thin_carpet_tile if include_carpet
350
- radiant_exterior_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
351
- radiant_exterior_slab_construction.setName('Radiant Exterior Slab Construction')
352
- radiant_exterior_slab_construction.setSourcePresentAfterLayerNumber(2)
353
- radiant_exterior_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(3)
354
- radiant_exterior_slab_construction.setTubeSpacing(0.2286) # 9 inches
355
-
356
- layers = []
357
- layers << mat_concrete_3_5in
358
- layers << mat_concrete_1_5in
359
- layers << mat_thin_carpet_tile if include_carpet
360
- radiant_interior_floor_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
361
- radiant_interior_floor_slab_construction.setName('Radiant Interior Floor Slab Construction')
362
- radiant_interior_floor_slab_construction.setSourcePresentAfterLayerNumber(1)
363
- radiant_interior_floor_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(2)
364
- radiant_interior_floor_slab_construction.setTubeSpacing(0.2286) # 9 inches
365
-
366
- layers = []
367
- layers << mat_thin_carpet_tile if include_carpet
368
- layers << mat_concrete_3_5in
369
- layers << mat_concrete_1_5in
370
- radiant_interior_ceiling_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
371
- radiant_interior_ceiling_slab_construction.setName('Radiant Interior Ceiling Slab Construction')
372
- slab_src_loc = include_carpet ? 2 : 1
373
- radiant_interior_ceiling_slab_construction.setSourcePresentAfterLayerNumber(slab_src_loc)
374
- radiant_interior_ceiling_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(slab_src_loc + 1)
375
- radiant_interior_ceiling_slab_construction.setTubeSpacing(0.2286) # 9 inches
376
-
377
- layers = []
378
- layers << mat_refl_roof_membrane
379
- layers << mat_roof_insulation
380
- layers << mat_concrete_3_5in
381
- layers << mat_concrete_1_5in
382
- radiant_ceiling_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
383
- radiant_ceiling_slab_construction.setName('Radiant Exterior Ceiling Slab Construction')
384
- radiant_ceiling_slab_construction.setSourcePresentAfterLayerNumber(3)
385
- radiant_ceiling_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(4)
386
- radiant_ceiling_slab_construction.setTubeSpacing(0.2286) # 9 inches
387
-
388
- layers = []
389
- layers << mat_concrete_3_5in
390
- layers << air_gap_map
391
- layers << metal_mat
392
- layers << metal_mat
393
- radiant_interior_ceiling_metal_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
394
- radiant_interior_ceiling_metal_construction.setName('Radiant Interior Ceiling Metal Construction')
395
- radiant_interior_ceiling_metal_construction.setSourcePresentAfterLayerNumber(3)
396
- radiant_interior_ceiling_metal_construction.setTemperatureCalculationRequestedAfterLayerNumber(4)
397
- radiant_interior_ceiling_metal_construction.setTubeSpacing(0.1524) # 6 inches
398
-
399
- layers = []
400
- layers << mat_refl_roof_membrane
401
- layers << mat_roof_insulation
402
- layers << mat_concrete_3_5in
403
- layers << air_gap_map
404
- layers << metal_mat
405
- layers << metal_mat
406
- radiant_ceiling_metal_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
407
- radiant_ceiling_metal_construction.setName('Radiant Ceiling Metal Construction')
408
- radiant_ceiling_metal_construction.setSourcePresentAfterLayerNumber(5)
409
- radiant_ceiling_metal_construction.setTemperatureCalculationRequestedAfterLayerNumber(6)
410
- radiant_ceiling_metal_construction.setTubeSpacing(0.1524) # 6 inches
350
+ radiant_ground_slab_construction = nil
351
+ radiant_exterior_slab_construction = nil
352
+ radiant_interior_floor_slab_construction = nil
353
+ radiant_interior_ceiling_slab_construction = nil
354
+ radiant_ceiling_slab_construction = nil
355
+ radiant_interior_ceiling_metal_construction = nil
356
+ radiant_ceiling_metal_construction = nil
357
+
358
+ if radiant_type == 'floor'
359
+ layers = []
360
+ layers << mat_slab_insulation
361
+ layers << mat_concrete_3_5in
362
+ layers << mat_concrete_1_5in
363
+ layers << mat_thin_carpet_tile if include_carpet
364
+ radiant_ground_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
365
+ radiant_ground_slab_construction.setName('Radiant Ground Slab Construction')
366
+ radiant_ground_slab_construction.setSourcePresentAfterLayerNumber(2)
367
+ radiant_ground_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(3)
368
+ radiant_ground_slab_construction.setTubeSpacing(0.2286) # 9 inches
369
+
370
+ layers = []
371
+ layers << mat_ext_insulation
372
+ layers << mat_concrete_3_5in
373
+ layers << mat_concrete_1_5in
374
+ layers << mat_thin_carpet_tile if include_carpet
375
+ radiant_exterior_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
376
+ radiant_exterior_slab_construction.setName('Radiant Exterior Slab Construction')
377
+ radiant_exterior_slab_construction.setSourcePresentAfterLayerNumber(2)
378
+ radiant_exterior_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(3)
379
+ radiant_exterior_slab_construction.setTubeSpacing(0.2286) # 9 inches
380
+
381
+ layers = []
382
+ layers << mat_concrete_3_5in
383
+ layers << mat_concrete_1_5in
384
+ layers << mat_thin_carpet_tile if include_carpet
385
+ radiant_interior_floor_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
386
+ radiant_interior_floor_slab_construction.setName('Radiant Interior Floor Slab Construction')
387
+ radiant_interior_floor_slab_construction.setSourcePresentAfterLayerNumber(1)
388
+ radiant_interior_floor_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(2)
389
+ radiant_interior_floor_slab_construction.setTubeSpacing(0.2286) # 9 inches
390
+ elsif radiant_type == 'ceiling'
391
+ layers = []
392
+ layers << mat_thin_carpet_tile if include_carpet
393
+ layers << mat_concrete_3_5in
394
+ layers << mat_concrete_1_5in
395
+ radiant_interior_ceiling_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
396
+ radiant_interior_ceiling_slab_construction.setName('Radiant Interior Ceiling Slab Construction')
397
+ slab_src_loc = include_carpet ? 2 : 1
398
+ radiant_interior_ceiling_slab_construction.setSourcePresentAfterLayerNumber(slab_src_loc)
399
+ radiant_interior_ceiling_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(slab_src_loc + 1)
400
+ radiant_interior_ceiling_slab_construction.setTubeSpacing(0.2286) # 9 inches
401
+
402
+ layers = []
403
+ layers << mat_refl_roof_membrane
404
+ layers << mat_roof_insulation
405
+ layers << mat_concrete_3_5in
406
+ layers << mat_concrete_1_5in
407
+ radiant_ceiling_slab_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
408
+ radiant_ceiling_slab_construction.setName('Radiant Exterior Ceiling Slab Construction')
409
+ radiant_ceiling_slab_construction.setSourcePresentAfterLayerNumber(3)
410
+ radiant_ceiling_slab_construction.setTemperatureCalculationRequestedAfterLayerNumber(4)
411
+ radiant_ceiling_slab_construction.setTubeSpacing(0.2286) # 9 inches
412
+ elsif radiant_type == 'ceilingmetalpanel'
413
+ layers = []
414
+ layers << mat_concrete_3_5in
415
+ layers << air_gap_mat
416
+ layers << metal_mat
417
+ layers << metal_mat
418
+ radiant_interior_ceiling_metal_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
419
+ radiant_interior_ceiling_metal_construction.setName('Radiant Interior Ceiling Metal Construction')
420
+ radiant_interior_ceiling_metal_construction.setSourcePresentAfterLayerNumber(3)
421
+ radiant_interior_ceiling_metal_construction.setTemperatureCalculationRequestedAfterLayerNumber(4)
422
+ radiant_interior_ceiling_metal_construction.setTubeSpacing(0.1524) # 6 inches
423
+
424
+ layers = []
425
+ layers << mat_refl_roof_membrane
426
+ layers << mat_roof_insulation
427
+ layers << mat_concrete_3_5in
428
+ layers << air_gap_mat
429
+ layers << metal_mat
430
+ layers << metal_mat
431
+ radiant_ceiling_metal_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
432
+ radiant_ceiling_metal_construction.setName('Radiant Ceiling Metal Construction')
433
+ radiant_ceiling_metal_construction.setSourcePresentAfterLayerNumber(5)
434
+ radiant_ceiling_metal_construction.setTemperatureCalculationRequestedAfterLayerNumber(6)
435
+ radiant_ceiling_metal_construction.setTubeSpacing(0.1524) # 6 inches
436
+ elsif radiant_type == 'floorwithhardwood'
437
+ layers = []
438
+ layers << mat_slab_insulation
439
+ layers << mat_concrete_3_5in
440
+ layers << wood_mat
441
+ layers << mat_thin_carpet_tile if include_carpet
442
+ radiant_ground_wood_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
443
+ radiant_ground_wood_construction.setName('Radiant Ground Slab Wood Floor Construction')
444
+ radiant_ground_wood_construction.setSourcePresentAfterLayerNumber(2)
445
+ radiant_ground_wood_construction.setTemperatureCalculationRequestedAfterLayerNumber(3)
446
+ radiant_ground_wood_construction.setTubeSpacing(0.2286) # 9 inches
447
+
448
+ layers = []
449
+ layers << mat_ext_insulation
450
+ layers << wood_mat
451
+ layers << mat_thin_carpet_tile if include_carpet
452
+ radiant_exterior_wood_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
453
+ radiant_exterior_wood_construction.setName('Radiant Exterior Wood Floor Construction')
454
+ radiant_exterior_wood_construction.setSourcePresentAfterLayerNumber(1)
455
+ radiant_exterior_wood_construction.setTemperatureCalculationRequestedAfterLayerNumber(2)
456
+ radiant_exterior_wood_construction.setTubeSpacing(0.2286) # 9 inches
457
+
458
+ layers = []
459
+ layers << gypsum_ceiling_mat
460
+ layers << wood_floor_insulation
461
+ layers << wood_mat
462
+ layers << mat_thin_carpet_tile if include_carpet
463
+ radiant_interior_wood_floor_construction = OpenStudio::Model::ConstructionWithInternalSource.new(layers)
464
+ radiant_interior_wood_floor_construction.setName('Radiant Interior Wooden Floor Construction')
465
+ radiant_interior_wood_floor_construction.setSourcePresentAfterLayerNumber(2)
466
+ radiant_interior_wood_floor_construction.setTemperatureCalculationRequestedAfterLayerNumber(3)
467
+ radiant_interior_wood_floor_construction.setTubeSpacing(0.2286) # 9 inches
468
+ end
411
469
 
412
470
  # default temperature controls for radiant system
413
471
  zn_radiant_htg_dsgn_temp_f = 68.0
@@ -488,6 +546,16 @@ class OpenStudio::Model::Model
488
546
  surface.setConstruction(radiant_interior_ceiling_metal_construction)
489
547
  end
490
548
  end
549
+ elsif radiant_type == 'floorwithhardwood'
550
+ if surface.surfaceType == 'Floor'
551
+ if surface.outsideBoundaryCondition == 'Ground'
552
+ surface.setConstruction(radiant_ground_wood_construction)
553
+ elsif surface.outsideBoundaryCondition == 'Outdoors'
554
+ surface.setConstruction(radiant_exterior_wood_construction)
555
+ else # interior floor
556
+ surface.setConstruction(radiant_interior_wood_floor_construction)
557
+ end
558
+ end
491
559
  end
492
560
  end
493
561
  end
@@ -500,6 +568,8 @@ class OpenStudio::Model::Model
500
568
  radiant_loop.setRadiantSurfaceType('Ceilings')
501
569
  elsif radiant_type == 'ceilingmetalpanel'
502
570
  radiant_loop.setRadiantSurfaceType('Ceilings')
571
+ elsif radiant_type == 'floorwithhardwood'
572
+ radiant_loop.setRadiantSurfaceType('Floors')
503
573
  end
504
574
 
505
575
  # radiant loop layout details
@@ -260,6 +260,10 @@ module Honeybee
260
260
  h_stat = zone.zoneControlHumidistat
261
261
  unless h_stat.empty?
262
262
  humidistat_exists = true
263
+ if equipment_type.to_s.include? 'DOAS'
264
+ z_sizing = zone.sizingZone
265
+ z_sizing.setDedicatedOutdoorAirSystemControlStrategy('NeutralDehumidifiedSupplyAir')
266
+ end
263
267
  end
264
268
  end
265
269
  if humidistat_exists
@@ -269,12 +273,6 @@ module Honeybee
269
273
  end
270
274
  end
271
275
 
272
- # set all plants to non-coincident sizing to avoid simualtion control issues on design days
273
- openstudio_model.getPlantLoops.each do |loop|
274
- sizing = loop.sizingPlant
275
- sizing.setSizingOption('NonCoincident')
276
- end
277
-
278
276
  end
279
277
 
280
278
  private
@@ -596,45 +596,64 @@ module Honeybee
596
596
 
597
597
  def create_orphaned_shades
598
598
  if @hash[:orphaned_shades]
599
- shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
600
- shading_surface_group.setShadingSurfaceType('Building')
599
+ if $orphan_groups
600
+ shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
601
+ shading_surface_group.setShadingSurfaceType('Building')
602
+ end
601
603
  @hash[:orphaned_shades].each do |shade|
602
604
  shade_object = Shade.new(shade)
603
605
  openstudio_shade = shade_object.to_openstudio(@openstudio_model)
604
- openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
606
+ if $orphan_groups
607
+ openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
608
+ end
605
609
  end
606
610
  end
607
611
  end
608
612
 
609
613
  def create_orphaned_faces
610
614
  if @hash[:orphaned_faces]
611
- shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
612
- shading_surface_group.setShadingSurfaceType('Building')
615
+ if $orphan_groups
616
+ shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
617
+ shading_surface_group.setShadingSurfaceType('Building')
618
+ end
613
619
  @hash[:orphaned_faces].each do |face|
614
620
  face_object = Face.new(face)
615
621
  openstudio_shade = face_object.to_openstudio_shade(@openstudio_model, shading_surface_group)
622
+ if $orphan_groups
623
+ openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
624
+ end
616
625
  end
617
626
  end
618
627
  end
619
628
 
620
629
  def create_orphaned_apertures
621
630
  if @hash[:orphaned_apertures]
622
- shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
623
- shading_surface_group.setShadingSurfaceType('Building')
624
- @hash[:orphaned_apertures].each do |ap|
631
+ if $orphan_groups
632
+ shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
633
+ shading_surface_group.setShadingSurfaceType('Building')
634
+ end
635
+ @hash[:orphaned_apertures].each do |ap|
625
636
  ap_object = Aperture.new(ap)
626
637
  openstudio_shade = ap_object.to_openstudio_shade(@openstudio_model, shading_surface_group)
638
+ if $orphan_groups
639
+ openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
640
+ end
627
641
  end
628
642
  end
629
643
  end
630
644
 
631
645
  def create_orphaned_doors
632
646
  if @hash[:orphaned_doors]
633
- shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
634
- shading_surface_group.setShadingSurfaceType('Building')
635
- @hash[:orphaned_doors].each do |dr|
647
+ if $orphan_groups
648
+ shading_surface_group = OpenStudio::Model::ShadingSurfaceGroup.new(@openstudio_model)
649
+ shading_surface_group.setShadingSurfaceType('Building')
650
+ end
651
+ @hash[:orphaned_doors].each do |dr|
636
652
  dr_object = Door.new(dr)
637
653
  openstudio_shade = dr_object.to_openstudio_shade(@openstudio_model, shading_surface_group)
654
+ if $orphan_groups
655
+ openstudio_shade.setShadingSurfaceGroup(shading_surface_group)
656
+ end
638
657
  end
639
658
  end
640
659
  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.31.9
4
+ version: 2.31.12
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-05-26 00:00:00.000000000 Z
14
+ date: 2022-07-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler