openstudio-extension 0.5.0 → 0.6.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e410744afb54a4a4c19ee59dd2d7a9edd77da75d67df9968f0ed2e0a304f0f7
4
- data.tar.gz: 3949d1e1bb9a929b251e473aac854d50abff6da4800be4b10318f786b0c5c082
3
+ metadata.gz: 523a398338a5d93b39e33c434d2d23da38bf498a3f49c98fd761782921dc2d8d
4
+ data.tar.gz: 4f5d6547b2473c213182e17ee1367b97b1c9096bfbf7b887c1fdeaaab39ed311
5
5
  SHA512:
6
- metadata.gz: 82b88a5b66d29367fca57cb38228ccf7f782a798b98e09a220c11eb6d7bfe6e959a947e4a44f97fd391a7eec123fb37c1894e7dfd04803108fca75fd02a0bccb
7
- data.tar.gz: 451ea32b090a21701eda6df859714bb213e212c2fdcdab086de7c51dd71031e9eaab493b04df671eccc9c01483408f40595127246997c91e810e0b1d3f4b3847
6
+ metadata.gz: f9b8c5aef57f50f23433781f7415287fbbe07558e97a3b897fd0fee2b67fcf826f9b72221db2c05b36b9dddeb912f48db3e175b5219ae1ac366af52ee2dfcb2e
7
+ data.tar.gz: 93744282520e2245f8ea6d6ff8e10364cbfbe414f0cac8e6c6f039d79db5cf5bfae970ca59efa31ed7cc3007833686438ac73b6936fed97dd222a009bf4b061e
data/CHANGELOG.md CHANGED
@@ -1,16 +1,26 @@
1
1
  # OpenStudio Extension Gem
2
2
 
3
+ ## Version 0.6.0
4
+
5
+ * Fixed [#150]( https://github.com/NREL/openstudio-extension-gem/pull/150 ), Fixed Outpatient DressingRoom name
6
+ * Adding in new DOE templates `ComStock 90.1-2016` and `ComStock 90.1-2019`
7
+ * Adding in new DOE Building Types `Courthouse` and `College`
8
+ * Upgrade developer dependency to openstudio-standards gem to `~> 0.2.17`
9
+
10
+ ## Version 0.5.1
11
+
12
+ * Fix adjancent surface matching
13
+
3
14
  ## Version 0.5.0
4
15
 
5
16
  * Update OpenStudio Workflow Gem to 2.3.0 (support for epJSON)
6
-
7
- - Fixed [#133]( https://github.com/NREL/openstudio-extension-gem/pull/133 ), cleanup readme and rework BCL tasks
8
- - Fixed [#135]( https://github.com/NREL/openstudio-extension-gem/pull/135 ), Intersect tests 072021
9
- - Fixed [#136]( https://github.com/NREL/openstudio-extension-gem/pull/136 ), Osm from haystack
10
- - Fixed [#137]( https://github.com/NREL/openstudio-extension-gem/issues/137 ), Edge case error in hospital bar
11
- - Fixed [#138]( https://github.com/NREL/openstudio-extension-gem/issues/138 ), os_lib_model_generation does not assign SWH type correctly
12
- - Fixed [#139]( https://github.com/NREL/openstudio-extension-gem/pull/139 ), fix swh_src assignment operators
13
- - Fixed [#142]( https://github.com/NREL/openstudio-extension-gem/pull/142 ), added arg for hoo_var_method and updated test to use it
17
+ * Fixed [#133]( https://github.com/NREL/openstudio-extension-gem/pull/133 ), cleanup readme and rework BCL tasks
18
+ * Fixed [#135]( https://github.com/NREL/openstudio-extension-gem/pull/135 ), Intersect tests 072021
19
+ * Fixed [#136]( https://github.com/NREL/openstudio-extension-gem/pull/136 ), Osm from haystack
20
+ * Fixed [#137]( https://github.com/NREL/openstudio-extension-gem/issues/137 ), Edge case error in hospital bar
21
+ * Fixed [#138]( https://github.com/NREL/openstudio-extension-gem/issues/138 ), os_lib_model_generation does not assign SWH type correctly
22
+ * Fixed [#139]( https://github.com/NREL/openstudio-extension-gem/pull/139 ), fix swh_src assignment operators
23
+ * Fixed [#142]( https://github.com/NREL/openstudio-extension-gem/pull/142 ), added arg for hoo_var_method and updated test to use it
14
24
 
15
25
  ## Version 0.4.4
16
26
 
data/Gemfile CHANGED
@@ -6,3 +6,5 @@ source 'http://rubygems.org'
6
6
  # gem 'openstudio-standards', github: 'NREL/openstudio-standards', branch: 'fix/901_2016_2019_properties' # for os_lib unit tests
7
7
 
8
8
  gemspec
9
+
10
+ #gem 'openstudio-standards', '= 0.2.17.rc1', :github => 'NREL/openstudio-standards', :ref => '3.5.0_changes'
data/Jenkinsfile CHANGED
@@ -1,6 +1,6 @@
1
1
  //Jenkins pipelines are stored in shared libaries. Please see: https://github.com/NREL/cbci_jenkins_libs
2
2
 
3
- @Library('cbci_shared_libs') _
3
+ @Library('cbci_shared_libs@3.5.0-alpha') _
4
4
 
5
5
  // Build for PR to develop branch only.
6
6
  if ((env.CHANGE_ID) && (env.CHANGE_TARGET) ) { // check if set
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
data/README.md CHANGED
@@ -85,6 +85,9 @@ export RUBYLIB=/Applications/OpenStudio-3.1.0/Ruby
85
85
 
86
86
  |OpenStudio Extension Gem|OpenStudio|Ruby|
87
87
  |:--------------:|:----------:|:--------:|
88
+ | 0.6.0 | 3.5 | 2.7 |
89
+ | 0.5.1 | 3.4 | 2.7 |
90
+ | 0.5.1 | 3.3 | 2.7 |
88
91
  | 0.4.0 - 0.4.4 | 3.2 | 2.7 |
89
92
  | 0.3.0 - 0.3.2 | 3.1 | 2.5 |
90
93
  | 0.2.0 - 0.2.6 | 3.0 | 2.5 |
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  ########################################################################################################################
2
- # openstudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
2
+ # openstudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
3
3
  #
4
4
  # Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
5
5
  # following conditions are met:
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,6 +1,6 @@
1
1
  <%
2
2
  # *******************************************************************************
3
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
4
4
  # All rights reserved.
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
@@ -1,4 +1,4 @@
1
1
  /* @preserve
2
- * OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
2
+ * OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
3
3
  * Use of this source code is governed by a BSD-style license that can be found at openstudio.net/license.
4
4
  */
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
data/lib/change_log.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -85,7 +85,7 @@ module OsLib_QAQC
85
85
  if use_old_gem_code
86
86
  climate_zone = @model.get_building_climate_zone_and_building_type['climate_zone']
87
87
  else
88
- climate_zone = std.model_get_building_climate_zone_and_building_type(@model)['climate_zone']
88
+ climate_zone = std.model_get_building_properties(@model)['climate_zone']
89
89
  end
90
90
 
91
91
  if use_old_gem_code
@@ -286,10 +286,10 @@ module OsLib_QAQC
286
286
  # DX Cooling Coils (Single Speed)
287
287
  @model.getCoilCoolingDXSingleSpeeds.each do |equip|
288
288
  # Get the design coil capacity
289
- if equip.ratedTotalCoolingCapacity.is_initialized
290
- dsn_pwr = equip.ratedTotalCoolingCapacity.get
291
- elsif equip.autosizedRatedTotalCoolingCapacity.is_initialized
292
- dsn_pwr = equip.autosizedRatedTotalCoolingCapacity.get
289
+ if equip.grossRatedTotalCoolingCapacity.is_initialized
290
+ dsn_pwr = equip.grossRatedTotalCoolingCapacity.get
291
+ elsif equip.autosizedGrossRatedTotalCoolingCapacity.is_initialized
292
+ dsn_pwr = equip.autosizedGrossRatedTotalCoolingCapacity.get
293
293
  else
294
294
  check_elems << OpenStudio::Attribute.new('flag', "Could not determine capacity for #{equip.name}, cannot check part load ratios.")
295
295
  next
@@ -821,7 +821,7 @@ module OsLib_HVAC
821
821
  # create air loop fan
822
822
  if options['primaryHVAC']['fan'] == 'Variable'
823
823
  # create variable speed fan and set system sizing accordingly
824
- sizing_system.setMinimumSystemAirFlowRatio(0.3) # DCV
824
+ sizing_system.setCentralHeatingMaximumSystemAirFlowRatio(0.3) # DCV
825
825
  # variable speed fan
826
826
  fan = OpenStudio::Model::FanVariableVolume.new(model, model.alwaysOnDiscreteSchedule)
827
827
  fan.setFanEfficiency(0.69)
@@ -832,7 +832,7 @@ module OsLib_HVAC
832
832
  fan.setMotorInAirstreamFraction(1.0)
833
833
  air_loop_comps << fan
834
834
  else
835
- sizing_system.setMinimumSystemAirFlowRatio(1.0) # No DCV
835
+ sizing_system.setCentralHeatingMaximumSystemAirFlowRatio(1.0) # No DCV
836
836
  # constant speed fan
837
837
  fan = OpenStudio::Model::FanConstantVolume.new(model, model.alwaysOnDiscreteSchedule)
838
838
  fan.setFanEfficiency(0.6)
@@ -1084,13 +1084,13 @@ module OsLib_HVAC
1084
1084
  sizing_system.setTypeofLoadtoSizeOn('Sensible') # PSZ
1085
1085
  sizing_system.setAllOutdoorAirinCooling(false) # PSZ
1086
1086
  sizing_system.setAllOutdoorAirinHeating(false) # PSZ
1087
- sizing_system.setMinimumSystemAirFlowRatio(1.0) # Constant volume fan
1087
+ sizing_system.setCentralHeatingMaximumSystemAirFlowRatio(1.0) # Constant volume fan
1088
1088
  air_loop_comps = []
1089
1089
  # set availability schedule (HVAC operation schedule)
1090
1090
  airloop_secondary.setAvailabilitySchedule(options['hvac_schedule'])
1091
1091
  if options['secondaryHVAC']['fan'] == 'Variable'
1092
1092
  # create variable speed fan and set system sizing accordingly
1093
- sizing_system.setMinimumSystemAirFlowRatio(0.3) # DCV
1093
+ sizing_system.setCentralHeatingMaximumSystemAirFlowRatio(0.3) # DCV
1094
1094
  # variable speed fan
1095
1095
  fan = OpenStudio::Model::FanVariableVolume.new(model, model.alwaysOnDiscreteSchedule)
1096
1096
  fan.setFanEfficiency(0.69)
@@ -1101,7 +1101,7 @@ module OsLib_HVAC
1101
1101
  fan.setMotorInAirstreamFraction(1.0)
1102
1102
  air_loop_comps << fan
1103
1103
  else
1104
- sizing_system.setMinimumSystemAirFlowRatio(1.0) # No DCV
1104
+ sizing_system.setCentralHeatingMaximumSystemAirFlowRatio(1.0) # No DCV
1105
1105
  # constant speed fan
1106
1106
  fan = OpenStudio::Model::FanConstantVolume.new(model, model.alwaysOnDiscreteSchedule)
1107
1107
  fan.setFanEfficiency(0.6)
@@ -1352,36 +1352,58 @@ module OsLib_HVAC
1352
1352
  # create cooling coil and connect to heat pump loop
1353
1353
  cooling_coil = OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit.new(model)
1354
1354
  cooling_coil.setRatedCoolingCoefficientofPerformance(6.45)
1355
- cooling_coil.setTotalCoolingCapacityCoefficient1(-9.149069561)
1356
- cooling_coil.setTotalCoolingCapacityCoefficient2(10.87814026)
1357
- cooling_coil.setTotalCoolingCapacityCoefficient3(-1.718780157)
1358
- cooling_coil.setTotalCoolingCapacityCoefficient4(0.746414818)
1359
- cooling_coil.setTotalCoolingCapacityCoefficient5(0.0)
1360
- cooling_coil.setSensibleCoolingCapacityCoefficient1(-5.462690012)
1361
- cooling_coil.setSensibleCoolingCapacityCoefficient2(17.95968138)
1362
- cooling_coil.setSensibleCoolingCapacityCoefficient3(-11.87818402)
1363
- cooling_coil.setSensibleCoolingCapacityCoefficient4(-0.980163419)
1364
- cooling_coil.setSensibleCoolingCapacityCoefficient5(0.767285761)
1365
- cooling_coil.setSensibleCoolingCapacityCoefficient6(0.0)
1366
- cooling_coil.setCoolingPowerConsumptionCoefficient1(-3.205409884)
1367
- cooling_coil.setCoolingPowerConsumptionCoefficient2(-0.976409399)
1368
- cooling_coil.setCoolingPowerConsumptionCoefficient3(3.97892546)
1369
- cooling_coil.setCoolingPowerConsumptionCoefficient4(0.938181818)
1370
- cooling_coil.setCoolingPowerConsumptionCoefficient5(0.0)
1355
+
1356
+ curve = OpenStudio::Model::CurveQuadLinear.new(model)
1357
+ curve.setName("#{cooling_coil.name}_tot_clg_cap_curve")
1358
+ curve.setCoefficient1Constant(-9.149069561)
1359
+ curve.setCoefficient2w(10.87814026)
1360
+ curve.setCoefficient3x(-1.718780157)
1361
+ curve.setCoefficient4y(0.746414818)
1362
+ curve.setCoefficient5z(0.0)
1363
+ cooling_coil.setTotalCoolingCapacityCurve(curve)
1364
+
1365
+ curve = OpenStudio::Model::CurveQuintLinear.new(model)
1366
+ curve.setName("#{cooling_coil.name}_sens_clg_cap_curve")
1367
+ curve.setCoefficient1Constant(-5.462690012)
1368
+ curve.setCoefficient2v(17.95968138)
1369
+ curve.setCoefficient3w(-11.87818402)
1370
+ curve.setCoefficient4x(-0.980163419)
1371
+ curve.setCoefficient5y(0.767285761)
1372
+ curve.setCoefficient6z(0.0)
1373
+ cooling_coil.setSensibleCoolingCapacityCurve(curve)
1374
+
1375
+ curve = OpenStudio::Model::CurveQuadLinear.new(model)
1376
+ curve.setName("#{cooling_coil.name}_clg_pwr_consu_curve")
1377
+ curve.setCoefficient1Constant(-3.205409884)
1378
+ curve.setCoefficient2w(-0.976409399)
1379
+ curve.setCoefficient3x(3.97892546)
1380
+ curve.setCoefficient4y(0.938181818)
1381
+ curve.setCoefficient5z(0.0)
1382
+ cooling_coil.setCoolingPowerConsumptionCurve(curve)
1383
+
1371
1384
  options['heat_pump_loop'].addDemandBranchForComponent(cooling_coil)
1372
1385
  # create heating coil and connect to heat pump loop
1373
1386
  heating_coil = OpenStudio::Model::CoilHeatingWaterToAirHeatPumpEquationFit.new(model)
1374
1387
  heating_coil.setRatedHeatingCoefficientofPerformance(4.0)
1375
- heating_coil.setHeatingCapacityCoefficient1(-1.361311959)
1376
- heating_coil.setHeatingCapacityCoefficient2(-2.471798046)
1377
- heating_coil.setHeatingCapacityCoefficient3(4.173164514)
1378
- heating_coil.setHeatingCapacityCoefficient4(0.640757401)
1379
- heating_coil.setHeatingCapacityCoefficient5(0.0)
1380
- heating_coil.setHeatingPowerConsumptionCoefficient1(-2.176941116)
1381
- heating_coil.setHeatingPowerConsumptionCoefficient2(0.832114286)
1382
- heating_coil.setHeatingPowerConsumptionCoefficient3(1.570743399)
1383
- heating_coil.setHeatingPowerConsumptionCoefficient4(0.690793651)
1384
- heating_coil.setHeatingPowerConsumptionCoefficient5(0.0)
1388
+
1389
+ curve = OpenStudio::Model::CurveQuadLinear.new(model)
1390
+ curve.setName("#{heating_coil.name}_htg_cap_curve")
1391
+ curve.setCoefficient1Constant(-1.361311959)
1392
+ curve.setCoefficient2w(-2.471798046)
1393
+ curve.setCoefficient3x(4.173164514)
1394
+ curve.setCoefficient4y(0.640757401)
1395
+ curve.setCoefficient5z(0.0)
1396
+ heating_coil.setHeatingCapacityCurve(curve)
1397
+
1398
+ curve = OpenStudio::Model::CurveQuadLinear.new(model)
1399
+ curve.setName("#{heating_coil.name}_htg_pwr_consu_curve")
1400
+ curve.setCoefficient1Constant(-2.176941116)
1401
+ curve.setCoefficient2w(0.832114286)
1402
+ curve.setCoefficient3x(1.570743399)
1403
+ curve.setCoefficient4y(0.690793651)
1404
+ curve.setCoefficient5z(0.0)
1405
+ heating_coil.setHeatingPowerConsumptionCurve(curve)
1406
+
1385
1407
  options['heat_pump_loop'].addDemandBranchForComponent(heating_coil)
1386
1408
  # create supplemental heating coil
1387
1409
  supplemental_heating_coil = OpenStudio::Model::CoilHeatingElectric.new(model, model.alwaysOnDiscreteSchedule)
@@ -89,6 +89,8 @@ module OsLib_ModelGeneration
89
89
  array << 'LargeDataCenterHighITE'
90
90
  array << 'SmallDataCenterLowITE'
91
91
  array << 'SmallDataCenterHighITE'
92
+ array << 'Courthouse'
93
+ array << 'College'
92
94
 
93
95
  return array
94
96
  end
@@ -169,6 +171,8 @@ module OsLib_ModelGeneration
169
171
  array << 'ComStock 90.1-2007'
170
172
  array << 'ComStock 90.1-2010'
171
173
  array << 'ComStock 90.1-2013'
174
+ array << 'ComStock 90.1-2016'
175
+ array << 'ComStock 90.1-2019'
172
176
  if extended
173
177
  # array << '189.1-2009' # if turn this on need to update space_type_array for RetailStripmall
174
178
  array << 'NREL ZNE Ready 2017'
@@ -375,6 +379,10 @@ module OsLib_ModelGeneration
375
379
  hash['SmallDataCenterLowITE'] = { aspect_ratio: 1.5, wwr: 0.0, typical_story: 14.0, perim_mult: 1.0 }
376
380
  hash['SmallDataCenterHighITE'] = { aspect_ratio: 1.5, wwr: 0.0, typical_story: 14.0, perim_mult: 1.0 }
377
381
 
382
+ # Add Courthouse and Education
383
+ hash['Courthouse'] = { aspect_ratio: 2.06, wwr: 0.18, typical_story: 16.0, perim_mult: 1.0 }
384
+ hash['College'] = { aspect_ratio: 2.5, wwr: 0.037, typical_story: 13.0, perim_mult: 1.0 }
385
+
378
386
  # DEER Prototypes
379
387
  hash['Asm'] = { aspect_ratio: 1.0, wwr: 0.19, typical_story: 15.0 }
380
388
  hash['ECC'] = { aspect_ratio: 4.0, wwr: 0.25, typical_story: 13.0 }
@@ -646,7 +654,7 @@ module OsLib_ModelGeneration
646
654
  hash['Cafe'] = { ratio: 0.0103, space_type_gen: true, default: false }
647
655
  hash['CleanWork'] = { ratio: 0.0071, space_type_gen: true, default: false }
648
656
  hash['Conference'] = { ratio: 0.0082, space_type_gen: true, default: false }
649
- hash['DresingRoom'] = { ratio: 0.0021, space_type_gen: true, default: false }
657
+ hash['DressingRoom'] = { ratio: 0.0021, space_type_gen: true, default: false }
650
658
  hash['Elec/MechRoom'] = { ratio: 0.0109, space_type_gen: true, default: false }
651
659
  hash['ElevatorPumpRoom'] = { ratio: 0.0022, space_type_gen: true, default: false }
652
660
  hash['Exam'] = { ratio: 0.1029, space_type_gen: true, default: true }
@@ -699,6 +707,44 @@ module OsLib_ModelGeneration
699
707
  hash['ComputerRoom'] = { ratio: 1.0, space_type_gen: true, default: true }
700
708
  elsif building_type == 'SmallDataCenterLowITE'
701
709
  hash['ComputerRoom'] = { ratio: 1.0, space_type_gen: true, default: true }
710
+ elsif building_type == 'Courthouse'
711
+ hash['Courthouse - Break Room'] = { ratio: 0.0067, space_type_gen: true, default: false }
712
+ hash['Courthouse - Cell'] = { ratio: 0.0731, space_type_gen: true, default: false }
713
+ hash['Courthouse - Conference'] = { ratio: 0.0203, space_type_gen: true, default: false }
714
+ hash['Courthouse - Corridor'] = { ratio: 0.0829, space_type_gen: true, default: false }
715
+ hash['Courthouse - Courtroom'] = { ratio: 0.1137, space_type_gen: true, default: false }
716
+ hash['Courthouse - Courtroom Waiting'] = { ratio: 0.051, space_type_gen: true, default: false }
717
+ hash['Courthouse - Elevator Lobby'] = { ratio: 0.0085, space_type_gen: true, default: false }
718
+ hash['Courthouse - Elevator Shaft'] = { ratio: 0.0047, space_type_gen: true, default: false }
719
+ hash['Courthouse - Entrance Lobby'] = { ratio: 0.0299, space_type_gen: true, default: false }
720
+ hash['Courthouse - Judges Chamber'] = { ratio: 0.0261, space_type_gen: true, default: false }
721
+ hash['Courthouse - Jury Assembly'] = { ratio: 0.0355, space_type_gen: true, default: false }
722
+ hash['Courthouse - Jury Deliberation'] = { ratio: 0.0133, space_type_gen: true, default: false }
723
+ hash['Courthouse - Library'] = { ratio: 0.0302, space_type_gen: true, default: false }
724
+ hash['Courthouse - Office'] = { ratio: 0.1930, space_type_gen: true, default: true }
725
+ hash['Courthouse - Parking'] = { ratio: 0.1083, space_type_gen: true, default: false }
726
+ hash['Courthouse - Restrooms'] = { ratio: 0.04, space_type_gen: true, default: false }
727
+ hash['Courthouse - Security Screening'] = { ratio: 0.0132, space_type_gen: true, default: false }
728
+ hash['Courthouse - Service Shaft'] = { ratio: 0.0019, space_type_gen: true, default: false }
729
+ hash['Courthouse - Stairs'] = { ratio: 0.0111, space_type_gen: true, default: false }
730
+ hash['Courthouse - Storage'] = { ratio: 0.0882, space_type_gen: true, default: false }
731
+ hash['Courthouse - Utility'] = { ratio: 0.0484, space_type_gen: true, default: false }
732
+ elsif building_type == 'College'
733
+ hash['College - Art Classroom'] = { ratio: 0.1868, space_type_gen: true, default: false }
734
+ hash['College - Classroom'] = { ratio: 0.2348, space_type_gen: true, default: true }
735
+ hash['College - Conference'] = { ratio: 0.0215, space_type_gen: true, default: false }
736
+ hash['College - Corridor'] = { ratio: 0.0716, space_type_gen: true, default: false }
737
+ hash['College - Elevator Shaft'] = { ratio: 0.0074, space_type_gen: true, default: false }
738
+ hash['College - Entrance Lobby'] = { ratio: 0.0117, space_type_gen: true, default: false }
739
+ hash['College - Laboratory'] = { ratio: 0.0843, space_type_gen: true, default: false }
740
+ hash['College - Lecture Hall'] = { ratio: 0.0421, space_type_gen: true, default: false }
741
+ hash['College - Lounge'] = { ratio: 0.028, space_type_gen: true, default: false }
742
+ hash['College - Media Center'] = { ratio: 0.0421, space_type_gen: true, default: false }
743
+ hash['College - Office'] = { ratio: 0.1894, space_type_gen: true, default: false }
744
+ hash['College - Restroom'] = { ratio: 0.0363, space_type_gen: true, default: false }
745
+ hash['College - Stairs'] = { ratio: 0.0272, space_type_gen: true, default: false }
746
+ hash['College - Storage'] = { ratio: 0.0117, space_type_gen: true, default: false }
747
+ hash['College - Utility'] = { ratio: 0.0051, space_type_gen: true, default: false }
702
748
  # DEER Prototypes
703
749
  elsif building_type == 'Asm'
704
750
  hash['Auditorium'] = { ratio: 0.7658, space_type_gen: true, default: true }
@@ -1146,13 +1192,13 @@ module OsLib_ModelGeneration
1146
1192
  spaces_temp = OpenStudio::Model::SpaceVector.new
1147
1193
  spaces_temp << space_a
1148
1194
  spaces_temp << space_b
1149
- # disable until enhanced intersectio nand matching, will make walls adiabatic and exterior within create_bar workflow
1195
+ # attempt to intersect and match walls on a story, but later secondary match will look for missted matches and turn them to adiabaitc
1150
1196
  # intersect and sort
1151
- # OpenStudio::Model.intersectSurfaces(spaces_temp)
1152
- # OpenStudio::Model.matchSurfaces(spaces_temp)
1197
+ OpenStudio::Model.intersectSurfaces(spaces_temp)
1198
+ OpenStudio::Model.matchSurfaces(spaces_temp)
1153
1199
  end
1154
1200
  end
1155
- runner.registerInfo("Intersecting and matching surfaces in story #{story.name}, this will create additional geometry.")
1201
+ runner.registerInfo("Intersecting and matching surfaces in story #{story.name}, this will create additional geometry. Diagnstoic intersection and matching done a in paris of spaces.")
1156
1202
  end
1157
1203
  end
1158
1204
 
@@ -1173,11 +1219,11 @@ module OsLib_ModelGeneration
1173
1219
  story.spaces.sort.each do |space|
1174
1220
  story_spaces << space
1175
1221
  end
1176
- # disable until enhanced intersectio nand matching, will make walls adiabatic and exterior within create_bar workflow
1222
+ # attempt to intersect and match walls on a story, but later secondary match will look for missted matches and turn them to adiabaitc
1177
1223
  # intersect and sort
1178
- # OpenStudio::Model.intersectSurfaces(story_spaces)
1179
- # OpenStudio::Model.matchSurfaces(story_spaces)
1180
- #runner.registerInfo("Intersecting and matching surfaces in story #{story.name}, this will create additional geometry.")
1224
+ OpenStudio::Model.intersectSurfaces(story_spaces)
1225
+ OpenStudio::Model.matchSurfaces(story_spaces)
1226
+ runner.registerInfo("Intersecting and matching surfaces in story #{story.name}, this will create additional geometry.")
1181
1227
  end
1182
1228
  end
1183
1229
 
@@ -1205,7 +1251,9 @@ module OsLib_ModelGeneration
1205
1251
  runner.registerInfo("Finding non-exterior walls and setting boundary condition to adiabatic")
1206
1252
 
1207
1253
  # need to organize by story incase top story is partial story
1254
+ # should also be only for a single bar
1208
1255
  story_bounding = {}
1256
+ missed_match_count = 0
1209
1257
 
1210
1258
  # gather new spaces by story
1211
1259
  new_spaces.each do |space|
@@ -1238,6 +1286,7 @@ module OsLib_ModelGeneration
1238
1286
  v[:spaces].each do |space|
1239
1287
  space.surfaces.each do |space_surface|
1240
1288
  next if not space_surface.surfaceType == "Wall"
1289
+ next if space_surface.outsideBoundaryCondition == "Surface" # if if found a match leave it alone, don't change to adiabiatc
1241
1290
  surface_bounding_box = OpenStudio::BoundingBox.new
1242
1291
  surface_bounding_box.addPoints(space.transformation * space_surface.vertices)
1243
1292
  surface_on_outside = false
@@ -1253,10 +1302,16 @@ module OsLib_ModelGeneration
1253
1302
  # change if not exterior
1254
1303
  if !surface_on_outside
1255
1304
  space_surface.setOutsideBoundaryCondition("Adiabatic")
1305
+ missed_match_count += 1
1256
1306
  end
1257
1307
  end
1258
1308
  end
1259
1309
  end
1310
+
1311
+ if missed_match_count > 0
1312
+ runner.registerInfo("#{missed_match_count} surfaces that were exterior appear to be interior walls and had boundary condition chagned to adiabiatic.")
1313
+ end
1314
+
1260
1315
  end
1261
1316
 
1262
1317
  # sort stories (by name for now but need better way)
@@ -2764,7 +2819,7 @@ module OsLib_ModelGeneration
2764
2819
 
2765
2820
  # validate climate zone
2766
2821
  if !args.key?('climate_zone') || args['climate_zone'] == 'Lookup From Model'
2767
- climate_zone = standard.model_get_building_climate_zone_and_building_type(model)['climate_zone']
2822
+ climate_zone = standard.model_get_building_properties(model)['climate_zone']
2768
2823
  runner.registerInfo("Using climate zone #{climate_zone} from model")
2769
2824
  else
2770
2825
  climate_zone = args['climate_zone']
@@ -3430,9 +3485,6 @@ module OsLib_ModelGeneration
3430
3485
  # mapping building_type name is needed for a few methods
3431
3486
  lookup_building_type = standard.model_get_lookup_name(building_type)
3432
3487
 
3433
- # remap small medium and large office to office
3434
- if building_type.include?('Office') then building_type = 'Office' end
3435
-
3436
3488
  # get array of new space types
3437
3489
  space_types_new = []
3438
3490
 
@@ -3448,14 +3500,14 @@ module OsLib_ModelGeneration
3448
3500
 
3449
3501
  # create space type
3450
3502
  space_type = OpenStudio::Model::SpaceType.new(model)
3451
- space_type.setStandardsBuildingType(building_type)
3503
+ space_type.setStandardsBuildingType(lookup_building_type)
3452
3504
  space_type.setStandardsSpaceType(space_type_name)
3453
- space_type.setName("#{building_type} #{space_type_name}")
3505
+ space_type.setName("#{lookup_building_type} #{space_type_name}")
3454
3506
 
3455
3507
  # add to array of new space types
3456
3508
  space_types_new << space_type
3457
3509
 
3458
- # add internal loads (the nil check isn't ncessary, but I will keep it in as a warning instad of an error)
3510
+ # add internal loads (the nil check isn't necessary, but I will keep it in as a warning instad of an error)
3459
3511
  test = standard.space_type_apply_internal_loads(space_type, true, true, true, true, true, true)
3460
3512
  if test.nil?
3461
3513
  runner.registerWarning("Could not add loads for #{space_type.name}. Not expected for #{template} #{lookup_building_type}")
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -35,6 +35,6 @@
35
35
 
36
36
  module OpenStudio
37
37
  module Extension
38
- VERSION = '0.5.0'.freeze
38
+ VERSION = '0.6.0.rc1'.freeze
39
39
  end
40
40
  end
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -87,6 +87,7 @@ module OpenStudio
87
87
  # do not call Bundler.require when requiring this file, only when calling this method
88
88
  result = []
89
89
  ObjectSpace.each_object(::Class) do |obj|
90
+
90
91
  next if !obj.ancestors.include?(OpenStudio::Extension::Extension)
91
92
 
92
93
  result << obj
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -29,13 +29,13 @@ Gem::Specification.new do |spec|
29
29
  spec.required_ruby_version = '~> 2.7.0'
30
30
 
31
31
  spec.add_dependency 'bcl', '~> 0.7.1'
32
- spec.add_dependency 'bundler', '>= 2.1.0'
32
+ spec.add_dependency 'bundler', '~> 2.1.0'
33
33
  spec.add_dependency 'octokit', '~> 4.18.0' # for change logs
34
34
  spec.add_dependency 'openstudio_measure_tester', '~> 0.3.1'
35
35
  spec.add_dependency 'openstudio-workflow', '~> 2.3.0'
36
36
  spec.add_dependency 'parallel', '~> 1.19.1'
37
37
 
38
- spec.add_development_dependency 'openstudio-standards', '~> 0.2.13' # for os_lib unit tests
38
+ spec.add_development_dependency 'openstudio-standards', '~> 0.2.17.rc2' # for os_lib unit tests
39
39
  spec.add_development_dependency 'rake', '~> 13.0'
40
40
  spec.add_development_dependency 'rspec', '~> 3.9'
41
41
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-extension
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katherine Fleming
8
8
  - Nicholas Long
9
9
  - Daniel Macumber
10
10
  - David Goldwasser
11
- autorequire:
11
+ autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2021-10-21 00:00:00.000000000 Z
14
+ date: 2022-10-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bcl
@@ -31,14 +31,14 @@ dependencies:
31
31
  name: bundler
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - ">="
34
+ - - "~>"
35
35
  - !ruby/object:Gem::Version
36
36
  version: 2.1.0
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">="
41
+ - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: 2.1.0
44
44
  - !ruby/object:Gem::Dependency
@@ -103,14 +103,14 @@ dependencies:
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: 0.2.13
106
+ version: 0.2.17.rc2
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: 0.2.13
113
+ version: 0.2.17.rc2
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: rake
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -233,8 +233,8 @@ licenses: []
233
233
  metadata:
234
234
  bug_tracker_uri: https://github.com/NREL/openstudio-extension-gem/issues
235
235
  changelog_uri: https://github.com/NREL/openstudio-extension-gem/blob/develop/CHANGELOG.md
236
- source_code_uri: https://github.com/NREL/openstudio-extension-gem/tree/v0.5.0
237
- post_install_message:
236
+ source_code_uri: https://github.com/NREL/openstudio-extension-gem/tree/v0.6.0.rc1
237
+ post_install_message:
238
238
  rdoc_options: []
239
239
  require_paths:
240
240
  - lib
@@ -245,12 +245,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
245
  version: 2.7.0
246
246
  required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  requirements:
248
- - - ">="
248
+ - - ">"
249
249
  - !ruby/object:Gem::Version
250
- version: '0'
250
+ version: 1.3.1
251
251
  requirements: []
252
252
  rubygems_version: 3.1.4
253
- signing_key:
253
+ signing_key:
254
254
  specification_version: 4
255
255
  summary: openstudio base gem for creating generic extensions with encapsulated data
256
256
  and measures.