honeybee-openstudio 2.34.2 → 2.34.4

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: 6947078e38b09ec6c7ee9a64b5d530a3fd7eb3b86137c02471e60d9d7422c08a
4
- data.tar.gz: 2b9c9771fc008175bef01a951ec104e4df61173ad305da5606e0703e933a43e6
3
+ metadata.gz: 21b7c8dc0db0e3178e812bb64d257b2ba15de99b0cf8e3beab63a222cef1ed48
4
+ data.tar.gz: febcc1e11448e74bd06c0647e5fb1ece0466fe789c8ffe7d72a25a61b7172ffc
5
5
  SHA512:
6
- metadata.gz: 45fb3ea19af186fbb5a1dda5946714e80c9c8347839d33b00376f86658e5f9d7329d8a3c2bb96c8c68d5fcd2b6ff2699c47cc9259c102a8103da9fda824b9ccd
7
- data.tar.gz: 52cbe21e52ceb223c5cb333e1332b5a18db6e2a00859485946813bd65c27bb18483219a0bf4e09f9f977d9a3ed212d287ac49ff724401a7fec151dbcc76ba80e
6
+ metadata.gz: 47ff85499f08b127dd2d09b37c4782e63e07101e28239c423959c886e27554c165c35b5917c0875edd5a0fc3a409e9027c1e268cd60f9e17d49f9b0b9210eb3b
7
+ data.tar.gz: f77b8acde4bd316832a8c8a5c085a7c7fdcfb38c773b941e6253b4c3423a8d737f57dfe6d5d7c6bc12d0eee97b26fe3118f04a35375cd32b08064097a251f9b4
@@ -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.34.2'
7
+ spec.version = '2.34.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
 
@@ -4,6 +4,9 @@ ruby '~> 2.7.0'
4
4
 
5
5
  allow_local = ENV['FAVOR_LOCAL_GEMS']
6
6
 
7
+ # pin this dependency to avoid unicode_normalize error
8
+ gem 'addressable', '2.8.1'
9
+
7
10
  if allow_local && File.exist?('../openstudio-common-measures-gem')
8
11
  gem 'openstudio-common-measures', path: '../openstudio-common-measures-gem'
9
12
  elsif allow_local
@@ -490,36 +490,15 @@ class OpenStudio::Model::Model
490
490
  OpenStudio.logFree(OpenStudio::Error, 'openstudio.Model.Model', "Thermal zone '#{zone.name}' has a restricted character ':' in the name and will not work with some EMS and output reporting objects. Please rename the zone.")
491
491
  end
492
492
 
493
- # create radiant coils
494
- if hot_water_loop
495
- radiant_loop_htg_coil = OpenStudio::Model::CoilHeatingLowTempRadiantVarFlow.new(self, htg_control_temp_sch)
496
- radiant_loop_htg_coil.setName("#{zone.name} Radiant Loop Heating Coil")
497
- radiant_loop_htg_coil.setHeatingControlThrottlingRange(throttling_range_c)
498
- hot_water_loop.addDemandBranchForComponent(radiant_loop_htg_coil)
499
- else
500
- OpenStudio.logFree(OpenStudio::Error, 'openstudio.Model.Model', 'Radiant loops require a hot water loop, but none was provided.')
501
- end
502
-
503
- if chilled_water_loop
504
- radiant_loop_clg_coil = OpenStudio::Model::CoilCoolingLowTempRadiantVarFlow.new(self, clg_control_temp_sch)
505
- radiant_loop_clg_coil.setName("#{zone.name} Radiant Loop Cooling Coil")
506
- radiant_loop_clg_coil.setCoolingControlThrottlingRange(throttling_range_c)
507
- chilled_water_loop.addDemandBranchForComponent(radiant_loop_clg_coil)
508
- else
509
- OpenStudio.logFree(OpenStudio::Error, 'openstudio.Model.Model', 'Radiant loops require a chilled water loop, but none was provided.')
510
- end
511
-
512
- radiant_avail_sch = self.alwaysOnDiscreteSchedule
513
- radiant_loop = OpenStudio::Model::ZoneHVACLowTempRadiantVarFlow.new(self,
514
- radiant_avail_sch,
515
- radiant_loop_htg_coil,
516
- radiant_loop_clg_coil)
517
-
518
493
  # assign internal source construction to floors in zone
494
+ srf_count = 0
519
495
  zone.spaces.each do |space|
520
496
  space.surfaces.each do |surface|
521
- if radiant_type == 'floor'
497
+ if surface.isAirWall
498
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Surface #{surface.name} cannot be set to a Radiant Construction as it is an AirBoundary.")
499
+ elsif radiant_type == 'floor'
522
500
  if surface.surfaceType == 'Floor'
501
+ srf_count += 1
523
502
  if surface.outsideBoundaryCondition == 'Ground'
524
503
  surface.setConstruction(radiant_ground_slab_construction)
525
504
  elsif surface.outsideBoundaryCondition == 'Outdoors'
@@ -530,6 +509,7 @@ class OpenStudio::Model::Model
530
509
  end
531
510
  elsif radiant_type == 'ceiling'
532
511
  if surface.surfaceType == 'RoofCeiling'
512
+ srf_count += 1
533
513
  if surface.outsideBoundaryCondition == 'Outdoors'
534
514
  surface.setConstruction(radiant_ceiling_slab_construction)
535
515
  else # interior ceiling
@@ -538,6 +518,7 @@ class OpenStudio::Model::Model
538
518
  end
539
519
  elsif radiant_type == 'ceilingmetalpanel'
540
520
  if surface.surfaceType == 'RoofCeiling'
521
+ srf_count += 1
541
522
  if surface.outsideBoundaryCondition == 'Outdoors'
542
523
  surface.setConstruction(radiant_ceiling_metal_construction)
543
524
  else # interior ceiling
@@ -546,6 +527,7 @@ class OpenStudio::Model::Model
546
527
  end
547
528
  elsif radiant_type == 'floorwithhardwood'
548
529
  if surface.surfaceType == 'Floor'
530
+ srf_count += 1
549
531
  if surface.outsideBoundaryCondition == 'Ground'
550
532
  surface.setConstruction(radiant_ground_wood_construction)
551
533
  elsif surface.outsideBoundaryCondition == 'Outdoors'
@@ -558,6 +540,36 @@ class OpenStudio::Model::Model
558
540
  end
559
541
  end
560
542
 
543
+ # ignore the Zone if it has not thermally active Faces
544
+ if srf_count == 0
545
+ next
546
+ end
547
+
548
+ # create radiant coils
549
+ if hot_water_loop
550
+ radiant_loop_htg_coil = OpenStudio::Model::CoilHeatingLowTempRadiantVarFlow.new(self, htg_control_temp_sch)
551
+ radiant_loop_htg_coil.setName("#{zone.name} Radiant Loop Heating Coil")
552
+ radiant_loop_htg_coil.setHeatingControlThrottlingRange(throttling_range_c)
553
+ hot_water_loop.addDemandBranchForComponent(radiant_loop_htg_coil)
554
+ else
555
+ OpenStudio.logFree(OpenStudio::Error, 'openstudio.Model.Model', 'Radiant loops require a hot water loop, but none was provided.')
556
+ end
557
+
558
+ if chilled_water_loop
559
+ radiant_loop_clg_coil = OpenStudio::Model::CoilCoolingLowTempRadiantVarFlow.new(self, clg_control_temp_sch)
560
+ radiant_loop_clg_coil.setName("#{zone.name} Radiant Loop Cooling Coil")
561
+ radiant_loop_clg_coil.setCoolingControlThrottlingRange(throttling_range_c)
562
+ chilled_water_loop.addDemandBranchForComponent(radiant_loop_clg_coil)
563
+ else
564
+ OpenStudio.logFree(OpenStudio::Error, 'openstudio.Model.Model', 'Radiant loops require a chilled water loop, but none was provided.')
565
+ end
566
+
567
+ radiant_avail_sch = self.alwaysOnDiscreteSchedule
568
+ radiant_loop = OpenStudio::Model::ZoneHVACLowTempRadiantVarFlow.new(self,
569
+ radiant_avail_sch,
570
+ radiant_loop_htg_coil,
571
+ radiant_loop_clg_coil)
572
+
561
573
  # radiant loop surfaces
562
574
  radiant_loop.setName("#{zone.name} Radiant Loop")
563
575
  if radiant_type == 'floor'
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.34.2
4
+ version: 2.34.4
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: 2023-04-10 00:00:00.000000000 Z
14
+ date: 2023-04-26 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json_pure