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 +4 -4
- data/CHANGELOG.md +18 -8
- data/Gemfile +2 -0
- data/Jenkinsfile +1 -1
- data/LICENSE.md +1 -1
- data/README.md +3 -0
- data/Rakefile +1 -1
- data/doc_templates/LICENSE.md +1 -1
- data/doc_templates/copyright_erb.txt +1 -1
- data/doc_templates/copyright_js.txt +1 -1
- data/doc_templates/copyright_ruby.txt +1 -1
- data/init_templates/openstudio_module.rb +1 -1
- data/init_templates/spec.rb +1 -1
- data/init_templates/spec_helper.rb +1 -1
- data/init_templates/version.rb +1 -1
- data/lib/change_log.rb +1 -1
- data/lib/measures/openstudio_extension_test_measure/LICENSE.md +1 -1
- data/lib/measures/openstudio_extension_test_measure/measure.rb +1 -1
- data/lib/measures/openstudio_extension_test_measure/resources/os_lib_helper_methods.rb +1 -1
- data/lib/openstudio/extension/core/check_mech_sys_type.rb +1 -1
- data/lib/openstudio/extension/core/check_part_loads.rb +4 -4
- data/lib/openstudio/extension/core/os_lib_hvac.rb +53 -31
- data/lib/openstudio/extension/core/os_lib_model_generation.rb +68 -16
- data/lib/openstudio/extension/rake_task.rb +1 -1
- data/lib/openstudio/extension/runner.rb +1 -1
- data/lib/openstudio/extension/runner_config.rb +1 -1
- data/lib/openstudio/extension/version.rb +2 -2
- data/lib/openstudio/extension.rb +2 -1
- data/lib/openstudio-extension.rb +1 -1
- data/openstudio-extension.gemspec +2 -2
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 523a398338a5d93b39e33c434d2d23da38bf498a3f49c98fd761782921dc2d8d
|
4
|
+
data.tar.gz: 4f5d6547b2473c213182e17ee1367b97b1c9096bfbf7b887c1fdeaaab39ed311
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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-
|
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-
|
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:
|
data/doc_templates/LICENSE.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
OpenStudio(R), Copyright (c) 2008-
|
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-
|
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-
|
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-
|
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-
|
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/init_templates/spec.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# *******************************************************************************
|
2
|
-
# OpenStudio(R), Copyright (c) 2008-
|
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-
|
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/init_templates/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# *******************************************************************************
|
2
|
-
# OpenStudio(R), Copyright (c) 2008-
|
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-
|
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-
|
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-
|
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-
|
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.
|
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.
|
290
|
-
dsn_pwr = equip.
|
291
|
-
elsif equip.
|
292
|
-
dsn_pwr = equip.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
cooling_coil.
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
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
|
-
|
1376
|
-
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
heating_coil.
|
1384
|
-
|
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['
|
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
|
-
#
|
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
|
-
|
1152
|
-
|
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
|
-
#
|
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
|
-
|
1179
|
-
|
1180
|
-
|
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.
|
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(
|
3503
|
+
space_type.setStandardsBuildingType(lookup_building_type)
|
3452
3504
|
space_type.setStandardsSpaceType(space_type_name)
|
3453
|
-
space_type.setName("#{
|
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
|
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-
|
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-
|
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-
|
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-
|
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.
|
38
|
+
VERSION = '0.6.0.rc1'.freeze
|
39
39
|
end
|
40
40
|
end
|
data/lib/openstudio/extension.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# *******************************************************************************
|
2
|
-
# OpenStudio(R), Copyright (c) 2008-
|
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
|
data/lib/openstudio-extension.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# *******************************************************************************
|
2
|
-
# OpenStudio(R), Copyright (c) 2008-
|
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', '
|
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.
|
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.
|
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:
|
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.
|
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.
|
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.
|
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:
|
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.
|