tbd 3.2.3 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/tbd/version.rb CHANGED
@@ -21,5 +21,5 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  module TBD
24
- VERSION = "3.2.3".freeze
24
+ VERSION = "3.3.0".freeze # TBD release version
25
25
  end
data/lib/tbd.rb CHANGED
@@ -22,72 +22,52 @@
22
22
 
23
23
  require "openstudio"
24
24
 
25
- begin
26
- # Try to load from the Topolys gem.
25
+ begin # try to load from the Topolys gem
27
26
  require "topolys"
28
-
29
- # puts "... relying on the Topolys gem"
30
27
  rescue LoadError
31
28
  require_relative "topolys/model"
32
29
  require_relative "topolys/geometry"
33
30
  require_relative "topolys/transformation"
34
31
  require_relative "topolys/version"
35
-
36
- # puts "... fallback to local Topolys files"
37
32
  end
38
33
 
39
- begin
40
- # Try to load from the OSlg gem.
34
+ begin # try to load from the Topolys gem
41
35
  require "oslg"
42
-
43
- # puts "... relying on the OSlg gem"
44
36
  rescue LoadError
45
37
  require_relative "oslg/oslog"
46
38
  require_relative "osut/version"
47
-
48
- # puts "... fallback to local OSlg files"
49
39
  end
50
40
 
51
- begin
52
- # Try to load from the OSut gem.
41
+ begin # try to load from the Topolys gem
53
42
  require "osut"
54
-
55
- # puts "... relying on the OSut gem"
56
43
  rescue LoadError
57
44
  require_relative "osut/utils"
58
45
  require_relative "osut/version"
59
-
60
- # puts "... fallback to local OSut files"
61
46
  end
62
47
 
63
- begin
64
- # Try to load from the TBD gem.
48
+ begin # try to load from the Topolys gem
65
49
  require "tbd/psi"
66
50
  require "tbd/geo"
67
51
  require "tbd/ua"
68
52
  require "tbd/version"
69
-
70
- # puts "... relying on the TBD gem"
71
53
  rescue LoadError
72
54
  require_relative "tbd/psi"
73
55
  require_relative "tbd/geo"
74
56
  require_relative "tbd/ua"
75
57
  require_relative "tbd/version"
76
-
77
- # puts "... fallback to local TBD files"
78
58
  end
79
59
 
80
60
  module TBD
81
- extend OSut # OpenStudio utilities
82
-
83
- TOL = OSut::TOL
84
- TOL2 = OSut::TOL2
85
- DBG = OSut::DEBUG # mainly to flag invalid arguments for devs (buggy code)
86
- INF = OSut::INFO # informs TBD user of measure success or failure
87
- WRN = OSut::WARN # e.g. WARN users of 'iffy' .osm inputs (yet not critical)
88
- ERR = OSut::ERR # e.g. flag invalid .osm inputs
89
- FTL = OSut::FATAL # e.g. invalid TBD JSON format/entries
90
- NS = "nameString" # OpenStudio IdfObject nameString method
61
+ extend OSut # OpenStudio utilities
62
+
63
+ TOL = OSut::TOL # default distance tolerance (m)
64
+ TOL2 = OSut::TOL2 # default area tolerance (m2)
65
+ DBG = OSut::DEBUG # github.com/rd2/oslg
66
+ INF = OSut::INFO # github.com/rd2/oslg
67
+ WRN = OSut::WARN # github.com/rd2/oslg
68
+ ERR = OSut::ERR # github.com/rd2/oslg
69
+ FTL = OSut::FATAL # github.com/rd2/oslg
70
+ NS = "nameString" # OpenStudio IdfObject nameString method
91
71
 
92
72
  extend TBD
93
73
  end
data/tbd.gemspec CHANGED
@@ -25,11 +25,11 @@ Gem::Specification.new do |s|
25
25
  s.bindir = "exe"
26
26
  s.require_paths = ["lib"]
27
27
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
- s.required_ruby_version = [">= 2.5.0", "< 2.7.3"]
28
+ s.required_ruby_version = [">= 2.5.0", "< 3"]
29
29
  s.metadata = {}
30
30
 
31
31
  s.add_dependency "topolys", "~> 0"
32
- s.add_dependency "osut", "~> 0.3.0"
32
+ s.add_dependency "osut", "~> 0"
33
33
  s.add_dependency "json-schema", "~> 2.7.0"
34
34
 
35
35
  s.add_development_dependency "bundler", "~> 2.1"
data/tbd.schema.json CHANGED
@@ -99,55 +99,159 @@
99
99
  "type": "number"
100
100
  },
101
101
  "parapet": {
102
- "title": "Roof/wall edge PSI",
102
+ "title": "Parapet/overhang edge PSI",
103
103
  "type": "number"
104
104
  },
105
105
  "parapetconcave": {
106
- "title": "Concave roof/wall edge PSI",
106
+ "title": "Concave parapet/overhang edge PSI",
107
107
  "type": "number"
108
108
  },
109
109
  "parapetconvex": {
110
- "title": "Convex roof/wall edge PSI",
110
+ "title": "Convex parapet/overhang edge PSI",
111
+ "type": "number"
112
+ },
113
+ "roof": {
114
+ "title": "Roof/wall (other than parapet/overhang) edge PSI",
115
+ "type": "number"
116
+ },
117
+ "roofconcave": {
118
+ "title": "Concave (other than parapet/overhang) roof/wall edge PSI",
119
+ "type": "number"
120
+ },
121
+ "roofconvex": {
122
+ "title": "Convex (other than parapet/overhang) roof/wall edge PSI",
111
123
  "type": "number"
112
124
  },
113
125
  "fenestration": {
114
- "title": "Window, door, skylight perimeter PSI",
126
+ "title": "Window or glazed door perimeter PSI",
115
127
  "type": "number"
116
128
  },
117
129
  "head": {
118
- "title": "Aperture head/lintel PSI",
130
+ "title": "Window or glazed door header/lintel PSI",
119
131
  "type": "number"
120
132
  },
121
133
  "headconcave": {
122
- "title": "Concave aperture head/lintel PSI",
134
+ "title": "Concave window or glazed door header/lintel PSI",
123
135
  "type": "number"
124
136
  },
125
137
  "headconvex": {
126
- "title": "Convex aperture head/lintel PSI",
138
+ "title": "Convex window or glazed door header/lintel PSI",
127
139
  "type": "number"
128
140
  },
129
141
  "sill": {
130
- "title": "Aperture sill/base PSI",
142
+ "title": "Window or glazed door sill/threshold PSI",
131
143
  "type": "number"
132
144
  },
133
145
  "sillconcave": {
134
- "title": "Concave aperture sill/base PSI",
146
+ "title": "Concave window or glazed door sill/threshold PSI",
135
147
  "type": "number"
136
148
  },
137
149
  "sillconvex": {
138
- "title": "Convex aperture sill/base PSI",
150
+ "title": "Convex window or glazed door sill/threshold PSI",
139
151
  "type": "number"
140
152
  },
141
153
  "jamb": {
142
- "title": "Aperture jamb/side PSI",
154
+ "title": "Window or glazed door side jamb PSI",
143
155
  "type": "number"
144
156
  },
145
157
  "jambconcave": {
146
- "title": "Concave aperture jamb/side PSI",
158
+ "title": "Concave window or glazed door side jamb PSI",
147
159
  "type": "number"
148
160
  },
149
161
  "jambconvex": {
150
- "title": "Convex aperture jamb/side PSI",
162
+ "title": "Convex window or glazed door side jamb PSI",
163
+ "type": "number"
164
+ },
165
+ "door": {
166
+ "title": "Opaque door perimeter PSI",
167
+ "type": "number"
168
+ },
169
+ "doorhead": {
170
+ "title": "Opaque door header/lintel PSI",
171
+ "type": "number"
172
+ },
173
+ "doorheadconcave": {
174
+ "title": "Concave opaque door header/lintel PSI",
175
+ "type": "number"
176
+ },
177
+ "doorheadconvex": {
178
+ "title": "Convex opaque door header/lintel PSI",
179
+ "type": "number"
180
+ },
181
+ "doorsill": {
182
+ "title": "Opaque door sill/threshold PSI",
183
+ "type": "number"
184
+ },
185
+ "doorsillconcave": {
186
+ "title": "Concave opaque door sill/threshold PSI",
187
+ "type": "number"
188
+ },
189
+ "doorsillconvex": {
190
+ "title": "Convex opaque door sill/threshold PSI",
191
+ "type": "number"
192
+ },
193
+ "doorjamb": {
194
+ "title": "Opaque door side jamb PSI",
195
+ "type": "number"
196
+ },
197
+ "doorjambconcave": {
198
+ "title": "Concave opaque door side jamb PSI",
199
+ "type": "number"
200
+ },
201
+ "doorjambconvex": {
202
+ "title": "Convex opaque door side jamb PSI",
203
+ "type": "number"
204
+ },
205
+ "skylight": {
206
+ "title": "Skylight perimeter PSI",
207
+ "type": "number"
208
+ },
209
+ "skylighthead": {
210
+ "title": "Skylight header/lintel PSI",
211
+ "type": "number"
212
+ },
213
+ "skylightheadconcave": {
214
+ "title": "Concave skylight header/lintel PSI",
215
+ "type": "number"
216
+ },
217
+ "skylightheadconvex": {
218
+ "title": "Convex skylight header/lintel PSI",
219
+ "type": "number"
220
+ },
221
+ "skylightsill": {
222
+ "title": "Skylight sill/threshold PSI",
223
+ "type": "number"
224
+ },
225
+ "skylightsillconcave": {
226
+ "title": "Concave skylight sill/threshold PSI",
227
+ "type": "number"
228
+ },
229
+ "skylightsillconvex": {
230
+ "title": "Convex skylight sill/threshold PSI",
231
+ "type": "number"
232
+ },
233
+ "skylightjamb": {
234
+ "title": "Skylight side jamb PSI",
235
+ "type": "number"
236
+ },
237
+ "skylightjambconcave": {
238
+ "title": "Concave skylight side jamb PSI",
239
+ "type": "number"
240
+ },
241
+ "skylightjambconvex": {
242
+ "title": "Convex skylight side jamb PSI",
243
+ "type": "number"
244
+ },
245
+ "spandrel": {
246
+ "title": "Spandrel/other edge PSI",
247
+ "type": "number"
248
+ },
249
+ "spandrelconcave": {
250
+ "title": "Concave spandrel/other edge PSI",
251
+ "type": "number"
252
+ },
253
+ "spandrelconvex": {
254
+ "title": "Convex spandrel/other edge PSI",
151
255
  "type": "number"
152
256
  },
153
257
  "corner": {
@@ -174,6 +278,18 @@
174
278
  "title": "Convex floor/balcony edge PSI ",
175
279
  "type": "number"
176
280
  },
281
+ "balconysill": {
282
+ "title": "Floor/balcony/sill edge PSI ",
283
+ "type": "number"
284
+ },
285
+ "balconysillconcave": {
286
+ "title": "Concave floor/balcony/sill edge PSI ",
287
+ "type": "number"
288
+ },
289
+ "balconysillconvex": {
290
+ "title": "Convex floor/balcony/sill edge PSI ",
291
+ "type": "number"
292
+ },
177
293
  "party": {
178
294
  "title": "Party wall edge PSI",
179
295
  "type": "number"
@@ -194,7 +310,7 @@
194
310
  "title": "Concave floor/foundation edge PSI",
195
311
  "type": "number"
196
312
  },
197
- "gradecovex": {
313
+ "gradeconvex": {
198
314
  "title": "Convex floor/foundation edge PSI",
199
315
  "type": "number"
200
316
  },
@@ -250,6 +366,9 @@
250
366
  "parapet",
251
367
  "parapetconcave",
252
368
  "parapetconvex",
369
+ "roof",
370
+ "roofconcave",
371
+ "roofconvex",
253
372
  "fenestration",
254
373
  "head",
255
374
  "headconcave",
@@ -260,12 +379,38 @@
260
379
  "jamb",
261
380
  "jambconcave",
262
381
  "jambconvex",
382
+ "door",
383
+ "doorhead",
384
+ "doorheadconcave",
385
+ "doorheadconvex",
386
+ "doorsill",
387
+ "doorsillconcave",
388
+ "doorsillconvex",
389
+ "doorjamb",
390
+ "doorjambconcave",
391
+ "doorjambconvex",
392
+ "skylight",
393
+ "skylighthead",
394
+ "skylightheadconcave",
395
+ "skylightheadconvex",
396
+ "skylightsill",
397
+ "skylightsillconcave",
398
+ "skylightsillconvex",
399
+ "skylightjamb",
400
+ "skylightjambconcave",
401
+ "skylightjambconvex",
402
+ "spandrel",
403
+ "spandrelconcave",
404
+ "spandrelconvex",
263
405
  "corner",
264
406
  "cornerconcave",
265
407
  "cornerconvex",
266
408
  "balcony",
267
409
  "balconyconcave",
268
410
  "balconyconvex",
411
+ "balconysill",
412
+ "balconysillconcave",
413
+ "balconysillconvex",
269
414
  "party",
270
415
  "partyconcave",
271
416
  "partyconvex",
@@ -355,6 +500,10 @@
355
500
  "title": "PSI-set identifier",
356
501
  "type": "string"
357
502
  },
503
+ "parapet": {
504
+ "title": "wall-roof edge as parapet",
505
+ "type": "boolean"
506
+ },
358
507
  "khis": {
359
508
  "title": "Surface-hosted point thermal bridges",
360
509
  "type": "array",
@@ -397,12 +546,16 @@
397
546
  "psi": {
398
547
  "title": "PSI-set identifier",
399
548
  "type": "string"
549
+ },
550
+ "parapet": {
551
+ "title": "wall-roof edge as parapet",
552
+ "type": "boolean"
400
553
  }
401
554
  },
402
555
  "additionalProperties": false,
556
+ "minProperties": 2,
403
557
  "required": [
404
- "id",
405
- "psi"
558
+ "id"
406
559
  ]
407
560
  },
408
561
  "SpaceType": {
@@ -416,12 +569,16 @@
416
569
  "psi": {
417
570
  "title": "PSI-set identifier",
418
571
  "type": "string"
572
+ },
573
+ "parapet": {
574
+ "title": "wall-roof edge as parapet",
575
+ "type": "boolean"
419
576
  }
420
577
  },
421
578
  "additionalProperties": false,
579
+ "minProperties": 2,
422
580
  "required": [
423
- "id",
424
- "psi"
581
+ "id"
425
582
  ]
426
583
  },
427
584
  "Story": {
@@ -435,12 +592,16 @@
435
592
  "psi": {
436
593
  "title": "PSI-set identifier",
437
594
  "type": "string"
595
+ },
596
+ "parapet": {
597
+ "title": "wall-roof edge as parapet",
598
+ "type": "boolean"
438
599
  }
439
600
  },
440
601
  "additionalProperties": false,
602
+ "minProperties": 2,
441
603
  "required": [
442
- "id",
443
- "psi"
604
+ "id"
444
605
  ]
445
606
  },
446
607
  "Building": {
@@ -450,9 +611,14 @@
450
611
  "psi": {
451
612
  "title": "PSI-set identifier",
452
613
  "type": "string"
614
+ },
615
+ "parapet": {
616
+ "title": "wall-roof edge as parapet",
617
+ "type": "boolean"
453
618
  }
454
619
  },
455
620
  "additionalProperties": false,
621
+ "minProperties": 1,
456
622
  "required": [
457
623
  "psi"
458
624
  ]
@@ -556,6 +722,9 @@
556
722
  "corners": {
557
723
  "type": "string"
558
724
  },
725
+ "balconies": {
726
+ "type": "string"
727
+ },
559
728
  "grade": {
560
729
  "type": "string"
561
730
  },
data/v291_MacOS.md CHANGED
@@ -1,8 +1,6 @@
1
- _We reiterate that building professionals and energy modellers 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")._
1
+ _We reiterate that building professionals and energy modellers 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"). Those instead interested in exploring/tweaking the source code (cloned or forked versions of TBD) can follow the Windows or MacOS Ruby setup described in TBD's [README](https://github.com/rd2/tbd#readme)._
2
2
 
3
- _Those instead interested in exploring/tweaking the source code (cloned or forked versions of TBD) can follow the Windows or MacOS Ruby setup described in TBD's [README](https://github.com/rd2/tbd#readme)._
4
-
5
- _The MacOS instructions below specifically target (older) Ruby v2.2.5 environments, needed for developing OpenStudio [v2.9.1](https://github.com/NREL/OpenStudio/releases/tag/v2.9.1) measures - the most up-to-date version that remains [compatible](https://github.com/NREL/OpenStudio/wiki/OpenStudio-SDK-Version-Compatibility-Matrix) with [SketchUp Make 2017](https://help.sketchup.com/en/downloading-older-versions). More recent OpenStudio versions (e.g. v3.4.0) can - to a large degree - safely translate older .osm files. Although TBD (and Topolys) are systematically tested against updated OpenStudio versions (v2.9.1 onwards), the following Ruby v2.2.5 setup is no longer tested or maintained. Nonetheless, it may be of some help for the more adventurous of you._
3
+ _The MacOS instructions below specifically target (older) Ruby v2.2.5 environments, needed for developing OpenStudio [v2.9.1](https://github.com/NREL/OpenStudio/releases/tag/v2.9.1) measures - the most up-to-date version that remains [compatible](https://github.com/NREL/OpenStudio/wiki/OpenStudio-SDK-Version-Compatibility-Matrix) with [SketchUp Make 2017](https://help.sketchup.com/en/downloading-older-versions). More recent OpenStudio versions (e.g. v3.6.1) can - to a large degree - safely translate older .osm files. Although TBD (and Topolys) are systematically tested against updated OpenStudio versions (v2.9.1 onwards), the following Ruby v2.2.5 setup is no longer tested or maintained. Nonetheless, it may be of some help for the more adventurous of you._
6
4
 
7
5
 
8
6
  ## v2.9.1 MacOS Instructions
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbd
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.3
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Bourgeois & Dan Macumber
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-16 00:00:00.000000000 Z
11
+ date: 2023-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: topolys
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.0
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.0
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: json-schema
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -120,6 +120,7 @@ files:
120
120
  - ".github/workflows/pull_request.yml"
121
121
  - ".gitignore"
122
122
  - ".rspec"
123
+ - ".yardopts"
123
124
  - Gemfile
124
125
  - LICENSE.md
125
126
  - README.md
@@ -129,6 +130,9 @@ files:
129
130
  - json/tbd_seb_n2.json
130
131
  - json/tbd_seb_n4.json
131
132
  - json/tbd_warehouse10.json
133
+ - json/tbd_warehouse17.json
134
+ - json/tbd_warehouse18.json
135
+ - json/tbd_warehouse4.json
132
136
  - lib/measures/tbd/LICENSE.md
133
137
  - lib/measures/tbd/README.md
134
138
  - lib/measures/tbd/README.md.erb
@@ -161,7 +165,7 @@ licenses:
161
165
  - MIT
162
166
  metadata:
163
167
  homepage_uri: https://github.com/rd2/tbd
164
- source_code_uri: https://github.com/rd2/tbd/tree/v3.2.3
168
+ source_code_uri: https://github.com/rd2/tbd/tree/v3.3.0
165
169
  bug_tracker_uri: https://github.com/rd2/tbd/issues
166
170
  post_install_message:
167
171
  rdoc_options: []
@@ -174,7 +178,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
178
  version: 2.5.0
175
179
  - - "<"
176
180
  - !ruby/object:Gem::Version
177
- version: 2.7.3
181
+ version: '3'
178
182
  required_rubygems_version: !ruby/object:Gem::Requirement
179
183
  requirements:
180
184
  - - ">="