honeybee-openstudio 2.34.1 → 2.34.3

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: a4dfa78bd619d4e0ee96bedcae85ed99bce737a61516a8abf6d3be8ad1fa2b7b
4
- data.tar.gz: 0eae35ad7865b835097a4454215d965ee76499c9174162bb3865e7ce9d768c15
3
+ metadata.gz: d4c9a3f73cadaedf8f1e13e0b20b1392952936a24c1b89d4ffd7532275fcb603
4
+ data.tar.gz: db9b5fbbecb023ff4465d5d88ab3fda0ab36dd1e6d5835bdb3f072a7ef9d7f64
5
5
  SHA512:
6
- metadata.gz: 6aed2c7158f039c171832d76e3d791bca8fffb5a0d2710d534afe4cc20959e993b8de3ce8747b0fefd30933eadb64b896d554c3d64cb135ac88d9f890e3e435d
7
- data.tar.gz: 4b0ea7396722cd43895fc8a79cdae978135f747fc5e34b533b1409be7a8fcef48579352df59c571b26df8e0cf535c13fb770c4055ed3daf20b861e324dc44ea8
6
+ metadata.gz: 135307618dc282c797521be37b65b7494eead11ed66e11409fe0459afbeb7e9cc1a6d07bfb6b11ae73410eb3fc9639c7d386905fff0a8adf0ec775d46a18f874
7
+ data.tar.gz: 2e54d8e090017dd82d63388ed8a44f03c5439631f23bb56d9af68c13ad2ede5f4b8c6dfd1c2d9ab44c7329fff8708bb6593fb399d8768a690bcb00d3af3c0115
@@ -6,7 +6,7 @@ jobs:
6
6
 
7
7
  test:
8
8
  name: Unit tests
9
- runs-on: ubuntu-18.04
9
+ runs-on: ubuntu-latest
10
10
 
11
11
  steps:
12
12
  - name: Check out repository
@@ -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.1'
7
+ spec.version = '2.34.3'
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
 
@@ -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'
@@ -238,15 +238,15 @@ module Honeybee
238
238
 
239
239
  # note any efficency standards that have been assigned to the
240
240
  if @hash[:sizing_parameter]
241
- if @hash[:sizing_parameter][:efficiency_standard]
241
+ if @hash[:sizing_parameter][:efficiency_standard] && @hash[:sizing_parameter][:efficiency_standard] != 0
242
242
  std_gem_standard = @@standard_mapper[@hash[:sizing_parameter][:efficiency_standard].to_sym]
243
243
  building = @openstudio_model.getBuilding
244
244
  building.setStandardsTemplate(std_gem_standard)
245
245
  end
246
- if @hash[:sizing_parameter][:climate_zone]
246
+ if @hash[:sizing_parameter][:climate_zone] && @hash[:sizing_parameter][:climate_zone] != 0
247
247
  climate_zone_objs.setClimateZone('ASHRAE', @hash[:sizing_parameter][:climate_zone])
248
248
  end
249
- if @hash[:sizing_parameter][:building_type]
249
+ if @hash[:sizing_parameter][:building_type] && @hash[:sizing_parameter][:building_type] != 0
250
250
  building = @openstudio_model.getBuilding
251
251
  building.setStandardsBuildingType(@hash[:sizing_parameter][:building_type])
252
252
  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.34.1
4
+ version: 2.34.3
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-02-27 00:00:00.000000000 Z
14
+ date: 2023-04-19 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json_pure