tbd 3.2.3 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/pull_request.yml +32 -0
- data/.yardopts +14 -0
- data/README.md +23 -25
- data/json/tbd_warehouse17.json +8 -0
- data/json/tbd_warehouse18.json +12 -0
- data/json/tbd_warehouse4.json +17 -0
- data/lib/measures/tbd/README.md +27 -11
- data/lib/measures/tbd/measure.rb +155 -72
- data/lib/measures/tbd/measure.xml +168 -66
- data/lib/measures/tbd/resources/geo.rb +435 -221
- data/lib/measures/tbd/resources/oslog.rb +213 -161
- data/lib/measures/tbd/resources/psi.rb +1849 -900
- data/lib/measures/tbd/resources/ua.rb +380 -309
- data/lib/measures/tbd/resources/utils.rb +2491 -764
- data/lib/measures/tbd/resources/version.rb +1 -1
- data/lib/measures/tbd/tests/tbd_tests.rb +1 -1
- data/lib/tbd/geo.rb +435 -221
- data/lib/tbd/psi.rb +1849 -900
- data/lib/tbd/ua.rb +380 -309
- data/lib/tbd/version.rb +1 -1
- data/lib/tbd.rb +14 -34
- data/tbd.gemspec +2 -2
- data/tbd.schema.json +189 -20
- data/v291_MacOS.md +2 -4
- metadata +10 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 840a07d7ac8aab45d2c2e377c9aecfc7bfb6e02a2aa00736bd3d07da271d619e
|
4
|
+
data.tar.gz: 0f41e81875c54f81c00e8788b40569bde04e75233fd3a7d1f9b5e905aecf866c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf7839e2518c1fdff231b7f9ad9ac8a8b8fd6a2e3ca79e7441ca58c5c8d6dcf22d64ee6414fecd9160ec0cc1203f1a07ec862e7337ed27b1812f0ef59617d94b
|
7
|
+
data.tar.gz: f3fe90266432320e562a7119a4f11c9097cb958533c4b9e1c53089330b2fd79ca15884c798f9f49f3cb751ca8374f10801f77a0b070f8f039c242e4874338863
|
@@ -86,3 +86,35 @@ jobs:
|
|
86
86
|
docker exec -t test bundle update
|
87
87
|
docker exec -t test bundle exec rake
|
88
88
|
docker kill test
|
89
|
+
test_361x:
|
90
|
+
runs-on: ubuntu-22.04
|
91
|
+
steps:
|
92
|
+
- name: Check out repository
|
93
|
+
uses: actions/checkout@v2
|
94
|
+
- name: Run Tests
|
95
|
+
run: |
|
96
|
+
echo $(pwd)
|
97
|
+
echo $(ls)
|
98
|
+
docker pull nrel/openstudio:3.6.1
|
99
|
+
docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.6.1
|
100
|
+
docker exec -t test pwd
|
101
|
+
docker exec -t test ls
|
102
|
+
docker exec -t test bundle update
|
103
|
+
docker exec -t test bundle exec rake
|
104
|
+
docker kill test
|
105
|
+
test_370x:
|
106
|
+
runs-on: ubuntu-22.04
|
107
|
+
steps:
|
108
|
+
- name: Check out repository
|
109
|
+
uses: actions/checkout@v2
|
110
|
+
- name: Run Tests
|
111
|
+
run: |
|
112
|
+
echo $(pwd)
|
113
|
+
echo $(ls)
|
114
|
+
docker pull nrel/openstudio:dev-3.7.0-alpha
|
115
|
+
docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:dev-3.7.0-alpha
|
116
|
+
docker exec -t test pwd
|
117
|
+
docker exec -t test ls
|
118
|
+
docker exec -t test bundle update
|
119
|
+
docker exec -t test bundle exec rake
|
120
|
+
docker kill test
|
data/.yardopts
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
--exclude lib/measures/tbd/measure.rb
|
2
|
+
--exclude lib/measures/tbd/resources/tbd.rb
|
3
|
+
--exclude lib/measures/tbd/resources/psi.rb
|
4
|
+
--exclude lib/measures/tbd/resources/geo.rb
|
5
|
+
--exclude lib/measures/tbd/resources/ua.rb
|
6
|
+
--exclude lib/measures/tbd/resources/model.rb
|
7
|
+
--exclude lib/measures/tbd/resources/geometry.rb
|
8
|
+
--exclude lib/measures/tbd/resources/transformation.rb
|
9
|
+
--exclude lib/measures/tbd/resources/version.rb
|
10
|
+
--exclude lib/measures/tbd/resources/utils.rb
|
11
|
+
--exclude lib/measures/tbd/resources/oslog.rb
|
12
|
+
--exclude lib/measures/tbd/tests/tbd_tests.rb
|
13
|
+
--exclude lib/measures/tbd/LICENSE.md
|
14
|
+
--exclude lib/measures/tbd/README.md
|
data/README.md
CHANGED
@@ -1,20 +1,16 @@
|
|
1
1
|
# Thermal Bridging & Derating (TBD)
|
2
2
|
|
3
|
-
An [OpenStudio Measure](https://nrel.github.io/OpenStudio-user-documentation/reference/measure_writing_guide/) that first autodetects _major_ thermal bridges (like balconies, parapets and corners) in an OpenStudio model (.osm), and then _derates_ outside-facing, opaque surface constructions (walls, roofs and exposed floors). It interacts with the [OpenStudio SDK](https://openstudio-sdk-documentation.s3.amazonaws.com/index.html) and relies on AutomaticMagic's [Topolys](https://github.com/automaticmagic/topolys) gem, as well as rd2's [OSut](https://rubygems.org/gems/osut
|
3
|
+
An [OpenStudio Measure](https://nrel.github.io/OpenStudio-user-documentation/reference/measure_writing_guide/) that first autodetects _major_ thermal bridges (like balconies, parapets and corners) in an OpenStudio model (.osm), and then _derates_ outside-facing, opaque surface constructions (walls, roofs and exposed floors). It interacts with the [OpenStudio SDK](https://openstudio-sdk-documentation.s3.amazonaws.com/index.html) and relies on AutomaticMagic's [Topolys](https://github.com/automaticmagic/topolys) gem, as well as rd2's [OSut](https://rubygems.org/gems/osut) gem.
|
4
4
|
|
5
5
|
## Guide & Downloads
|
6
6
|
|
7
|
-
Building professionals and energy modellers are encouraged to first consult the online [Guide](https://rd2.github.io/tbd/) - it provides an overview of the underlying theory, references, suggested OpenStudio workflows, etc. Users can download the latest _TBD_ version directly from the Guide itself, or under [releases](https://github.com/rd2/tbd/releases), or via NREL's [BCL](https://bcl.nrel.gov) (search for "bridging" or "rd2").
|
8
|
-
|
9
|
-
Questions can be posted on [UnmetHours](https://unmethours.com) - a very useful online resource for OpenStudio users.
|
10
|
-
|
11
|
-
TBD can also be deployed as a Ruby gem, by adding:
|
7
|
+
Building professionals and energy modellers are encouraged to first consult the online [Guide](https://rd2.github.io/tbd/) - it provides an overview of the underlying theory, references, suggested OpenStudio workflows, etc. Users can download the latest _TBD_ version directly from the Guide itself, or under [releases](https://github.com/rd2/tbd/releases), or via NREL's [BCL](https://bcl.nrel.gov) (search for "bridging" or "rd2"). Questions can be posted on [UnmetHours](https://unmethours.com) - a very useful online resource for OpenStudio users. TBD is also available as a Ruby gem - add:
|
12
8
|
|
13
9
|
```
|
14
10
|
gem "tbd", git: "https://github.com/rd2/tbd", branch: "master"
|
15
11
|
```
|
16
12
|
|
17
|
-
... in a v2.1 [bundled](https://bundler.io) _Measure_ development environment "Gemfile" (or
|
13
|
+
... in a v2.1 [bundled](https://bundler.io) _Measure_ development environment "Gemfile" (or preferably as a _gemspec_ dependency), and then run:
|
18
14
|
|
19
15
|
```
|
20
16
|
bundle install (or 'bundle update')
|
@@ -22,13 +18,13 @@ bundle install (or 'bundle update')
|
|
22
18
|
|
23
19
|
## New Features
|
24
20
|
|
25
|
-
|
21
|
+
Bugs or new feature requests for _TBD_ should be submitted [here](https://github.com/rd2/tbd/issues), while those more closely linked to _Topolys_ or _OSut_ should be submitted [here](https://github.com/automaticmagic/topolys/issues) or [here](https://github.com/rd2/osut/issues), respectively.
|
26
22
|
|
27
23
|
## Development
|
28
24
|
|
29
25
|
The installation and testing instructions in this section are for developers interested in exploring/tweaking a cloned/forked version of the source code. In an effort to _lighten_ TBD as a Ruby gem, only the most basic tests are deployed in this repository. More detailed tests are housed in a dedicated TBD [testing](https://github.com/rd2/tbd_tests) repo.
|
30
26
|
|
31
|
-
TBD is systematically tested against updated OpenStudio versions (since v3.0.0). The following instructions refer to OpenStudio v3.
|
27
|
+
TBD is systematically tested against updated OpenStudio versions (since v3.0.0). The following instructions refer to OpenStudio v3.6.1 (requiring Ruby v2.7.2), strictly as an example. Adapt the instructions for more recent versions - see OpenStudio's [compatibility matrix](https://github.com/NREL/OpenStudio/wiki/OpenStudio-SDK-Version-Compatibility-Matrix).
|
32
28
|
|
33
29
|
### Windows Installation
|
34
30
|
|
@@ -37,17 +33,18 @@ Either install Ruby using the [RubyInstaller](https://rubyinstaller.org/download
|
|
37
33
|
ruby -v
|
38
34
|
```
|
39
35
|
|
40
|
-
Install bundler:
|
36
|
+
Install bundler, if not already installed:
|
41
37
|
```
|
38
|
+
bundler -v
|
42
39
|
gem install bundler -v 2.1
|
43
40
|
```
|
44
41
|
|
45
|
-
Install the OpenStudio SDK [3.
|
42
|
+
Install the OpenStudio SDK [3.6.1](https://github.com/NREL/OpenStudio/releases/tag/v3.6.1), or the OpenStudio Application [1.6.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.6.0).
|
46
43
|
|
47
44
|
Create a new file ```C:\Ruby27-x64\lib\ruby\site_ruby\openstudio.rb``` (path may be different depending on the environment), and edit it so it _points_ to your new OpenStudio installation:
|
48
45
|
|
49
46
|
```
|
50
|
-
require 'C:\openstudio-3.
|
47
|
+
require 'C:\openstudio-3.6.1\Ruby\openstudio.rb'
|
51
48
|
```
|
52
49
|
|
53
50
|
Verify your OpenStudio and Ruby configuration:
|
@@ -66,9 +63,10 @@ brew install rbenv
|
|
66
63
|
rbenv init
|
67
64
|
rbenv install 2.7.2
|
68
65
|
```
|
69
|
-
Install [bundler](https://bundler.io), great for managing Ruby gems and dependencies:
|
66
|
+
Install [bundler](https://bundler.io) (if not already installed), great for managing Ruby gems and dependencies:
|
70
67
|
|
71
68
|
```
|
69
|
+
bundler -v
|
72
70
|
gem install bundler -v 2.1
|
73
71
|
```
|
74
72
|
|
@@ -78,43 +76,43 @@ In the Terminal, check the Ruby version:
|
|
78
76
|
ruby -v
|
79
77
|
```
|
80
78
|
|
81
|
-
... should still report the current Ruby version used by MacOS. To ensure the right version is used for developing OpenStudio Measures, instruct _rbenv_ to switch Ruby version _locally_ within a user’s chosen directory (e.g. "
|
79
|
+
... should still report the current Ruby version used by MacOS. To ensure the right version is used for developing OpenStudio Measures, instruct _rbenv_ to switch Ruby version _locally_ within a user’s chosen directory (e.g. "sandbox361"):
|
82
80
|
|
83
81
|
```
|
84
|
-
mkdir ~/Documents/
|
85
|
-
cd ~/Documents/
|
82
|
+
mkdir ~/Documents/sandbox361
|
83
|
+
cd ~/Documents/sandbox361
|
86
84
|
rbenv local 2.7.2
|
87
85
|
ruby -v
|
88
86
|
```
|
89
|
-
… should report the desired _local_ Ruby version, to be used by default for anything under the "
|
87
|
+
… should report the desired _local_ Ruby version, to be used by default for anything under the "sandbox361" directory tree. To ensure both Ruby versions are operational and safe, run the following checkup twice - once from a user’s home (or ~/), then from within e.g. "sandbox361":
|
90
88
|
|
91
89
|
```
|
92
90
|
cd ~/
|
93
91
|
ruby -ropen-uri -e 'eval URI.open("https://git.io/vQhWq").read'
|
94
|
-
cd ~/Documents/
|
92
|
+
cd ~/Documents/sandbox361
|
95
93
|
ruby -ropen-uri -e 'eval URI.open("https://git.io/vQhWq").read'
|
96
94
|
```
|
97
95
|
|
98
96
|
If successful, one should get a ```Hooray!``` from both Ruby versions confirming valid communication with [Rubygems](https://rubygems.org/).
|
99
97
|
|
100
|
-
Install the OpenStudio SDK [3.
|
98
|
+
Install the OpenStudio SDK [3.6.1](https://github.com/NREL/OpenStudio/releases/tag/v3.6.1), or the OpenStudio Application [1.6.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.6.0).
|
101
99
|
|
102
100
|
Create a new file ```~/.rbenv/versions/2.7.2/lib/ruby/site_ruby/openstudio.rb``` (path may be different depending on the environment), and edit it so it _points_ to your new OpenStudio installation:
|
103
101
|
|
104
102
|
```
|
105
|
-
require '/Applications/OpenStudio-3.
|
103
|
+
require '/Applications/OpenStudio-3.6.1/Ruby/openstudio.rb'
|
106
104
|
```
|
107
105
|
|
108
106
|
Verify your local OpenStudio and Ruby configuration:
|
109
107
|
|
110
108
|
```
|
111
|
-
cd ~/Documents/
|
109
|
+
cd ~/Documents/sandbox361
|
112
110
|
ruby -e "require 'openstudio'" -e "puts OpenStudio::Model::Model.new"
|
113
111
|
```
|
114
112
|
|
115
113
|
## Clone TBD
|
116
114
|
|
117
|
-
Once done with either the Windows or MacOS setup, install the latest version of _git_ (e.g. through Homebrew), then ```git clone``` the TBD repo, e.g. under "
|
115
|
+
Once done with either the Windows or MacOS setup, install the latest version of _git_ (e.g. through Homebrew), then ```git clone``` the TBD repo, e.g. under "sandbox361". Run the basic tests below to ensure the measure operates as expected.
|
118
116
|
|
119
117
|
## Complete list of test commands
|
120
118
|
|
@@ -129,14 +127,14 @@ bundle exec rake
|
|
129
127
|
|
130
128
|
Install [Docker](https://docs.docker.com/desktop/#download-and-install).
|
131
129
|
|
132
|
-
Pull the OpenStudio v3.
|
130
|
+
Pull the OpenStudio v3.6.1 Docker image:
|
133
131
|
```
|
134
|
-
docker pull nrel/openstudio:3.
|
132
|
+
docker pull nrel/openstudio:3.6.1
|
135
133
|
```
|
136
134
|
|
137
135
|
In the root repository:
|
138
136
|
```
|
139
|
-
docker run --name test --rm -d -t -v ${PWD}:/work -w /work nrel/openstudio:3.
|
137
|
+
docker run --name test --rm -d -t -v ${PWD}:/work -w /work nrel/openstudio:3.6.1
|
140
138
|
docker exec -t test bundle update
|
141
139
|
docker exec -t test bundle exec rake
|
142
140
|
docker kill test
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
|
3
|
+
"description": "testing roof/parapet switch (warehouse.osm)",
|
4
|
+
"spaces": [{
|
5
|
+
"id": "Zone3 Bulk Storage",
|
6
|
+
"parapet": false
|
7
|
+
}],
|
8
|
+
"surfaces": [{
|
9
|
+
"id": "Bulk Storage Rear Wall",
|
10
|
+
"parapet": true
|
11
|
+
}]
|
12
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
|
3
|
+
"description": "test_warehouse.osm with negative PSI values",
|
4
|
+
"psis": [{
|
5
|
+
"id": "BETBG Detail 7.6.2",
|
6
|
+
"rimjoist": 0.0,
|
7
|
+
"parapet": 0.0,
|
8
|
+
"fenestration": 0.0,
|
9
|
+
"corner": -0.0471,
|
10
|
+
"balcony": 0.0,
|
11
|
+
"party": 0.0,
|
12
|
+
"grade": 0.0
|
13
|
+
}],
|
14
|
+
"building": {
|
15
|
+
"psi": "BETBG Detail 7.6.2"
|
16
|
+
}
|
17
|
+
}
|
data/lib/measures/tbd/README.md
CHANGED
@@ -27,14 +27,6 @@ For EnergyPlus simulations, leave CHECKED. For iterative exploration with Apply
|
|
27
27
|
**Required:** false,
|
28
28
|
**Model Dependent:** false
|
29
29
|
|
30
|
-
### Proximity tolerance (m)
|
31
|
-
Proximity tolerance (e.g. 0.100 m) between subsurface edges, e.g. between near-adjacent window jambs.
|
32
|
-
**Name:** sub_tol,
|
33
|
-
**Type:** Double,
|
34
|
-
**Units:** ,
|
35
|
-
**Required:** false,
|
36
|
-
**Model Dependent:** false
|
37
|
-
|
38
30
|
### Load 'tbd.json'
|
39
31
|
Loads existing 'tbd.json' file (under '/files'), may override 'default thermal bridge' set.
|
40
32
|
**Name:** load_tbd_json,
|
@@ -44,7 +36,7 @@ Loads existing 'tbd.json' file (under '/files'), may override 'default thermal b
|
|
44
36
|
**Model Dependent:** false
|
45
37
|
|
46
38
|
### Default thermal bridge set
|
47
|
-
e.g. '
|
39
|
+
e.g. '90.1.22|steel.m|unmitigated' (may be overridden by 'tbd.json' file).
|
48
40
|
**Name:** option,
|
49
41
|
**Type:** Choice,
|
50
42
|
**Units:** ,
|
@@ -52,13 +44,21 @@ e.g. 'poor', 'regular', 'efficient', 'code' (may be overridden by 'tbd.json' fil
|
|
52
44
|
**Model Dependent:** false
|
53
45
|
|
54
46
|
### Write 'tbd.out.json'
|
55
|
-
Write out 'tbd.out.json' file e.g
|
47
|
+
Write out 'tbd.out.json' file, e.g. to customize for subsequent runs (edit, and place under '/files' as 'tbd.json').
|
56
48
|
**Name:** write_tbd_json,
|
57
49
|
**Type:** Boolean,
|
58
50
|
**Units:** ,
|
59
51
|
**Required:** false,
|
60
52
|
**Model Dependent:** false
|
61
53
|
|
54
|
+
### Wall-roof edge as 'parapet'
|
55
|
+
Leave CHECKED if wall-roof edge is considered a parapet or an overhang (see ASHRAE 90.1 2022 5.5.5.1 & A10).
|
56
|
+
**Name:** parapet,
|
57
|
+
**Type:** Boolean,
|
58
|
+
**Units:** ,
|
59
|
+
**Required:** false,
|
60
|
+
**Model Dependent:** false
|
61
|
+
|
62
62
|
### Wall construction(s) to 'uprate'
|
63
63
|
Target 1x (or 'ALL') wall construction(s) to 'uprate', to achieve wall Ut target below.
|
64
64
|
**Name:** wall_option,
|
@@ -76,7 +76,7 @@ Target 1x (or 'ALL') roof construction(s) to 'uprate', to achieve roof Ut target
|
|
76
76
|
**Model Dependent:** false
|
77
77
|
|
78
78
|
### Floor construction(s) to 'uprate'
|
79
|
-
Target 1x (or 'ALL') floor construction(s) to 'uprate',
|
79
|
+
Target 1x (or 'ALL') floor construction(s) to 'uprate', toachieve floor Ut target below.
|
80
80
|
**Name:** floor_option,
|
81
81
|
**Type:** Choice,
|
82
82
|
**Units:** ,
|
@@ -139,6 +139,22 @@ Overwrites 'ground' boundary conditions as 'foundation' before generating Kiva i
|
|
139
139
|
**Required:** false,
|
140
140
|
**Model Dependent:** false
|
141
141
|
|
142
|
+
### Purge existing KIVA inputs
|
143
|
+
Purges KIVA entries from model before generating Kiva inputs.
|
144
|
+
**Name:** reset_kiva,
|
145
|
+
**Type:** Boolean,
|
146
|
+
**Units:** ,
|
147
|
+
**Required:** false,
|
148
|
+
**Model Dependent:** false
|
149
|
+
|
150
|
+
### Proximity tolerance (m)
|
151
|
+
Proximity tolerance (e.g. 0.100 m) between subsurface edges, e.g. between near-adjacent window jambs.
|
152
|
+
**Name:** sub_tol,
|
153
|
+
**Type:** Double,
|
154
|
+
**Units:** ,
|
155
|
+
**Required:** false,
|
156
|
+
**Model Dependent:** false
|
157
|
+
|
142
158
|
|
143
159
|
|
144
160
|
|