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 +4 -4
- data/honeybee-openstudio.gemspec +1 -1
- data/lib/files/urbanopt_Gemfile +3 -0
- data/lib/to_openstudio/hvac/radiant.rb +38 -26
- 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: 21b7c8dc0db0e3178e812bb64d257b2ba15de99b0cf8e3beab63a222cef1ed48
|
4
|
+
data.tar.gz: febcc1e11448e74bd06c0647e5fb1ece0466fe789c8ffe7d72a25a61b7172ffc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47ff85499f08b127dd2d09b37c4782e63e07101e28239c423959c886e27554c165c35b5917c0875edd5a0fc3a409e9027c1e268cd60f9e17d49f9b0b9210eb3b
|
7
|
+
data.tar.gz: f77b8acde4bd316832a8c8a5c085a7c7fdcfb38c773b941e6253b4c3423a8d737f57dfe6d5d7c6bc12d0eee97b26fe3118f04a35375cd32b08064097a251f9b4
|
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.34.
|
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
|
|
data/lib/files/urbanopt_Gemfile
CHANGED
@@ -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
|
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.
|
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-
|
14
|
+
date: 2023-04-26 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json_pure
|