tbd 3.2.3 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/tbd/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # MIT License
2
2
  #
3
- # Copyright (c) 2020-2023 Denis Bourgeois & Dan Macumber
3
+ # Copyright (c) 2020-2024 Denis Bourgeois & Dan Macumber
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the "Software"), to deal
@@ -21,5 +21,5 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  module TBD
24
- VERSION = "3.2.3".freeze
24
+ VERSION = "3.4.0".freeze # TBD release version
25
25
  end
data/lib/tbd.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # MIT License
2
2
  #
3
- # Copyright (c) 2020-2023 Denis Bourgeois & Dan Macumber
3
+ # Copyright (c) 2020-2024 Denis Bourgeois & Dan Macumber
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the "Software"), to deal
@@ -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,171 @@
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",
123
+ "type": "number"
124
+ },
125
+ "ceiling": {
126
+ "title": "Intermediate ceiling (not floor) edge PSI",
127
+ "type": "number"
128
+ },
129
+ "ceilingconcave": {
130
+ "title": "Concave intermediate ceiling (not floor) edge PSI",
131
+ "type": "number"
132
+ },
133
+ "ceilingconvex": {
134
+ "title": "Convex intermediate ceiling (not floor) edge PSI",
111
135
  "type": "number"
112
136
  },
113
137
  "fenestration": {
114
- "title": "Window, door, skylight perimeter PSI",
138
+ "title": "Window or glazed door perimeter PSI",
115
139
  "type": "number"
116
140
  },
117
141
  "head": {
118
- "title": "Aperture head/lintel PSI",
142
+ "title": "Window or glazed door header/lintel PSI",
119
143
  "type": "number"
120
144
  },
121
145
  "headconcave": {
122
- "title": "Concave aperture head/lintel PSI",
146
+ "title": "Concave window or glazed door header/lintel PSI",
123
147
  "type": "number"
124
148
  },
125
149
  "headconvex": {
126
- "title": "Convex aperture head/lintel PSI",
150
+ "title": "Convex window or glazed door header/lintel PSI",
127
151
  "type": "number"
128
152
  },
129
153
  "sill": {
130
- "title": "Aperture sill/base PSI",
154
+ "title": "Window or glazed door sill/threshold PSI",
131
155
  "type": "number"
132
156
  },
133
157
  "sillconcave": {
134
- "title": "Concave aperture sill/base PSI",
158
+ "title": "Concave window or glazed door sill/threshold PSI",
135
159
  "type": "number"
136
160
  },
137
161
  "sillconvex": {
138
- "title": "Convex aperture sill/base PSI",
162
+ "title": "Convex window or glazed door sill/threshold PSI",
139
163
  "type": "number"
140
164
  },
141
165
  "jamb": {
142
- "title": "Aperture jamb/side PSI",
166
+ "title": "Window or glazed door side jamb PSI",
143
167
  "type": "number"
144
168
  },
145
169
  "jambconcave": {
146
- "title": "Concave aperture jamb/side PSI",
170
+ "title": "Concave window or glazed door side jamb PSI",
147
171
  "type": "number"
148
172
  },
149
173
  "jambconvex": {
150
- "title": "Convex aperture jamb/side PSI",
174
+ "title": "Convex window or glazed door side jamb PSI",
175
+ "type": "number"
176
+ },
177
+ "door": {
178
+ "title": "Opaque door perimeter PSI",
179
+ "type": "number"
180
+ },
181
+ "doorhead": {
182
+ "title": "Opaque door header/lintel PSI",
183
+ "type": "number"
184
+ },
185
+ "doorheadconcave": {
186
+ "title": "Concave opaque door header/lintel PSI",
187
+ "type": "number"
188
+ },
189
+ "doorheadconvex": {
190
+ "title": "Convex opaque door header/lintel PSI",
191
+ "type": "number"
192
+ },
193
+ "doorsill": {
194
+ "title": "Opaque door sill/threshold PSI",
195
+ "type": "number"
196
+ },
197
+ "doorsillconcave": {
198
+ "title": "Concave opaque door sill/threshold PSI",
199
+ "type": "number"
200
+ },
201
+ "doorsillconvex": {
202
+ "title": "Convex opaque door sill/threshold PSI",
203
+ "type": "number"
204
+ },
205
+ "doorjamb": {
206
+ "title": "Opaque door side jamb PSI",
207
+ "type": "number"
208
+ },
209
+ "doorjambconcave": {
210
+ "title": "Concave opaque door side jamb PSI",
211
+ "type": "number"
212
+ },
213
+ "doorjambconvex": {
214
+ "title": "Convex opaque door side jamb PSI",
215
+ "type": "number"
216
+ },
217
+ "skylight": {
218
+ "title": "Skylight perimeter PSI",
219
+ "type": "number"
220
+ },
221
+ "skylighthead": {
222
+ "title": "Skylight header/lintel PSI",
223
+ "type": "number"
224
+ },
225
+ "skylightheadconcave": {
226
+ "title": "Concave skylight header/lintel PSI",
227
+ "type": "number"
228
+ },
229
+ "skylightheadconvex": {
230
+ "title": "Convex skylight header/lintel PSI",
231
+ "type": "number"
232
+ },
233
+ "skylightsill": {
234
+ "title": "Skylight sill/threshold PSI",
235
+ "type": "number"
236
+ },
237
+ "skylightsillconcave": {
238
+ "title": "Concave skylight sill/threshold PSI",
239
+ "type": "number"
240
+ },
241
+ "skylightsillconvex": {
242
+ "title": "Convex skylight sill/threshold PSI",
243
+ "type": "number"
244
+ },
245
+ "skylightjamb": {
246
+ "title": "Skylight side jamb PSI",
247
+ "type": "number"
248
+ },
249
+ "skylightjambconcave": {
250
+ "title": "Concave skylight side jamb PSI",
251
+ "type": "number"
252
+ },
253
+ "skylightjambconvex": {
254
+ "title": "Convex skylight side jamb PSI",
255
+ "type": "number"
256
+ },
257
+ "spandrel": {
258
+ "title": "Spandrel/other edge PSI",
259
+ "type": "number"
260
+ },
261
+ "spandrelconcave": {
262
+ "title": "Concave spandrel/other edge PSI",
263
+ "type": "number"
264
+ },
265
+ "spandrelconvex": {
266
+ "title": "Convex spandrel/other edge PSI",
151
267
  "type": "number"
152
268
  },
153
269
  "corner": {
@@ -174,6 +290,18 @@
174
290
  "title": "Convex floor/balcony edge PSI ",
175
291
  "type": "number"
176
292
  },
293
+ "balconysill": {
294
+ "title": "Floor/balcony/sill edge PSI ",
295
+ "type": "number"
296
+ },
297
+ "balconysillconcave": {
298
+ "title": "Concave floor/balcony/sill edge PSI ",
299
+ "type": "number"
300
+ },
301
+ "balconysillconvex": {
302
+ "title": "Convex floor/balcony/sill edge PSI ",
303
+ "type": "number"
304
+ },
177
305
  "party": {
178
306
  "title": "Party wall edge PSI",
179
307
  "type": "number"
@@ -194,7 +322,7 @@
194
322
  "title": "Concave floor/foundation edge PSI",
195
323
  "type": "number"
196
324
  },
197
- "gradecovex": {
325
+ "gradeconvex": {
198
326
  "title": "Convex floor/foundation edge PSI",
199
327
  "type": "number"
200
328
  },
@@ -250,6 +378,12 @@
250
378
  "parapet",
251
379
  "parapetconcave",
252
380
  "parapetconvex",
381
+ "roof",
382
+ "roofconcave",
383
+ "roofconvex",
384
+ "ceiling",
385
+ "ceilingconcave",
386
+ "ceilingconvex",
253
387
  "fenestration",
254
388
  "head",
255
389
  "headconcave",
@@ -260,12 +394,38 @@
260
394
  "jamb",
261
395
  "jambconcave",
262
396
  "jambconvex",
397
+ "door",
398
+ "doorhead",
399
+ "doorheadconcave",
400
+ "doorheadconvex",
401
+ "doorsill",
402
+ "doorsillconcave",
403
+ "doorsillconvex",
404
+ "doorjamb",
405
+ "doorjambconcave",
406
+ "doorjambconvex",
407
+ "skylight",
408
+ "skylighthead",
409
+ "skylightheadconcave",
410
+ "skylightheadconvex",
411
+ "skylightsill",
412
+ "skylightsillconcave",
413
+ "skylightsillconvex",
414
+ "skylightjamb",
415
+ "skylightjambconcave",
416
+ "skylightjambconvex",
417
+ "spandrel",
418
+ "spandrelconcave",
419
+ "spandrelconvex",
263
420
  "corner",
264
421
  "cornerconcave",
265
422
  "cornerconvex",
266
423
  "balcony",
267
424
  "balconyconcave",
268
425
  "balconyconvex",
426
+ "balconysill",
427
+ "balconysillconcave",
428
+ "balconysillconvex",
269
429
  "party",
270
430
  "partyconcave",
271
431
  "partyconvex",
@@ -355,6 +515,10 @@
355
515
  "title": "PSI-set identifier",
356
516
  "type": "string"
357
517
  },
518
+ "parapet": {
519
+ "title": "wall-roof edge as parapet",
520
+ "type": "boolean"
521
+ },
358
522
  "khis": {
359
523
  "title": "Surface-hosted point thermal bridges",
360
524
  "type": "array",
@@ -397,12 +561,16 @@
397
561
  "psi": {
398
562
  "title": "PSI-set identifier",
399
563
  "type": "string"
564
+ },
565
+ "parapet": {
566
+ "title": "wall-roof edge as parapet",
567
+ "type": "boolean"
400
568
  }
401
569
  },
402
570
  "additionalProperties": false,
571
+ "minProperties": 2,
403
572
  "required": [
404
- "id",
405
- "psi"
573
+ "id"
406
574
  ]
407
575
  },
408
576
  "SpaceType": {
@@ -416,12 +584,16 @@
416
584
  "psi": {
417
585
  "title": "PSI-set identifier",
418
586
  "type": "string"
587
+ },
588
+ "parapet": {
589
+ "title": "wall-roof edge as parapet",
590
+ "type": "boolean"
419
591
  }
420
592
  },
421
593
  "additionalProperties": false,
594
+ "minProperties": 2,
422
595
  "required": [
423
- "id",
424
- "psi"
596
+ "id"
425
597
  ]
426
598
  },
427
599
  "Story": {
@@ -435,12 +607,16 @@
435
607
  "psi": {
436
608
  "title": "PSI-set identifier",
437
609
  "type": "string"
610
+ },
611
+ "parapet": {
612
+ "title": "wall-roof edge as parapet",
613
+ "type": "boolean"
438
614
  }
439
615
  },
440
616
  "additionalProperties": false,
617
+ "minProperties": 2,
441
618
  "required": [
442
- "id",
443
- "psi"
619
+ "id"
444
620
  ]
445
621
  },
446
622
  "Building": {
@@ -450,9 +626,14 @@
450
626
  "psi": {
451
627
  "title": "PSI-set identifier",
452
628
  "type": "string"
629
+ },
630
+ "parapet": {
631
+ "title": "wall-roof edge as parapet",
632
+ "type": "boolean"
453
633
  }
454
634
  },
455
635
  "additionalProperties": false,
636
+ "minProperties": 1,
456
637
  "required": [
457
638
  "psi"
458
639
  ]
@@ -556,6 +737,9 @@
556
737
  "corners": {
557
738
  "type": "string"
558
739
  },
740
+ "balconies": {
741
+ "type": "string"
742
+ },
559
743
  "grade": {
560
744
  "type": "string"
561
745
  },
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.4.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: 2024-01-01 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,10 @@ 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
136
+ - json/tbd_z5.json
132
137
  - lib/measures/tbd/LICENSE.md
133
138
  - lib/measures/tbd/README.md
134
139
  - lib/measures/tbd/README.md.erb
@@ -161,7 +166,7 @@ licenses:
161
166
  - MIT
162
167
  metadata:
163
168
  homepage_uri: https://github.com/rd2/tbd
164
- source_code_uri: https://github.com/rd2/tbd/tree/v3.2.3
169
+ source_code_uri: https://github.com/rd2/tbd/tree/v3.4.0
165
170
  bug_tracker_uri: https://github.com/rd2/tbd/issues
166
171
  post_install_message:
167
172
  rdoc_options: []
@@ -174,7 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
179
  version: 2.5.0
175
180
  - - "<"
176
181
  - !ruby/object:Gem::Version
177
- version: 2.7.3
182
+ version: '3'
178
183
  required_rubygems_version: !ruby/object:Gem::Requirement
179
184
  requirements:
180
185
  - - ">="