openstudio-standards 0.6.0.rc1 → 0.6.0

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: 85493a79b65d55ebd68c909bb5c6f8c402ae95872e43b859fe20765a53ecf4ff
4
- data.tar.gz: 482558cce8a7aa221a2397a08505bbe8d4d5c3cf5911815e6231aed2745b0a8a
3
+ metadata.gz: 99feac3c5967489050268e5d5371e8966cdab260e390ceda4e61c7d3f8413dd3
4
+ data.tar.gz: 3e66eab384d8af2d75243ab465fad4cb94e6d007514bd3c4de51fbe5ddfc9d1a
5
5
  SHA512:
6
- metadata.gz: 5641ae263ce59dd56a3d9a6a1a3c63a76583c4481eff6343933eb48f85371c4b05b721e11e7839bc07adf0118ea41ef25d0a006b1546f2ccb5414d909677dc78
7
- data.tar.gz: 047d954e6098146a68f8f128e97e47e22db1e02ebdfa45bfeaa1118b4882da7aa5dd76c7280a3bc2640a66b1c4e6b11babe67c39fcdc27bd97a11582b5bbe1ab
6
+ metadata.gz: c7766ea57fc85eaea49dcc70b704bfb0a5a0a89ce332c0ec442ec50c2e5af4eb7b1d8523d4cefe5002d4e674f3b8610c3c3eccb2324dda9d6dcff2c48101dc24
7
+ data.tar.gz: c7fc367108d38b3879d82e63b7b7169b0c05978a1016da8869481dfd9adfbbbb416e9b48be1c23f5a8fa37b036141ce384bb425804a37703ec0c6d8d7ead9848
@@ -438,9 +438,9 @@ def export_openstudio_libraries
438
438
 
439
439
  # Save the library
440
440
  pkg_dir = "#{__dir__}/../../pkg"
441
- Dir.mkdir(pkg_dir) unless Dir.exists?(pkg_dir)
441
+ Dir.mkdir(pkg_dir) unless Dir.exist?(pkg_dir)
442
442
  osm_lib_dir = "#{pkg_dir}/libraries"
443
- Dir.mkdir(osm_lib_dir) unless Dir.exists?(osm_lib_dir)
443
+ Dir.mkdir(osm_lib_dir) unless Dir.exist?(osm_lib_dir)
444
444
  library_path = "#{osm_lib_dir}/#{template_name.gsub(/\W/,'_')}.osm"
445
445
  puts "* Saving library #{library_path}"
446
446
  model.save(OpenStudio::Path.new(library_path), true)
@@ -204,7 +204,7 @@ end
204
204
  def check_google_drive_configuration
205
205
  require 'google_drive'
206
206
  client_config_path = File.join(Dir.home, '.credentials', "client_secret.json")
207
- unless File.exists? client_config_path
207
+ unless File.exist? client_config_path
208
208
  puts "Unable to locate client_secret.json file at #{client_config_path}."
209
209
  return false
210
210
  end
@@ -228,7 +228,7 @@ end
228
228
  def download_google_spreadsheets(spreadsheet_titles)
229
229
  require 'google_drive'
230
230
  client_config_path = File.join(Dir.home, '.credentials', "client_secret.json")
231
- unless File.exists? client_config_path
231
+ unless File.exist? client_config_path
232
232
  puts "Unable to locate client_secret.json file at #{client_config_path}."
233
233
  return false
234
234
  end
@@ -65,17 +65,17 @@ FullServiceRestaurant,90.1-2010,ASHRAE 169-2013-4A,777539613.1023173,0,0,0,0,0,0
65
65
  FullServiceRestaurant,90.1-2013,ASHRAE 169-2013-4A,755631711.948922,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256687116.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4297953623.6510105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1245911470.5462978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14136512.169772021,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3908703861.4121346,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11642346584.45856,0.0,11642346584.45856,504301758.4820919,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,659020530.2483394,0,0,0,0,0,0,0,0,0,18.483544466559202,0,0,0,0,0,0,0,0
66
66
  FullServiceRestaurant,90.1-2016,ASHRAE 169-2013-4A,620443829.9347649,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154382256.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4297953623.6510105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1210468758.551721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14136512.169772021,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3793374488.949421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11254131588.132673,0.0,11254131588.132673,504409020.65290403,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,658963098.2230852,0,0,0,0,0,0,0,0,0,18.483544466559202,0,0,0,0,0,0,0,0
67
67
  FullServiceRestaurant,90.1-2019,ASHRAE 169-2013-4A,597946658.1005332,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154382256.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4184760983.6510096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1198296660.8610497,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14136512.169772021,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3750980520.625906,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10948760999.042639,0.0,10948760999.042639,389190069.46910566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,659067338.1652699,0,0,0,0,0,0,0,0,0,18.483544466559202,0,0,0,0,0,0,0,0
68
- MidriseApartment,90.1-2004,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1319401338.6478374,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03033663212866495,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3766051306.857629,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15081793011.662304,0.0,15081793011.662304,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3550002640.5727863,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
69
- MidriseApartment,90.1-2007,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1306243446.7440538,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03033663212866495,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3057957992.969678,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14360535565.44162,0.0,14360535565.44162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3549996400.143838,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
70
- MidriseApartment,90.1-2010,ASHRAE 169-2013-4A,1264722844.1737761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,300960000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4611200599.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1190415347.2882547,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.029272188896080235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2808989590.1100817,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13710480420.677948,0.0,13710480420.677948,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3534192040.0464287,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
68
+ MidriseApartment,90.1-2004,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,822237969.1271257,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03033663212866495,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3118760026.6748786,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13937338361.958841,0.0,13937338361.958841,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3550002640.5727863,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
69
+ MidriseApartment,90.1-2007,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,809000404.0380547,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03033663212866495,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2528602358.197528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13333936887.96347,0.0,13333936887.96347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3549996400.143838,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
70
+ MidriseApartment,90.1-2010,ASHRAE 169-2013-4A,1264722844.1737761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,300960000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4611200599.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,704832644.0873003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.029272188896080235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2295723503.6061645,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12711631630.973076,0.0,12711631630.973076,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3534192040.0464287,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
71
71
  MidriseApartment,90.1-2013,ASHRAE 169-2013-4A,1101038681.645097,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,300960000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4607308711.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1256799325.2086463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.035753887865926565,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2744609020.8069496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13144730768.847263,0.0,13144730768.847263,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3113968269.3115425,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
72
72
  MidriseApartment,90.1-2016,ASHRAE 169-2013-4A,855834791.8498567,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,198123000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4607308711.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1182782275.7769496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.035753887865926565,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2569744536.0970163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12547808335.214468,0.0,12547808335.214468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3113968259.6156197,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
73
73
  MidriseApartment,90.1-2019,ASHRAE 169-2013-4A,709501859.475796,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,198123000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4607308711.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1162767188.6764462,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.035753887865926565,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2520799815.662402,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12332519761.625237,0.0,12332519761.625237,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3113972425.935563,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
74
- HighriseApartment,90.1-2004,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4132852834.756009,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,535385144.18915427,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6800065464.718957,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10482330728.566423,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,419370644.44303936,0,0,0,0,0,0,0,0,0,22.3091784388373,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36996623418.3199,0.0,36996623418.3199,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
75
- HighriseApartment,90.1-2007,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4084113962.950282,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,524708568.86517787,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6485443733.393146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10494602645.101818,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,412766463.7298132,0,0,0,0,0,0,0,0,0,22.235320250273524,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36628253975.686554,0.0,36628253975.686554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
76
- HighriseApartment,90.1-2010,ASHRAE 169-2013-4A,2979275880.92879,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9820817101.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170434864.9558134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3795235576.5058784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,478968864.1229158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5160367398.703336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9911207691.523151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1001406186.1173679,0,0,0,0,0,0,0,0,0,24.862347483497903,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34604113564.074104,0.0,34604113564.074104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
77
- HighriseApartment,90.1-2013,ASHRAE 169-2013-4A,2502911158.565948,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170319510.47468275,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3869551927.7794895,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472222105.5504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5003692707.966991,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8978630347.191113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,984711693.82106,0,0,0,0,0,0,0,0,0,24.14688508363505,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33105411425.37569,0.0,33105411425.37569,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
78
- HighriseApartment,90.1-2016,ASHRAE 169-2013-4A,1931902613.3330522,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,900109560.0000012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118479993.45694521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3621694906.2317104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,446176575.3944447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4722652894.530318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8514005331.209377,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,790757903.4773976,0,0,0,0,0,0,0,0,0,21.759637352153355,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30882751751.65925,0.0,30882751751.65925,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
74
+ HighriseApartment,90.1-2004,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2759561631.1494513,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,535385144.18915427,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5196503967.47089,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8875514542.687614,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,413405499.66227293,0,0,0,0,0,0,0,0,0,19.3778306394734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32406989386.80568,0.0,32406989386.80568,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
75
+ HighriseApartment,90.1-2007,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2703997101.9827433,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,524708568.86517787,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4900477910.411963,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8876724591.81084,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,407243708.7186346,0,0,0,0,0,0,0,0,0,19.2909489563067,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32039770483.43566,0.0,32039770483.43566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
76
+ HighriseApartment,90.1-2010,ASHRAE 169-2013-4A,2979275880.92879,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9820817101.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170434864.9558134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2345467351.7142277,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,478968864.1229158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3576635640.9440866,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8051631861.32485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,978219656.8966086,0,0,0,0,0,0,0,0,0,21.611850387905623,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29687851222.10414,0.0,29687851222.10414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
77
+ HighriseApartment,90.1-2013,ASHRAE 169-2013-4A,2502911158.565948,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170319510.47468275,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3813943393.7084503,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472222105.5504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4945734316.175122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8916435671.29256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,984248362.8439888,0,0,0,0,0,0,0,0,0,24.03349270191599,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32929186492.63715,0.0,32929186492.63715,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
78
+ HighriseApartment,90.1-2016,ASHRAE 169-2013-4A,1931902613.3330522,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,900109560.0000012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118479993.45694521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3603255819.112727,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,446176575.3944447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4703256163.616502,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8493315396.990675,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,790543658.4208595,0,0,0,0,0,0,0,0,0,21.72224373776791,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30824011754.3512,0.0,30824011754.3512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
79
79
  HighriseApartment,90.1-2019,ASHRAE 169-2013-4A,1610413342.225185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,900109560.0000012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118471681.5553761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3585415380.3169084,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,434118898.3026537,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4736283926.267405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8374609000.969961,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,775714827.7673504,0,0,0,0,0,0,0,0,0,21.388790981215433,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30372108591.430824,0.0,30372108591.430824,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
80
80
  Hospital,90.1-2004,ASHRAE 169-2013-4A,43700141905.51176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1996320000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73851258109.6063,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34067503994.126015,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33103022164.466347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10112571728.238243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46820766045.57834,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6532353748.843508,0,0,0,0,0,0,0,0,0,191.02704311998363,0,0,0,0,0,0,0,0,6798818700.137337,0,0,0,0,0,0,0,0,0,2.5291605564510893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,258704259073.49158,0.0,258704259073.49158,1470040442.5647764,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251462234.41894314,0,0,0,0,0,0,0,0,0,46.80754034926254,0,0,0,0,0,0,0,0
81
81
  Hospital,90.1-2007,ASHRAE 169-2013-4A,43700141905.51176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1996320000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66950317309.60635,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33600246624.695667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32641907550.116947,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9789181478.960934,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45212694684.451775,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6362012611.503619,0,0,0,0,0,0,0,0,0,185.34140190149392,0,0,0,0,0,0,0,0,7302765350.65984,0,0,0,0,0,0,0,0,0,2.716628710445461,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,249277725384.5667,0.0,249277725384.5667,1470690632.651906,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251447236.40786576,0,0,0,0,0,0,0,0,0,46.80754034926254,0,0,0,0,0,0,0,0
@@ -25,8 +25,6 @@ module BTAP
25
25
  # Create hash to store all the collected data.
26
26
  qaqc = {}
27
27
  error_warning=[]
28
- qaqc[:os_standards_revision] = OpenstudioStandards::git_revision
29
- qaqc[:os_standards_version] = OpenstudioStandards::VERSION
30
28
  # Store Building data.
31
29
  qaqc[:building] = {}
32
30
  qaqc[:building][:name] = model.building.get.name.get
@@ -909,7 +909,7 @@ module BTAP
909
909
  #@return [Boolean] optional_construction_set
910
910
  def self.get_construction_set_from_library(construction_library_file, construction_set_name)
911
911
  #Load Contruction osm library.
912
- if File.exists?(construction_library_file)
912
+ if File.exist?(construction_library_file)
913
913
  construction_lib = BTAP::FileIO::load_osm(construction_library_file)
914
914
  #Get construction set..
915
915
  optional_construction_set = construction_lib.getDefaultConstructionSetByName(construction_set_name)
@@ -51,8 +51,13 @@ class Standard
51
51
  htg_coil.setGasBurnerEfficiency(efficiency)
52
52
 
53
53
  # defaults
54
- htg_coil.setParasiticElectricLoad(0)
55
- htg_coil.setParasiticGasLoad(0)
54
+ if model.version < OpenStudio::VersionString.new('3.7.0')
55
+ htg_coil.setParasiticElectricLoad(0.0)
56
+ htg_coil.setParasiticGasLoad(0.0)
57
+ else
58
+ htg_coil.setOnCycleParasiticElectricLoad(0.0)
59
+ htg_coil.setOffCycleParasiticGasLoad(0.0)
60
+ end
56
61
 
57
62
  return htg_coil
58
63
  end
@@ -1579,9 +1579,54 @@ Standard.class_eval do
1579
1579
  air_loop_hvac.thermalZones.each do |zone|
1580
1580
  next unless OpenstudioStandards::ThermalZone.thermal_zone_residential?(zone)
1581
1581
 
1582
+ # Exception 3 to 6.5.6.1.1
1583
+ case template
1584
+ when '90.1-2019'
1585
+ case climate_zone
1586
+ when 'ASHRAE 169-2006-0A',
1587
+ 'ASHRAE 169-2006-0B',
1588
+ 'ASHRAE 169-2006-1A',
1589
+ 'ASHRAE 169-2006-1B',
1590
+ 'ASHRAE 169-2006-2A',
1591
+ 'ASHRAE 169-2006-2B',
1592
+ 'ASHRAE 169-2006-3A',
1593
+ 'ASHRAE 169-2006-3B',
1594
+ 'ASHRAE 169-2006-3C',
1595
+ 'ASHRAE 169-2006-4A',
1596
+ 'ASHRAE 169-2006-4B',
1597
+ 'ASHRAE 169-2006-4C',
1598
+ 'ASHRAE 169-2006-5A',
1599
+ 'ASHRAE 169-2006-5B',
1600
+ 'ASHRAE 169-2006-5C',
1601
+ 'ASHRAE 169-2013-0A',
1602
+ 'ASHRAE 169-2013-0B',
1603
+ 'ASHRAE 169-2013-1A',
1604
+ 'ASHRAE 169-2013-1B',
1605
+ 'ASHRAE 169-2013-2A',
1606
+ 'ASHRAE 169-2013-2B',
1607
+ 'ASHRAE 169-2013-3A',
1608
+ 'ASHRAE 169-2013-3B',
1609
+ 'ASHRAE 169-2013-3C',
1610
+ 'ASHRAE 169-2013-4A',
1611
+ 'ASHRAE 169-2013-4B',
1612
+ 'ASHRAE 169-2013-4C',
1613
+ 'ASHRAE 169-2013-5A',
1614
+ 'ASHRAE 169-2013-5B',
1615
+ 'ASHRAE 169-2013-5C'
1616
+ if zone.floorArea <= OpenStudio.convert(500.0, 'ft^2', 'm^2').get
1617
+ has_erv = false
1618
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Energy recovery will not be modeled for the ERV serving #{zone.name}.")
1619
+ end
1620
+ end
1621
+ end
1622
+
1582
1623
  oa_cfm_per_ft2 = 0.0578940512546562
1583
1624
  oa_m3_per_m2 = OpenStudio.convert(OpenStudio.convert(oa_cfm_per_ft2, 'cfm', 'm^3/s').get, '1/ft^2', '1/m^2').get
1584
- model_add_residential_erv(model, zone, climate_zone, has_erv, oa_m3_per_m2)
1625
+ if has_erv
1626
+ model_add_residential_erv(model, zone, oa_m3_per_m2)
1627
+ else
1628
+ model_add_residential_ventilator(model, zone, oa_m3_per_m2)
1629
+ end
1585
1630
 
1586
1631
  # Shut-off air loop level OA intake
1587
1632
  oa_controller = air_loop_hvac.airLoopHVACOutdoorAirSystem.get.getControllerOutdoorAir
@@ -5904,6 +5904,177 @@ class Standard
5904
5904
  return ideal_systems
5905
5905
  end
5906
5906
 
5907
+ # Add a residential ERV: standalone ERV that operates to provide OA,
5908
+ # used in conjuction with a system that having mechanical cooling and a heating coil
5909
+ #
5910
+ # @param model [OpenStudio::Model::Model] OpenStudio Model object
5911
+ # @param thermal_zone [OpenStudio::Model::ThermalZone] OpenStudio ThermalZone object
5912
+ # @return [OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator] Standalone ERV
5913
+ def model_add_residential_erv(model,
5914
+ thermal_zone,
5915
+ min_oa_flow_m3_per_s_per_m2 = nil)
5916
+
5917
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding standalone ERV for #{thermal_zone.name}.")
5918
+
5919
+ # Determine ERR and design basis when energy recovery is required
5920
+ #
5921
+ # enthalpy_recovery_ratio = nil will trigger an ERV with no effectiveness that only provides OA
5922
+ enthalpy_recovery_ratio = nil
5923
+ climate_zone = OpenstudioStandards::Weather.model_get_climate_zone(model)
5924
+ case template
5925
+ when '90.1-2019'
5926
+ search_criteria = {
5927
+ 'template' => template,
5928
+ 'climate_zone' => climate_zone,
5929
+ 'under_8000_hours' => false,
5930
+ 'nontransient_dwelling' => true
5931
+ }
5932
+ else
5933
+ search_criteria = {
5934
+ 'template' => template,
5935
+ 'climate_zone' => climate_zone,
5936
+ 'under_8000_hours' => false
5937
+ }
5938
+ end
5939
+
5940
+ erv_enthalpy_recovery_ratio = model_find_object(standards_data['energy_recovery'], search_criteria)
5941
+
5942
+ # Extract ERR from data lookup
5943
+ if !erv_enthalpy_recovery_ratio.nil?
5944
+ if erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio'].nil? & erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].nil?
5945
+ # If not included in the data, an enthalpy
5946
+ # recovery ratio (ERR) of 50% is used
5947
+ enthalpy_recovery_ratio = 0.5
5948
+ case climate_zone
5949
+ when 'ASHRAE 169-2006-6B',
5950
+ 'ASHRAE 169-2013-6B',
5951
+ 'ASHRAE 169-2006-7A',
5952
+ 'ASHRAE 169-2013-7A',
5953
+ 'ASHRAE 169-2006-7B',
5954
+ 'ASHRAE 169-2013-7B',
5955
+ 'ASHRAE 169-2006-8A',
5956
+ 'ASHRAE 169-2013-8A',
5957
+ 'ASHRAE 169-2006-8B',
5958
+ 'ASHRAE 169-2013-8B'
5959
+ design_conditions = 'heating'
5960
+ else
5961
+ design_conditions = 'cooling'
5962
+ end
5963
+ else
5964
+ design_conditions = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].downcase
5965
+ enthalpy_recovery_ratio = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio']
5966
+ end
5967
+ end
5968
+
5969
+ # # Fan power with energy recovery = 0.934 W/cfm
5970
+ supply_fan = create_fan_by_name(model,
5971
+ 'ERV_Supply_Fan',
5972
+ fan_name: "#{thermal_zone.name} ERV Supply Fan")
5973
+ exhaust_fan = create_fan_by_name(model,
5974
+ 'ERV_Supply_Fan',
5975
+ fan_name: "#{thermal_zone.name} ERV Exhaust Fan")
5976
+ supply_fan.setMotorEfficiency(0.48)
5977
+ exhaust_fan.setMotorEfficiency(0.48)
5978
+ supply_fan.setFanTotalEfficiency(0.303158)
5979
+ exhaust_fan.setFanTotalEfficiency(0.303158)
5980
+ supply_fan.setPressureRise(270.64755)
5981
+ exhaust_fan.setPressureRise(270.64755)
5982
+
5983
+
5984
+ # Create ERV Controller
5985
+ erv_controller = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilatorController.new(model)
5986
+ erv_controller.setName("#{thermal_zone.name} ERV Controller")
5987
+ erv_controller.setControlHighIndoorHumidityBasedonOutdoorHumidityRatio(false)
5988
+
5989
+ # Create heat exchanger
5990
+ heat_exchanger = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(model)
5991
+ heat_exchanger.setName("#{thermal_zone.name} ERV HX")
5992
+ heat_exchanger.setSupplyAirOutletTemperatureControl(false)
5993
+ heat_exchanger.setHeatExchangerType('Rotary')
5994
+ heat_exchanger.setEconomizerLockout(false)
5995
+ heat_exchanger.setFrostControlType('ExhaustOnly')
5996
+ heat_exchanger.setThresholdTemperature(-23.3)
5997
+ heat_exchanger.setInitialDefrostTimeFraction(0.167)
5998
+ heat_exchanger.setRateofDefrostTimeFractionIncrease(1.44)
5999
+ heat_exchanger.setAvailabilitySchedule(model_add_schedule(model, 'Always On - No Design Day'))
6000
+ heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency_enthalpy_recovery_ratio(heat_exchanger, enthalpy_recovery_ratio, design_conditions, climate_zone)
6001
+
6002
+ erv = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator.new(model, heat_exchanger, supply_fan, exhaust_fan)
6003
+ erv.setName("#{thermal_zone.name} ERV")
6004
+
6005
+ erv.setController(erv_controller)
6006
+ erv.addToThermalZone(thermal_zone)
6007
+
6008
+ # Set OA requirements; Assumes a default of 55 cfm
6009
+ if min_oa_flow_m3_per_s_per_m2.nil?
6010
+ erv.setSupplyAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
6011
+ erv.setExhaustAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
6012
+ else
6013
+ erv.setVentilationRateperUnitFloorArea(min_oa_flow_m3_per_s_per_m2)
6014
+ end
6015
+ erv.setVentilationRateperOccupant(0.0)
6016
+
6017
+ # Ensure the ERV takes priority, so ventilation load is included when treated by other zonal systems
6018
+ # From EnergyPlus I/O reference:
6019
+ # "For situations where one or more equipment types has limited capacity or limited control capability, order the
6020
+ # sequence so that the most controllable piece of equipment runs last. For example, with a dedicated outdoor air
6021
+ # system (DOAS), the air terminal for the DOAS should be assigned Heating Sequence = 1 and Cooling Sequence = 1.
6022
+ # Any other equipment should be assigned sequence 2 or higher so that it will see the net load after the DOAS air
6023
+ # is added to the zone."
6024
+ thermal_zone.setCoolingPriority(erv.to_ModelObject.get, 1)
6025
+ thermal_zone.setHeatingPriority(erv.to_ModelObject.get, 1)
6026
+
6027
+ return erv
6028
+ end
6029
+
6030
+ # Add a residential ventilation: standalone unit ventilation and zone exhaust that operates to provide OA,
6031
+ # used in conjuction with a system that having mechanical cooling and a heating coil
6032
+ #
6033
+ # @param model [OpenStudio::Model::Model] OpenStudio Model object
6034
+ # @param thermal_zone [OpenStudio::Model::ThermalZone] OpenStudio ThermalZone object
6035
+ # @return [OpenStudio::Model::ZoneHVACUnitVentilator] Standalone Unit Ventilator
6036
+ def model_add_residential_ventilator(model,
6037
+ thermal_zone,
6038
+ min_oa_flow_m3_per_s_per_m2 = nil)
6039
+
6040
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding standalone unit ventilator for #{thermal_zone.name}.")
6041
+
6042
+ # Fan power with no energy recovery = 0.806 W/cfm
6043
+ supply_fan = create_fan_by_name(model,
6044
+ 'ERV_Supply_Fan',
6045
+ fan_name: "#{thermal_zone.name} Ventilator Supply Fan")
6046
+ supply_fan.setMotorEfficiency(0.48)
6047
+ supply_fan.setFanTotalEfficiency(0.303158)
6048
+ supply_fan.setPressureRise(233.6875)
6049
+
6050
+ unit_ventilator = OpenStudio::Model::ZoneHVACUnitVentilator.new(model, supply_fan)
6051
+ unit_ventilator.setName("#{thermal_zone.name} Unit Ventilator")
6052
+ unit_ventilator.addToThermalZone(thermal_zone)
6053
+ fan_zone_exhaust = create_fan_zone_exhaust(model,
6054
+ fan_name: "#{thermal_zone.name} Exhaust Fan",
6055
+ fan_efficiency: 0.303158,
6056
+ pressure_rise: 233.6875)
6057
+
6058
+ # Set OA requirements; Assumes a default of 55 cfm
6059
+ if min_oa_flow_m3_per_s_per_m2.nil?
6060
+ unit_ventilator.setMaximumSupplyAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
6061
+ fan_zone_exhaust.setMaximumFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
6062
+ else
6063
+ unit_ventilator.setMaximumSupplyAirFlowRate(min_oa_flow_m3_per_s_per_m2)
6064
+ fan_zone_exhaust.setMaximumFlowRate(min_oa_flow_m3_per_s_per_m2)
6065
+ end
6066
+
6067
+ # Ensure the unit ventilator takes priority, so ventilation load is included when treated by other zonal systems
6068
+ # From EnergyPlus I/O reference:
6069
+ # "For situations where one or more equipment types has limited capacity or limited control capability, order the
6070
+ # sequence so that the most controllable piece of equipment runs last. For example, with a dedicated outdoor air
6071
+ # system (DOAS), the air terminal for the DOAS should be assigned Heating Sequence = 1 and Cooling Sequence = 1.
6072
+ # Any other equipment should be assigned sequence 2 or higher so that it will see the net load after the DOAS air
6073
+ # is added to the zone."
6074
+ thermal_zone.setCoolingPriority(unit_ventilator.to_ModelObject.get, 1)
6075
+ thermal_zone.setHeatingPriority(unit_ventilator.to_ModelObject.get, 1)
6076
+ end
6077
+
5907
6078
  # Adds an exhaust fan to each zone.
5908
6079
  #
5909
6080
  # @param model [OpenStudio::Model::Model] OpenStudio model object
@@ -7295,182 +7466,4 @@ class Standard
7295
7466
  rename_air_loop_nodes(model)
7296
7467
  rename_plant_loop_nodes(model)
7297
7468
  end
7298
-
7299
- # Add a residential ERV: standalone ERV that operates to provide OA,
7300
- # use in conjuction witha system that having mechanical cooling and
7301
- # a heating coil
7302
- #
7303
- # @param model [OpenStudio::Model::Model] OpenStudio Model object
7304
- # @param thermal_zone [OpenStudio::Model::ThermalZone] OpenStudio ThermalZone object
7305
- # @param climate_zone [String] Climate zone
7306
- # @param energy_recovery [Boolean] Indicates if the ERV is to recover energy, if false, only provides OA
7307
- # @return [OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator] Standalone ERV
7308
- def model_add_residential_erv(model,
7309
- thermal_zone,
7310
- climate_zone,
7311
- energy_recovery,
7312
- min_oa_flow_m3_per_s_per_m2 = nil)
7313
-
7314
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding standalone ERV for #{thermal_zone.name}.")
7315
-
7316
- # Exception 3 to 6.5.6.1.1
7317
- case template
7318
- when '90.1-2019'
7319
- case climate_zone
7320
- when 'ASHRAE 169-2006-0A',
7321
- 'ASHRAE 169-2006-0B',
7322
- 'ASHRAE 169-2006-1A',
7323
- 'ASHRAE 169-2006-1B',
7324
- 'ASHRAE 169-2006-2A',
7325
- 'ASHRAE 169-2006-2B',
7326
- 'ASHRAE 169-2006-3A',
7327
- 'ASHRAE 169-2006-3B',
7328
- 'ASHRAE 169-2006-3C',
7329
- 'ASHRAE 169-2006-4A',
7330
- 'ASHRAE 169-2006-4B',
7331
- 'ASHRAE 169-2006-4C',
7332
- 'ASHRAE 169-2006-5A',
7333
- 'ASHRAE 169-2006-5B',
7334
- 'ASHRAE 169-2006-5C',
7335
- 'ASHRAE 169-2013-0A',
7336
- 'ASHRAE 169-2013-0B',
7337
- 'ASHRAE 169-2013-1A',
7338
- 'ASHRAE 169-2013-1B',
7339
- 'ASHRAE 169-2013-2A',
7340
- 'ASHRAE 169-2013-2B',
7341
- 'ASHRAE 169-2013-3A',
7342
- 'ASHRAE 169-2013-3B',
7343
- 'ASHRAE 169-2013-3C',
7344
- 'ASHRAE 169-2013-4A',
7345
- 'ASHRAE 169-2013-4B',
7346
- 'ASHRAE 169-2013-4C',
7347
- 'ASHRAE 169-2013-5A',
7348
- 'ASHRAE 169-2013-5B',
7349
- 'ASHRAE 169-2013-5C'
7350
- if thermal_zone.floorArea <= OpenStudio.convert(500.0, 'ft^2', 'm^2').get
7351
- energy_recovery = false
7352
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Energy recovery will not be modeled for the ERV serving #{thermal_zone.name}.")
7353
- end
7354
- end
7355
- end
7356
-
7357
- # Determine ERR and design basis when energy recovery is required
7358
- #
7359
- # enthalpy_recovery_ratio = nil will trigger an ERV with no effectiveness that only provides OA
7360
- enthalpy_recovery_ratio = nil
7361
- if energy_recovery
7362
- case template
7363
- when '90.1-2019'
7364
- search_criteria = {
7365
- 'template' => template,
7366
- 'climate_zone' => climate_zone,
7367
- 'under_8000_hours' => false,
7368
- 'nontransient_dwelling' => true
7369
- }
7370
- else
7371
- search_criteria = {
7372
- 'template' => template,
7373
- 'climate_zone' => climate_zone,
7374
- 'under_8000_hours' => false
7375
- }
7376
- end
7377
-
7378
- erv_enthalpy_recovery_ratio = model_find_object(standards_data['energy_recovery'], search_criteria)
7379
-
7380
- # Extract ERR from data lookup
7381
- if !erv_enthalpy_recovery_ratio.nil?
7382
- if erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio'].nil? & erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].nil?
7383
- # If not included in the data, an enthalpy
7384
- # recovery ratio (ERR) of 50% is used
7385
- enthalpy_recovery_ratio = 0.5
7386
- case climate_zone
7387
- when 'ASHRAE 169-2006-6B',
7388
- 'ASHRAE 169-2013-6B',
7389
- 'ASHRAE 169-2006-7A',
7390
- 'ASHRAE 169-2013-7A',
7391
- 'ASHRAE 169-2006-7B',
7392
- 'ASHRAE 169-2013-7B',
7393
- 'ASHRAE 169-2006-8A',
7394
- 'ASHRAE 169-2013-8A',
7395
- 'ASHRAE 169-2006-8B',
7396
- 'ASHRAE 169-2013-8B'
7397
- design_conditions = 'heating'
7398
- else
7399
- design_conditions = 'cooling'
7400
- end
7401
- else
7402
- design_conditions = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].downcase
7403
- enthalpy_recovery_ratio = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio']
7404
- end
7405
- end
7406
- end
7407
-
7408
- # Create fans
7409
- #
7410
- # Fan power:
7411
- # No energy recovery = 0.806 W/cfm
7412
- # Energy recovery = 0.934 W/cfm
7413
- supply_fan = create_fan_by_name(model,
7414
- 'ERV_Supply_Fan',
7415
- fan_name: "#{thermal_zone.name} ERV Supply Fan")
7416
- exhaust_fan = create_fan_by_name(model,
7417
- 'ERV_Supply_Fan',
7418
- fan_name: "#{thermal_zone.name} ERV Exhaust Fan")
7419
- supply_fan.setMotorEfficiency(0.48)
7420
- exhaust_fan.setMotorEfficiency(0.48)
7421
- supply_fan.setFanTotalEfficiency(0.303158)
7422
- exhaust_fan.setFanTotalEfficiency(0.303158)
7423
- if energy_recovery
7424
- supply_fan.setPressureRise(270.64755)
7425
- exhaust_fan.setPressureRise(270.64755)
7426
- else
7427
- supply_fan.setPressureRise(233.6875)
7428
- exhaust_fan.setPressureRise(233.6875)
7429
- end
7430
-
7431
- # Create ERV Controller
7432
- erv_controller = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilatorController.new(model)
7433
- erv_controller.setName("#{thermal_zone.name} ERV Controller")
7434
- erv_controller.setControlHighIndoorHumidityBasedonOutdoorHumidityRatio(false)
7435
-
7436
- # Create heat exchanger
7437
- heat_exchanger = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(model)
7438
- heat_exchanger.setName("#{thermal_zone.name} ERV HX")
7439
- heat_exchanger.setSupplyAirOutletTemperatureControl(false)
7440
- heat_exchanger.setHeatExchangerType('Rotary')
7441
- heat_exchanger.setEconomizerLockout(false)
7442
- heat_exchanger.setFrostControlType('ExhaustOnly')
7443
- heat_exchanger.setThresholdTemperature(-23.3)
7444
- heat_exchanger.setInitialDefrostTimeFraction(0.167)
7445
- heat_exchanger.setRateofDefrostTimeFractionIncrease(1.44)
7446
- heat_exchanger.setAvailabilitySchedule(model_add_schedule(model, 'Always On - No Design Day'))
7447
- heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency_enthalpy_recovery_ratio(heat_exchanger, enthalpy_recovery_ratio, design_conditions, climate_zone)
7448
-
7449
- erv = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator.new(model, heat_exchanger, supply_fan, exhaust_fan)
7450
- erv.setName("#{thermal_zone.name} ERV")
7451
-
7452
- erv.setController(erv_controller)
7453
- erv.addToThermalZone(thermal_zone)
7454
-
7455
- # Set OA requirements; Assumes a default of 55 cfm
7456
- if min_oa_flow_m3_per_s_per_m2.nil?
7457
- erv.setSupplyAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
7458
- erv.setExhaustAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
7459
- else
7460
- erv.setVentilationRateperUnitFloorArea(min_oa_flow_m3_per_s_per_m2)
7461
- end
7462
- erv.setVentilationRateperOccupant(0.0)
7463
-
7464
- # Ensure the ERV takes priority, so ventilation load is included when treated by other zonal systems
7465
- # From EnergyPlus I/O reference:
7466
- # "For situations where one or more equipment types has limited capacity or limited control capability, order the
7467
- # sequence so that the most controllable piece of equipment runs last. For example, with a dedicated outdoor air
7468
- # system (DOAS), the air terminal for the DOAS should be assigned Heating Sequence = 1 and Cooling Sequence = 1.
7469
- # Any other equipment should be assigned sequence 2 or higher so that it will see the net load after the DOAS air
7470
- # is added to the zone."
7471
- thermal_zone.setCoolingPriority(erv.to_ModelObject.get, 1)
7472
- thermal_zone.setHeatingPriority(erv.to_ModelObject.get, 1)
7473
-
7474
- return erv
7475
- end
7476
7469
  end
@@ -1341,6 +1341,11 @@ module OpenstudioStandards
1341
1341
 
1342
1342
  # Tell EnergyPlus to interpolate schedules to timestep so that it doesn't have to be done in this code
1343
1343
  # sch_day.setInterpolatetoTimestep(true)
1344
+ # if model.version < OpenStudio::VersionString.new('3.8.0')
1345
+ # day_sch.setInterpolatetoTimestep(true)
1346
+ # else
1347
+ # day_sch.setInterpolatetoTimestep('Average')
1348
+ # end
1344
1349
 
1345
1350
  return schedule_day
1346
1351
  end
@@ -2791,6 +2791,11 @@ class Standard
2791
2791
  day_sch = sch_ruleset.defaultDaySchedule
2792
2792
  day_sch.setName("#{schedule_name} Default")
2793
2793
  model_add_vals_to_sch(model, day_sch, sch_type, values)
2794
+ if model.version < OpenStudio::VersionString.new('3.8.0')
2795
+ day_sch.setInterpolatetoTimestep(false)
2796
+ else
2797
+ day_sch.setInterpolatetoTimestep('No')
2798
+ end
2794
2799
  end
2795
2800
 
2796
2801
  # Winter Design Day
@@ -2800,6 +2805,11 @@ class Standard
2800
2805
  day_sch = sch_ruleset.winterDesignDaySchedule
2801
2806
  day_sch.setName("#{schedule_name} Winter Design Day")
2802
2807
  model_add_vals_to_sch(model, day_sch, sch_type, values)
2808
+ if model.version < OpenStudio::VersionString.new('3.8.0')
2809
+ day_sch.setInterpolatetoTimestep(false)
2810
+ else
2811
+ day_sch.setInterpolatetoTimestep('No')
2812
+ end
2803
2813
  end
2804
2814
 
2805
2815
  # Summer Design Day
@@ -2809,6 +2819,11 @@ class Standard
2809
2819
  day_sch = sch_ruleset.summerDesignDaySchedule
2810
2820
  day_sch.setName("#{schedule_name} Summer Design Day")
2811
2821
  model_add_vals_to_sch(model, day_sch, sch_type, values)
2822
+ if model.version < OpenStudio::VersionString.new('3.8.0')
2823
+ day_sch.setInterpolatetoTimestep(false)
2824
+ else
2825
+ day_sch.setInterpolatetoTimestep('No')
2826
+ end
2812
2827
  end
2813
2828
 
2814
2829
  # Other days (weekdays, weekends, etc)
@@ -2827,6 +2842,11 @@ class Standard
2827
2842
  day_sch = sch_rule.daySchedule
2828
2843
  day_sch.setName("#{schedule_name} #{day_types} Day")
2829
2844
  model_add_vals_to_sch(model, day_sch, sch_type, values)
2845
+ if model.version < OpenStudio::VersionString.new('3.8.0')
2846
+ day_sch.setInterpolatetoTimestep(false)
2847
+ else
2848
+ day_sch.setInterpolatetoTimestep('No')
2849
+ end
2830
2850
 
2831
2851
  # Set the dates when the rule applies
2832
2852
  sch_rule.setStartDate(OpenStudio::Date.new(OpenStudio::MonthOfYear.new(start_date.month.to_i), start_date.day.to_i))
@@ -1816,19 +1816,19 @@ class NECB2011
1816
1816
  # Determine if space is heated or cooled via spacetype heating or cooling setpoints also checking if the space is
1817
1817
  # a plenum by checking if there is a hvac system associtated with it
1818
1818
  if sp_type_info['heating_setpoint_schedule'].nil?
1819
- heated = FALSE
1819
+ heated = false
1820
1820
  else
1821
- heated = TRUE
1821
+ heated = true
1822
1822
  end
1823
1823
  if sp_type_info['cooling_setpoint_schedule'].nil?
1824
- cooled = FALSE
1824
+ cooled = false
1825
1825
  else
1826
- cooled = TRUE
1826
+ cooled = true
1827
1827
  end
1828
1828
  if (sp_type_info['necb_hvac_system_selection_type'] == '- undefined -') || /undefined/.match(sp_type_info['necb_hvac_system_selection_type'])
1829
- not_plenum = FALSE
1829
+ not_plenum = false
1830
1830
  else
1831
- not_plenum = TRUE
1831
+ not_plenum = true
1832
1832
  end
1833
1833
  # If the spaces are heated or cooled and are not a plenum then continue
1834
1834
  if (heated || cooled) && not_plenum
@@ -224,10 +224,6 @@ class NECB2011
224
224
  qaqc = {}
225
225
  qaqc[:sql_data] = get_sql_tables_to_json(model)
226
226
  error_warning = []
227
- qaqc[:os_standards_revision] = OpenstudioStandards.git_revision
228
- qaqc[:os_standards_version] = OpenstudioStandards::VERSION
229
- qaqc[:openstudio_version] = os_version.strip
230
- qaqc[:energyplus_version] = eplus_version.strip
231
227
  # Store Building data.
232
228
  qaqc[:building] = {}
233
229
  qaqc[:building][:name] = model.building.get.name.get
@@ -541,7 +537,7 @@ class NECB2011
541
537
  constructions = []
542
538
  outdoor_subsurfaces.each { |surface| constructions << surface.construction.get }
543
539
  ext_const_base = Hash.new(0)
544
- constructions.each { |name| ext_const_base[name] += 1 }
540
+ constructions.each { |name| ext_const_base[name.to_Construction.get] += 1 }
545
541
  # iterate thought each construction and get store data
546
542
  ext_const_base.sort.each do |construction, count|
547
543
  construction_info = {}
@@ -558,7 +554,7 @@ class NECB2011
558
554
  constructions = []
559
555
  outdoor_surfaces.each { |surface| constructions << surface.construction.get }
560
556
  ext_const_base = Hash.new(0)
561
- constructions.each { |name| ext_const_base[name] += 1 }
557
+ constructions.each { |name| ext_const_base[name.to_Construction.get] += 1 }
562
558
  # iterate thought each construction and get store data
563
559
  ext_const_base.sort.each do |construction, count|
564
560
  construction_info = {}
@@ -575,7 +571,7 @@ class NECB2011
575
571
  constructions = []
576
572
  ground_surfaces.each { |surface| constructions << surface.construction.get }
577
573
  ext_const_base = Hash.new(0)
578
- constructions.each { |name| ext_const_base[name] += 1 }
574
+ constructions.each { |name| ext_const_base[name.to_Construction.get] += 1 }
579
575
  # iterate thought each construction and get store data
580
576
  ext_const_base.sort.each do |construction, count|
581
577
  construction_info = {}
@@ -112,7 +112,7 @@ class BTAPDatapoint
112
112
  epw_file = @options[:epw_file]
113
113
  epw_dir = nil
114
114
  local_epw_file_path = File.join(input_folder_cache,@options[:epw_file])
115
- epw_dir = input_folder_cache if File.exists? local_epw_file_path
115
+ epw_dir = input_folder_cache if File.exist? local_epw_file_path
116
116
  weather_file_path = OpenstudioStandards::Weather.get_standards_weather_file_path(epw_file)
117
117
  OpenstudioStandards::Weather.model_set_building_location(model, weather_file_path: weather_file_path)
118
118
  else
@@ -193,6 +193,11 @@ Standard.class_eval do
193
193
  sim_control.setDoHVACSizingSimulationforSizingPeriods(true)
194
194
  sim_control.setMaximumNumberofHVACSizingSimulationPasses(1)
195
195
  end
196
+ if model.version >= OpenStudio::VersionString.new('3.8.0')
197
+ sim_control.setDoZoneSizingCalculation(true)
198
+ sim_control.setDoSystemSizingCalculation(true)
199
+ sim_control.setDoPlantSizingCalculation(true)
200
+ end
196
201
 
197
202
  # check that all zones have surfaces.
198
203
  raise 'Error: Sizing Run Failed. Thermal Zones with no surfaces exist.' unless model_do_all_zones_have_surfaces?(model)
@@ -13,5 +13,5 @@ module OpenstudioStandards
13
13
  end
14
14
  return 'git-not-found-on-this-system'
15
15
  end
16
- VERSION = '0.6.0.rc1'.freeze
16
+ VERSION = '0.6.0'.freeze
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-standards
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0.rc1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Adams
@@ -39,274 +39,288 @@ authors:
39
39
  autorequire:
40
40
  bindir: bin
41
41
  cert_chain: []
42
- date: 2024-04-12 00:00:00.000000000 Z
42
+ date: 2024-05-10 00:00:00.000000000 Z
43
43
  dependencies:
44
44
  - !ruby/object:Gem::Dependency
45
- name: minitest-reporters
45
+ name: bundler
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - '='
48
+ - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: 1.6.1
50
+ version: 2.4.10
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - '='
55
+ - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: 1.6.1
57
+ version: 2.4.10
58
58
  - !ruby/object:Gem::Dependency
59
- name: minitest-parallel_fork
59
+ name: nokogiri
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - ">="
62
+ - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: '0'
64
+ version: '1.16'
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - ">="
69
+ - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '0'
71
+ version: '1.16'
72
72
  - !ruby/object:Gem::Dependency
73
- name: ruby-progressbar
73
+ name: parallel_tests
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ">="
76
+ - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: '0'
78
+ version: 3.7.0
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - ">="
83
+ - - "~>"
84
84
  - !ruby/object:Gem::Version
85
- version: '0'
85
+ version: 3.7.0
86
86
  - !ruby/object:Gem::Dependency
87
- name: parallel_tests
87
+ name: aes
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
90
+ - - '='
91
91
  - !ruby/object:Gem::Version
92
- version: 3.7.0
92
+ version: 0.5.0
93
93
  type: :development
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - "~>"
97
+ - - '='
98
98
  - !ruby/object:Gem::Version
99
- version: 3.7.0
99
+ version: 0.5.0
100
100
  - !ruby/object:Gem::Dependency
101
- name: nokogiri
101
+ name: codecov
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - "~>"
104
+ - - ">="
105
105
  - !ruby/object:Gem::Version
106
- version: '1.11'
106
+ version: '0'
107
107
  type: :development
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - "~>"
111
+ - - ">="
112
112
  - !ruby/object:Gem::Version
113
- version: '1.11'
113
+ version: '0'
114
114
  - !ruby/object:Gem::Dependency
115
- name: bundler
115
+ name: google_drive
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 2.1.4
120
+ version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
125
+ - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: 2.1.4
127
+ version: '0'
128
128
  - !ruby/object:Gem::Dependency
129
- name: rake
129
+ name: minitest
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: 12.3.1
134
+ version: 5.14.0
135
135
  type: :development
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: 12.3.1
141
+ version: 5.14.0
142
142
  - !ruby/object:Gem::Dependency
143
- name: yard
143
+ name: minitest-ci
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - "~>"
146
+ - - ">="
147
147
  - !ruby/object:Gem::Version
148
- version: '0.9'
148
+ version: '0'
149
149
  type: :development
150
150
  prerelease: false
151
151
  version_requirements: !ruby/object:Gem::Requirement
152
152
  requirements:
153
- - - "~>"
153
+ - - ">="
154
154
  - !ruby/object:Gem::Version
155
- version: '0.9'
155
+ version: '0'
156
156
  - !ruby/object:Gem::Dependency
157
- name: rubocop
157
+ name: minitest-parallel_fork
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
- - - '='
160
+ - - ">="
161
161
  - !ruby/object:Gem::Version
162
- version: 0.68.1
162
+ version: '0'
163
163
  type: :development
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - '='
167
+ - - ">="
168
168
  - !ruby/object:Gem::Version
169
- version: 0.68.1
169
+ version: '0'
170
170
  - !ruby/object:Gem::Dependency
171
- name: rubocop-checkstyle_formatter
171
+ name: minitest-reporters
172
172
  requirement: !ruby/object:Gem::Requirement
173
173
  requirements:
174
174
  - - "~>"
175
175
  - !ruby/object:Gem::Version
176
- version: 0.1.1
176
+ version: 1.4.2
177
177
  type: :development
178
178
  prerelease: false
179
179
  version_requirements: !ruby/object:Gem::Requirement
180
180
  requirements:
181
181
  - - "~>"
182
182
  - !ruby/object:Gem::Version
183
- version: 0.1.1
183
+ version: 1.4.2
184
184
  - !ruby/object:Gem::Dependency
185
- name: minitest-ci
185
+ name: openstudio-api-stubs
186
186
  requirement: !ruby/object:Gem::Requirement
187
187
  requirements:
188
- - - "<="
188
+ - - ">="
189
189
  - !ruby/object:Gem::Version
190
- version: 5.10.3
190
+ version: '0'
191
191
  type: :development
192
192
  prerelease: false
193
193
  version_requirements: !ruby/object:Gem::Requirement
194
194
  requirements:
195
- - - "<="
195
+ - - ">="
196
196
  - !ruby/object:Gem::Version
197
- version: 5.10.3
197
+ version: '0'
198
198
  - !ruby/object:Gem::Dependency
199
- name: rubyXL
199
+ name: rake
200
200
  requirement: !ruby/object:Gem::Requirement
201
201
  requirements:
202
202
  - - "~>"
203
203
  - !ruby/object:Gem::Version
204
- version: '3.4'
204
+ version: '13.0'
205
205
  type: :development
206
206
  prerelease: false
207
207
  version_requirements: !ruby/object:Gem::Requirement
208
208
  requirements:
209
209
  - - "~>"
210
210
  - !ruby/object:Gem::Version
211
- version: '3.4'
211
+ version: '13.0'
212
212
  - !ruby/object:Gem::Dependency
213
- name: google_drive
213
+ name: rest-client
214
214
  requirement: !ruby/object:Gem::Requirement
215
215
  requirements:
216
- - - ">="
216
+ - - "~>"
217
217
  - !ruby/object:Gem::Version
218
- version: '0'
218
+ version: 2.0.2
219
219
  type: :development
220
220
  prerelease: false
221
221
  version_requirements: !ruby/object:Gem::Requirement
222
222
  requirements:
223
- - - ">="
223
+ - - "~>"
224
224
  - !ruby/object:Gem::Version
225
- version: '0'
225
+ version: 2.0.2
226
226
  - !ruby/object:Gem::Dependency
227
- name: simplecov-html
227
+ name: roo
228
228
  requirement: !ruby/object:Gem::Requirement
229
229
  requirements:
230
- - - "<"
230
+ - - '='
231
231
  - !ruby/object:Gem::Version
232
- version: 0.11.0
232
+ version: 2.7.1
233
233
  type: :development
234
234
  prerelease: false
235
235
  version_requirements: !ruby/object:Gem::Requirement
236
236
  requirements:
237
- - - "<"
237
+ - - '='
238
238
  - !ruby/object:Gem::Version
239
- version: 0.11.0
239
+ version: 2.7.1
240
240
  - !ruby/object:Gem::Dependency
241
- name: codecov
241
+ name: rubocop
242
242
  requirement: !ruby/object:Gem::Requirement
243
243
  requirements:
244
- - - ">="
244
+ - - '='
245
245
  - !ruby/object:Gem::Version
246
- version: '0'
246
+ version: '1.50'
247
247
  type: :development
248
248
  prerelease: false
249
249
  version_requirements: !ruby/object:Gem::Requirement
250
250
  requirements:
251
- - - ">="
251
+ - - '='
252
252
  - !ruby/object:Gem::Version
253
- version: '0'
253
+ version: '1.50'
254
254
  - !ruby/object:Gem::Dependency
255
- name: rest-client
255
+ name: rubocop-checkstyle_formatter
256
256
  requirement: !ruby/object:Gem::Requirement
257
257
  requirements:
258
- - - '='
258
+ - - "~>"
259
259
  - !ruby/object:Gem::Version
260
- version: 2.0.2
260
+ version: 0.6.0
261
261
  type: :development
262
262
  prerelease: false
263
263
  version_requirements: !ruby/object:Gem::Requirement
264
264
  requirements:
265
- - - '='
265
+ - - "~>"
266
266
  - !ruby/object:Gem::Version
267
- version: 2.0.2
267
+ version: 0.6.0
268
268
  - !ruby/object:Gem::Dependency
269
- name: aes
269
+ name: ruby-progressbar
270
270
  requirement: !ruby/object:Gem::Requirement
271
271
  requirements:
272
- - - '='
272
+ - - ">="
273
273
  - !ruby/object:Gem::Version
274
- version: 0.5.0
274
+ version: '0'
275
275
  type: :development
276
276
  prerelease: false
277
277
  version_requirements: !ruby/object:Gem::Requirement
278
278
  requirements:
279
- - - '='
279
+ - - ">="
280
280
  - !ruby/object:Gem::Version
281
- version: 0.5.0
281
+ version: '0'
282
282
  - !ruby/object:Gem::Dependency
283
- name: roo
283
+ name: rubyXL
284
+ requirement: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - "~>"
287
+ - !ruby/object:Gem::Version
288
+ version: '3.4'
289
+ type: :development
290
+ prerelease: false
291
+ version_requirements: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - "~>"
294
+ - !ruby/object:Gem::Version
295
+ version: '3.4'
296
+ - !ruby/object:Gem::Dependency
297
+ name: simplecov
284
298
  requirement: !ruby/object:Gem::Requirement
285
299
  requirements:
286
300
  - - '='
287
301
  - !ruby/object:Gem::Version
288
- version: 2.7.1
302
+ version: 0.22.0
289
303
  type: :development
290
304
  prerelease: false
291
305
  version_requirements: !ruby/object:Gem::Requirement
292
306
  requirements:
293
307
  - - '='
294
308
  - !ruby/object:Gem::Version
295
- version: 2.7.1
309
+ version: 0.22.0
296
310
  - !ruby/object:Gem::Dependency
297
- name: openstudio-api-stubs
311
+ name: yard
298
312
  requirement: !ruby/object:Gem::Requirement
299
313
  requirements:
300
- - - ">="
314
+ - - "~>"
301
315
  - !ruby/object:Gem::Version
302
- version: '0'
316
+ version: '0.9'
303
317
  type: :development
304
318
  prerelease: false
305
319
  version_requirements: !ruby/object:Gem::Requirement
306
320
  requirements:
307
- - - ">="
321
+ - - "~>"
308
322
  - !ruby/object:Gem::Version
309
- version: '0'
323
+ version: '0.9'
310
324
  - !ruby/object:Gem::Dependency
311
325
  name: tbd
312
326
  requirement: !ruby/object:Gem::Requirement
@@ -640,7 +654,6 @@ files:
640
654
  - data/geometry/DOERefWarehouse.json
641
655
  - data/geometry/DOERefWarehouse.osm
642
656
  - data/inventory/thermal_bridging.csv
643
- - data/standards/OpenStudio_Standards-deer-comstock.xlsx
644
657
  - data/standards/exclude_list.csv
645
658
  - data/standards/export_OpenStudio_libraries.rb
646
659
  - data/standards/legacy_dd_results.csv
@@ -650,7 +663,6 @@ files:
650
663
  - data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv
651
664
  - data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1space_types.csv
652
665
  - data/standards/metadata_units_OpenStudio_Standards-deer-ALL-comstockspace_types.csv
653
- - data/standards/openstudio_standards_duplicates_log.csv
654
666
  - data/standards/templates_to_climate_zones.json
655
667
  - data/standards/test_performance_expected_dd_results.csv
656
668
  - data/weather/ARCATA_725945_CZ2010.ddy
@@ -2516,7 +2528,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2516
2528
  - !ruby/object:Gem::Version
2517
2529
  version: 1.3.6
2518
2530
  requirements: []
2519
- rubygems_version: 3.1.4
2531
+ rubygems_version: 3.4.10
2520
2532
  signing_key:
2521
2533
  specification_version: 4
2522
2534
  summary: Creates OpenStudio models of typical buildings, creates standard baselines
@@ -1,5 +0,0 @@
1
- Spreadsheet Name,Worksheet Name,Object Index in Worksheet,Similarity of Duplicate,Duplicate Object
2
- OpenStudio_Standards-ashrae_90_1,refrigerated_cases,38,different,90.1-2004|Any|Service Deli Cases|
3
- OpenStudio_Standards-ashrae_90_1,refrigerated_cases,80,different,90.1-2007|Any|Service Deli Cases|
4
- OpenStudio_Standards-ashrae_90_1,refrigerated_cases,122,different,90.1-2010|Any|Service Deli Cases|
5
- OpenStudio_Standards-ashrae_90_1,refrigerated_cases,164,different,90.1-2013|Any|Service Deli Cases|