tbd 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +3 -0
  3. data/.github/workflows/pull_request.yml +72 -0
  4. data/.gitignore +23 -0
  5. data/.rspec +3 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE.md +21 -0
  8. data/README.md +154 -0
  9. data/Rakefile +60 -0
  10. data/json/midrise.json +64 -0
  11. data/json/tbd_5ZoneNoHVAC.json +19 -0
  12. data/json/tbd_5ZoneNoHVAC_btap.json +91 -0
  13. data/json/tbd_seb_n2.json +41 -0
  14. data/json/tbd_seb_n4.json +57 -0
  15. data/json/tbd_warehouse10.json +24 -0
  16. data/json/tbd_warehouse5.json +37 -0
  17. data/lib/measures/tbd/LICENSE.md +21 -0
  18. data/lib/measures/tbd/README.md +136 -0
  19. data/lib/measures/tbd/README.md.erb +42 -0
  20. data/lib/measures/tbd/docs/.gitkeep +1 -0
  21. data/lib/measures/tbd/measure.rb +327 -0
  22. data/lib/measures/tbd/measure.xml +460 -0
  23. data/lib/measures/tbd/resources/geo.rb +714 -0
  24. data/lib/measures/tbd/resources/geometry.rb +351 -0
  25. data/lib/measures/tbd/resources/model.rb +1431 -0
  26. data/lib/measures/tbd/resources/oslog.rb +381 -0
  27. data/lib/measures/tbd/resources/psi.rb +2229 -0
  28. data/lib/measures/tbd/resources/tbd.rb +55 -0
  29. data/lib/measures/tbd/resources/transformation.rb +121 -0
  30. data/lib/measures/tbd/resources/ua.rb +986 -0
  31. data/lib/measures/tbd/resources/utils.rb +1636 -0
  32. data/lib/measures/tbd/resources/version.rb +3 -0
  33. data/lib/measures/tbd/tests/tbd_full_PSI.json +17 -0
  34. data/lib/measures/tbd/tests/tbd_tests.rb +222 -0
  35. data/lib/tbd/geo.rb +714 -0
  36. data/lib/tbd/psi.rb +2229 -0
  37. data/lib/tbd/ua.rb +986 -0
  38. data/lib/tbd/version.rb +25 -0
  39. data/lib/tbd.rb +93 -0
  40. data/sponsors/canada.png +0 -0
  41. data/sponsors/quebec.png +0 -0
  42. data/tbd.gemspec +43 -0
  43. data/tbd.schema.json +571 -0
  44. data/v291_MacOS.md +110 -0
  45. metadata +191 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 98d362f684c1cac670390347814a0fe5ed620cc86600b3207358de313a2d77b7
4
+ data.tar.gz: 11e5e5c8e290e5e41b58d758c7e1eaad18b07bae293799085be4708098140775
5
+ SHA512:
6
+ metadata.gz: 8d7232262c4a483107cd3d8b44e9588fe1dedd867e93496ad589ced425ea48cc770b6b14870346a1d04fce47f97f7d933c804694851fca2eda0ee862011c974a
7
+ data.tar.gz: 922835ea4c1d3860b9d7a97df935f0a9a4d25e9561317c34564ca0dbfabbd612b8ca57b2acff99983b0c116381fcfe9a4369af3494ab00696afa838338d9c3b8
data/.gitattributes ADDED
@@ -0,0 +1,3 @@
1
+ * text=auto
2
+ *.rb text
3
+ text eol=lf
@@ -0,0 +1,72 @@
1
+ name: Pull Request CI
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - master
7
+
8
+ jobs:
9
+ test_300x:
10
+ runs-on: ubuntu-20.04
11
+ steps:
12
+ - name: Check out repository
13
+ uses: actions/checkout@v2
14
+ - name: Run Tests
15
+ run: |
16
+ echo $(pwd)
17
+ echo $(ls)
18
+ docker pull nrel/openstudio:3.0.0
19
+ docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.0.0
20
+ docker exec -t test pwd
21
+ docker exec -t test ls
22
+ docker exec -t test bundle update
23
+ docker exec -t test bundle exec rake
24
+ docker kill test
25
+ test_321x:
26
+ runs-on: ubuntu-20.04
27
+ steps:
28
+ - name: Check out repository
29
+ uses: actions/checkout@v2
30
+ - name: Run Tests
31
+ run: |
32
+ echo $(pwd)
33
+ echo $(ls)
34
+ docker pull nrel/openstudio:3.2.1
35
+ docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.2.1
36
+ docker exec -t test pwd
37
+ docker exec -t test ls
38
+ docker exec -t test bundle update
39
+ docker exec -t test bundle exec rake
40
+ docker kill test
41
+ test_330x:
42
+ runs-on: ubuntu-20.04
43
+ steps:
44
+ - name: Check out repository
45
+ uses: actions/checkout@v2
46
+ - name: Run Tests
47
+ run: |
48
+ echo $(pwd)
49
+ echo $(ls)
50
+ docker pull nrel/openstudio:3.3.0
51
+ docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.3.0
52
+ docker exec -t test pwd
53
+ docker exec -t test ls
54
+ docker exec -t test bundle update
55
+ docker exec -t test bundle exec rake
56
+ docker kill test
57
+ test_340x:
58
+ runs-on: ubuntu-20.04
59
+ steps:
60
+ - name: Check out repository
61
+ uses: actions/checkout@v2
62
+ - name: Run Tests
63
+ run: |
64
+ echo $(pwd)
65
+ echo $(ls)
66
+ docker pull nrel/openstudio:3.4.0
67
+ docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.4.0
68
+ docker exec -t test pwd
69
+ docker exec -t test ls
70
+ docker exec -t test bundle update
71
+ docker exec -t test bundle exec rake
72
+ docker kill test
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ /Gemfile.lock
2
+ /.ruby-version
3
+ .rspec_status
4
+ /.bundle/
5
+ /pkg
6
+
7
+ .yardoc/
8
+ _yardoc/
9
+ doc/
10
+ rdoc
11
+
12
+ /spec/files/osms/out/*
13
+ /spec/files/measures/*
14
+ /spec/files/ua/*
15
+ /json/*out.json
16
+
17
+ /lib/measures/test_results/*
18
+ /lib/measures/*/tests/output
19
+ /lib/measures/test_results
20
+
21
+ runner.conf
22
+
23
+ *.DS_Store
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020-2022 Denis Bourgeois & Dan Macumber
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,154 @@
1
+ # Thermal Bridging & Derating (TBD)
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/versions/0.2.7) gem.
4
+
5
+ ## Guide & Downloads
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:
12
+
13
+ ```
14
+ gem "tbd", git: "https://github.com/rd2/tbd", branch: "master"
15
+ ```
16
+
17
+ ... in a v2.1 [bundled](https://bundler.io) _Measure_ development environment "Gemfile" (or instead as a _gemspec_ dependency), and then run:
18
+
19
+ ```
20
+ bundle install (or 'bundle update')
21
+ ```
22
+
23
+ ## New Features
24
+
25
+ Upcoming enhancements are in the works. 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
+
27
+ ## Development
28
+
29
+ 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
+
31
+ TBD is systematically tested against updated OpenStudio versions (since v3.0.0). The following instructions refer to OpenStudio v3.4.0 (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
+
33
+ ### Windows Installation
34
+
35
+ Install Ruby using the [RubyInstaller](https://rubyinstaller.org/downloads/archives/) for [Ruby 2.7.2 (x64)](https://github.com/oneclick/rubyinstaller2/releases/tag/RubyInstaller-2.7.2-1/rubyinstaller-2.7.2-1-x64.exe).
36
+
37
+ From the command line, check that the ruby installation returns the correct Ruby version:
38
+ ```
39
+ ruby -v
40
+ ```
41
+
42
+ Install bundler:
43
+ ```
44
+ gem install bundler -v 2.1
45
+ ```
46
+
47
+ Install the OpenStudio SDK [3.4.0](https://github.com/NREL/OpenStudio/releases/tag/v3.4.0), or the OpenStudio Application [1.4.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.4.0).
48
+
49
+ 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:
50
+
51
+ ```
52
+ require 'C:\openstudio-3.4.0\Ruby\openstudio.rb'
53
+ ```
54
+
55
+ Verify your OpenStudio and Ruby configuration:
56
+ ```
57
+ ruby -e "require 'openstudio'" -e "puts OpenStudio::Model::Model.new"
58
+ ```
59
+
60
+ `git clone` the TBD repo, then run basic tests to ensure the measure operates properly (see end of this README).
61
+
62
+
63
+ ### MacOS Installation
64
+
65
+ MacOS already comes with Ruby, but likely not the right Ruby version for the desired OpenStudio measure development [environment](https://github.com/NREL/OpenStudio/wiki/OpenStudio-SDK-Version-Compatibility-Matrix). Instructions here show how to install Ruby v2.7.2 alongside MacOS's own Ruby version. Although no longer officially supported, instructions for an OpenStudio v2.9.1 setup is described [here](https://github.com/rd2/tbd/blob/master/v291_MacOS.md).
66
+
67
+ From a Terminal, install [Homebrew](https://brew.sh/index) - nice for package distribution and management. Using Homebrew, install _rbenv_ (which allows users to manage multiple Ruby versions) and finally Ruby:
68
+
69
+ ```
70
+ brew install rbenv
71
+ rbenv init
72
+ rbenv install 2.7.2
73
+ ```
74
+ Install [bundler](https://bundler.io), great for managing Ruby gems and dependencies:
75
+
76
+ ```
77
+ gem install bundler -v 2.1
78
+ ```
79
+
80
+ In the Terminal, check the Ruby version:
81
+
82
+ ```
83
+ ruby -v
84
+ ```
85
+
86
+ ... 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. "sandbox340"):
87
+
88
+ ```
89
+ mkdir ~/Documents/sandbox340
90
+ cd ~/Documents/sandbox340
91
+ rbenv local 2.7.2
92
+ ruby -v
93
+ ```
94
+ … should report the desired _local_ Ruby version, to be used by default for anything under the "sandbox340" 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., "sandbox340":
95
+
96
+ ```
97
+ cd ~/
98
+ ruby -ropen-uri -e 'eval URI.open("https://git.io/vQhWq").read'
99
+ cd ~/Documents/sandbox340
100
+ ruby -ropen-uri -e 'eval URI.open("https://git.io/vQhWq").read'
101
+ ```
102
+
103
+ If successful, one should get a ```Hooray!``` from both Ruby versions confirming valid communication with [Rubygems](https://rubygems.org/).
104
+
105
+ Install the OpenStudio SDK [3.4.0](https://github.com/NREL/OpenStudio/releases/tag/v3.4.0), or the OpenStudio Application [1.4.0](https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.4.0).
106
+
107
+ 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:
108
+
109
+ ```
110
+ require '/Applications/OpenStudio-3.4.0/Ruby/openstudio.rb'
111
+ ```
112
+
113
+ Verify your local OpenStudio and Ruby configuration:
114
+
115
+ ```
116
+ cd ~/Documents/sandbox340
117
+ ruby -e "require 'openstudio'" -e "puts OpenStudio::Model::Model.new"
118
+ ```
119
+
120
+ Install the latest version of _git_ (e.g. through Homebrew), then ```git clone``` the TBD repo, e.g. under "sandbox340". Run the basic tests below to ensure the measure operates as expected.
121
+
122
+
123
+ ## Complete list of test commands
124
+
125
+ Run the following (basic) tests from TBD's root repository:
126
+ ```
127
+ bundle update (or 'bundle install')
128
+ bundle exec rake libraries
129
+ bundle exec rake
130
+ ```
131
+
132
+ ## Run tests using Docker - _optional_
133
+
134
+ Install [Docker](https://docs.docker.com/desktop/#download-and-install).
135
+
136
+ Pull the OpenStudio v3.4.0 Docker image:
137
+ ```
138
+ docker pull nrel/openstudio:3.4.0
139
+ ```
140
+
141
+ In the root repository:
142
+ ```
143
+ docker run --name test --rm -d -t -v ${PWD}:/work -w /work nrel/openstudio:3.4.0
144
+ docker exec -t test bundle update
145
+ docker exec -t test bundle exec rake
146
+ docker kill test
147
+ ```
148
+
149
+ ## Support
150
+
151
+ _Merci !_ to the following organizations
152
+
153
+ [![](https://github.com/rd2/tbd/blob/master/sponsors/quebec.png)](https://transitionenergetique.gouv.qc.ca)
154
+ [![](https://github.com/rd2/tbd/blob/master/sponsors/canada.png)](https://nrc.canada.ca/en/research-development/research-collaboration/research-centres/construction-research-centre)
data/Rakefile ADDED
@@ -0,0 +1,60 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec) do |t|
5
+ t.rspec_opts = '--exclude-pattern \'spec/**/*suite_spec.rb\''
6
+ end
7
+
8
+ task default: :spec
9
+
10
+ desc "Update Library Files"
11
+ task :libraries do
12
+ puts "Updating Library Files"
13
+
14
+ require "fileutils"
15
+
16
+ libs = ["topolys", "osut", "oslg", "tbd"]
17
+ lib_files = {}
18
+
19
+ $LOAD_PATH.each do |load_path|
20
+ libs.each do |l|
21
+ if load_path.include?(l)
22
+ lib_files[l] = Dir.glob(File.join(load_path, "#{l}/*.rb"))
23
+
24
+ unless l == "topolys"
25
+ lib_files[l].delete_if { |f| f.include?("version.rb") }
26
+ end
27
+
28
+ puts "#{l} lib files:"
29
+ lib_files[l].each { |lf| puts "... #{lf}" }
30
+ puts
31
+ end
32
+ end
33
+ end
34
+
35
+ dirs = Dir.glob(File.join(__dir__, "lib/measures/*"))
36
+
37
+ dirs.each do |dir|
38
+ lib_files.each do |l, files|
39
+ files.each { |file| FileUtils.cp(file, "#{dir}/resources/.") }
40
+ end
41
+ end
42
+ end
43
+
44
+ desc "Update Measure"
45
+ task :measure do
46
+ puts "Updating Measure"
47
+
48
+ require "openstudio"
49
+ require "open3"
50
+
51
+ cli = OpenStudio.getOpenStudioCLI
52
+ command = "#{cli} measure -t './lib/measures'"
53
+ puts command
54
+ out, err, ps = Open3.capture3({"BUNDLE_GEMFILE"=>nil}, command)
55
+ raise "Failed to update measures\n\n#{out}\n\n#{err}" unless ps.success?
56
+ end
57
+ task :measure => [:libraries]
58
+
59
+ # default spec test depends on updating measure and library files
60
+ task :spec => [:measure]
data/json/midrise.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
3
+ "description": "sorting out multiple story PSI sets (midrise)",
4
+ "psis": [{
5
+ "id": "compliant",
6
+ "rimjoist": 0.3,
7
+ "parapet": 0.325,
8
+ "fenestration": 0.35,
9
+ "corner": 0.45,
10
+ "balcony": 0.5,
11
+ "party": 0.5,
12
+ "grade": 0.45
13
+ },
14
+ {
15
+ "id": "Building Story 1",
16
+ "rimjoist": 0.501,
17
+ "parapet": 0.511,
18
+ "fenestration": 0.521,
19
+ "cornerconcave": 0.531,
20
+ "cornerconvex": 0.541,
21
+ "balcony": 0.551,
22
+ "party": 0.561,
23
+ "grade": 0.571
24
+ },
25
+ {
26
+ "id": "Building Story 2",
27
+ "rimjoist": 0.401,
28
+ "parapet": 0.411,
29
+ "fenestration": 0.421,
30
+ "cornerconcave": 0.431,
31
+ "cornerconvex": 0.441,
32
+ "balcony": 0.451,
33
+ "party": 0.461,
34
+ "grade": 0.471
35
+ },
36
+ {
37
+ "id": "Building Story 3",
38
+ "rimjoist": 0.301,
39
+ "parapet": 0.311,
40
+ "fenestration": 0.321,
41
+ "cornerconcave": 0.331,
42
+ "cornerconvex": 0.341,
43
+ "balcony": 0.351,
44
+ "party": 0.361,
45
+ "grade": 0.371
46
+ }
47
+ ],
48
+ "building": {
49
+ "psi": "compliant"
50
+ },
51
+ "stories": [{
52
+ "id": "Building Story 1",
53
+ "psi": "Building Story 1"
54
+ },
55
+ {
56
+ "id": "Building Story 2",
57
+ "psi": "Building Story 2"
58
+ },
59
+ {
60
+ "id": "Building Story 3",
61
+ "psi": "Building Story 3"
62
+ }
63
+ ]
64
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
3
+ "description": "testing TBD JSON for 5ZoneNoHVAC",
4
+ "psis": [
5
+ {
6
+ "id": "outstanding",
7
+ "rimjoist": 0.09,
8
+ "parapet": 0.09,
9
+ "fenestration": 0.09,
10
+ "corner": 0.09,
11
+ "balcony": 0.09,
12
+ "party": 0.09,
13
+ "grade": 0.09
14
+ }
15
+ ],
16
+ "building": {
17
+ "psi": "outstanding"
18
+ }
19
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
3
+ "description": "testing TBD JSON for 5ZoneNoHVAC",
4
+ "psis": [
5
+ {
6
+ "id": "BTAP-ExteriorWall-Mass-6 good",
7
+ "rimjoist": 0.02,
8
+ "parapet": 0.23,
9
+ "fenestration": 0.078,
10
+ "corner": 0.09,
11
+ "balcony": 0.2,
12
+ "party": 0.2,
13
+ "grade": 0.32,
14
+ "joint": 0.1,
15
+ "transition": 0.0
16
+ },
17
+ {
18
+ "id": "BTAP-ExteriorWall-Mass-2 good",
19
+ "rimjoist": 0.01,
20
+ "parapet": 0.23,
21
+ "fenestration": 0.078,
22
+ "corner": 0.09,
23
+ "balcony": 0.2,
24
+ "party": 0.2,
25
+ "grade": 0.32,
26
+ "joint": 0.1,
27
+ "transition": 0.0
28
+ },
29
+ {
30
+ "id": "BTAP-ExteriorWall-Metal-1 good",
31
+ "rimjoist": 0.03,
32
+ "parapet": 0.35,
33
+ "fenestration": 0.078,
34
+ "corner": 0.07,
35
+ "balcony": 0.2,
36
+ "party": 0.2,
37
+ "grade": 0.5,
38
+ "joint": 0.1,
39
+ "transition": 0.0
40
+ },
41
+ {
42
+ "id": "BTAP-ExteriorWall-WoodFramed-5 good",
43
+ "rimjoist": 0.03,
44
+ "parapet": 0.05,
45
+ "fenestration": 0.078,
46
+ "corner": 0.04,
47
+ "balcony": 0.2,
48
+ "party": 0.2,
49
+ "grade": 0.09,
50
+ "joint": 0.1,
51
+ "transition": 0.0
52
+ },
53
+ {
54
+ "id": "BTAP-ExteriorWall-SteelFramed-1 good",
55
+ "rimjoist": 0.09,
56
+ "parapet": 0.35,
57
+ "fenestration": 0.078,
58
+ "corner": 0.09,
59
+ "balcony": 0.2,
60
+ "party": 0.2,
61
+ "grade": 0.47,
62
+ "joint": 0.1,
63
+ "transition": 0.0
64
+ }
65
+ ],
66
+ "spacetypes": [
67
+ {
68
+ "id": "Warehouse - fine",
69
+ "psi": "BTAP-ExteriorWall-Mass-6 good"
70
+ },
71
+ {
72
+ "id": "Audience - auditorium",
73
+ "psi": "BTAP-ExteriorWall-Mass-2 good"
74
+ },
75
+ {
76
+ "id": "Workshop space",
77
+ "psi": "BTAP-ExteriorWall-Metal-1 good"
78
+ },
79
+ {
80
+ "id": "Office - enclosed",
81
+ "psi": "BTAP-ExteriorWall-WoodFramed-5 good"
82
+ },
83
+ {
84
+ "id": "Sales area",
85
+ "psi": "BTAP-ExteriorWall-SteelFramed-1 good"
86
+ }
87
+ ],
88
+ "building": {
89
+ "psi": "BTAP-ExteriorWall-Mass-2 good"
90
+ }
91
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
3
+ "description": "testing JSON surface KHI entries",
4
+ "psis": [{
5
+ "id": "good",
6
+ "parapet": 0.5,
7
+ "party": 0.9
8
+ },
9
+ {
10
+ "id": "compliant",
11
+ "rimjoist": 0.3,
12
+ "parapet": 0.325,
13
+ "fenestration": 0.35,
14
+ "corner": 0.45,
15
+ "balcony": 0.5,
16
+ "party": 0.5,
17
+ "grade": 0.45
18
+ }
19
+ ],
20
+ "khis": [{
21
+ "id": "column",
22
+ "point": 0.5
23
+ },
24
+ {
25
+ "id": "support",
26
+ "point": 0.5
27
+ }
28
+ ],
29
+ "surfaces": [{
30
+ "id": "Entryway Wall 5",
31
+ "khis": [{
32
+ "id": "column",
33
+ "count": 3
34
+ },
35
+ {
36
+ "id": "support",
37
+ "count": 4
38
+ }
39
+ ]
40
+ }]
41
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
3
+ "description": "testing TBD JSON for seb.osm",
4
+ "psis": [{
5
+ "id": "bad",
6
+ "fenestration": 1.1
7
+ },
8
+ {
9
+ "id": "good",
10
+ "parapet": 0.5,
11
+ "rimjoist": 0.9
12
+ },
13
+ {
14
+ "id": "compliant",
15
+ "rimjoist": 0.3,
16
+ "parapet": 0.325,
17
+ "fenestration": 0.35,
18
+ "corner": 0.45,
19
+ "balcony": 0.5,
20
+ "party": 0.5,
21
+ "grade": 0.45
22
+ }
23
+ ],
24
+ "khis": [{
25
+ "id": "column",
26
+ "point": 0.0
27
+ },
28
+ {
29
+ "id": "support",
30
+ "point": 0.0
31
+ }
32
+ ],
33
+ "building": {
34
+ "psi": "(non thermal bridging)"
35
+ },
36
+ "surfaces": [{
37
+ "id": "Entryway Wall 5",
38
+ "khis": [{
39
+ "id": "column",
40
+ "count": 3
41
+ },
42
+ {
43
+ "id": "support",
44
+ "count": 4
45
+ }
46
+ ],
47
+ "psi": "(non thermal bridging)"
48
+ }],
49
+ "edges": [{
50
+ "psi": "bad",
51
+ "type": "fenestration",
52
+ "surfaces": [
53
+ "Entryway Wall 5",
54
+ "Sub Surface 8"
55
+ ]
56
+ }]
57
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "schema": "https://github.com/rd2/tbd/blob/master/tbd.schema.json",
3
+ "description": "test_warehouse.osm with custom subsurface U-factors",
4
+ "khis": [{
5
+ "id": "OK",
6
+ "point": 0.8
7
+ }],
8
+ "surfaces": [{
9
+ "id": "Fine Storage Front Wall",
10
+ "khis": [{
11
+ "id": "OK",
12
+ "count": 2
13
+ }]
14
+ }],
15
+ "subsurfaces": [{
16
+ "id": "Office Front Wall Window 1",
17
+ "usi": 4.0
18
+ },
19
+ {
20
+ "id": "Office Front Wall Window2",
21
+ "usi": 3.5
22
+ }
23
+ ]
24
+ }