tbd 3.0.0 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -3
- data/README.md +2 -3
- data/Rakefile +17 -25
- data/lib/measures/tbd/measure.xml +18 -18
- data/lib/measures/tbd/resources/geo.rb +15 -25
- data/lib/measures/tbd/resources/ua.rb +1 -1
- data/lib/tbd/geo.rb +15 -25
- data/lib/tbd/ua.rb +1 -1
- data/lib/tbd/version.rb +1 -1
- data/sponsors/qc_can.png +0 -0
- metadata +4 -5
- data/sponsors/canada.png +0 -0
- data/sponsors/quebec.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5922a435bc3f8d97b6aa78588346e59108b6455d27c72e0aeecdd792079f33f
|
4
|
+
data.tar.gz: 5f683e96a3f1c33e0bb782bbb545b713d9d55beaf2359d3983f9b4d010716ce0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7284058dc4ec681c102435484b8af994fd027ea666aa4ed760f0e178cfcef297de033454c0a2c7cd60c95f13b71308bdcc6c4fa0a846819ec92edaa46007af08
|
7
|
+
data.tar.gz: 78e74d0942d5ad735c9b696c5cdaa72b5ad8a92fbf34a3c8843e41dce41f1de0eddfda3b53ef8db08c3f9c87a73b92b3ad8bb89400a58283c1805d7d660d83f7
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -148,7 +148,6 @@ docker kill test
|
|
148
148
|
|
149
149
|
## Support
|
150
150
|
|
151
|
-
|
151
|
+
Merci aux gouvernements du [Québec](https://transitionenergetique.gouv.qc.ca) et du Canada ([CNRC](https://nrc.canada.ca/en/research-development/research-collaboration/research-centres/construction-research-centre), [CanmetÉNERGIE](https://www.nrcan.gc.ca/energy/offices-labs/canmet/ottawa-research-centre/the-built-environment/23341)).
|
152
152
|
|
153
|
-
|
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)
|
153
|
+
![Thanks to the Quebec and Canadian governments](./sponsors/qc_can.png "Thanks to the Quebec and Canadian governments")
|
data/Rakefile
CHANGED
@@ -13,48 +13,40 @@ task :libraries do
|
|
13
13
|
|
14
14
|
require "fileutils"
|
15
15
|
|
16
|
-
libs
|
17
|
-
|
16
|
+
libs = ["topolys", "osut", "oslg", "tbd"]
|
17
|
+
files = {}
|
18
18
|
|
19
|
-
|
19
|
+
$:.each do |path|
|
20
20
|
libs.each do |l|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
puts "#{l} lib files:"
|
29
|
-
lib_files[l].each { |lf| puts "... #{lf}" }
|
30
|
-
puts
|
31
|
-
end
|
21
|
+
next unless path.include?(l)
|
22
|
+
files[l] = Dir.glob(File.join(path, "#{l}/*.rb"))
|
23
|
+
files[l].delete_if { |f| f.include?("version.rb") } unless l == "topolys"
|
24
|
+
puts "#{l} lib files:"
|
25
|
+
files[l].each { |lf| puts "... #{lf}" }
|
26
|
+
puts
|
32
27
|
end
|
33
28
|
end
|
34
29
|
|
35
30
|
dirs = Dir.glob(File.join(__dir__, "lib/measures/*"))
|
36
31
|
|
37
32
|
dirs.each do |dir|
|
38
|
-
|
39
|
-
|
33
|
+
files.values.each do |items|
|
34
|
+
items.each { |file| FileUtils.cp(file, "#{dir}/resources/.") }
|
40
35
|
end
|
41
36
|
end
|
42
37
|
end
|
43
38
|
|
44
39
|
desc "Update Measure"
|
45
|
-
task :
|
40
|
+
task measure: [:libraries] do
|
46
41
|
puts "Updating Measure"
|
47
42
|
|
48
43
|
require "openstudio"
|
49
44
|
require "open3"
|
50
45
|
|
51
|
-
cli
|
52
|
-
command
|
53
|
-
|
54
|
-
|
55
|
-
raise "Failed to update measures\n\n#{out}\n\n#{err}" unless ps.success?
|
46
|
+
cli = OpenStudio.getOpenStudioCLI
|
47
|
+
command = "#{cli} measure -t './lib/measures'"
|
48
|
+
out, err, ps = Open3.capture3({ "BUNDLE_GEMFILE" => nil }, command)
|
49
|
+
raise "Failed to update measures\n\n#{out}\n\n#{err}" unless ps.success?
|
56
50
|
end
|
57
|
-
task :measure => [:libraries]
|
58
51
|
|
59
|
-
# default spec test depends on updating measure
|
60
|
-
task :spec => [:measure]
|
52
|
+
task spec: [:measure] # default spec test depends on updating measure, lib files
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>tbd_measure</name>
|
5
5
|
<uid>8890787b-8c25-4dc8-8641-b6be1b6c2357</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>65ac80d9-ef1e-4c41-9a62-68e2e1e6c5db</version_id>
|
7
|
+
<version_modified>20220918T225251Z</version_modified>
|
8
8
|
<xml_checksum>99772807</xml_checksum>
|
9
9
|
<class_name>TBDMeasure</class_name>
|
10
10
|
<display_name>Thermal Bridging and Derating - TBD</display_name>
|
@@ -415,18 +415,6 @@
|
|
415
415
|
<usage_type>resource</usage_type>
|
416
416
|
<checksum>54F57409</checksum>
|
417
417
|
</file>
|
418
|
-
<file>
|
419
|
-
<filename>README.md</filename>
|
420
|
-
<filetype>md</filetype>
|
421
|
-
<usage_type>readme</usage_type>
|
422
|
-
<checksum>36FA11E3</checksum>
|
423
|
-
</file>
|
424
|
-
<file>
|
425
|
-
<filename>geo.rb</filename>
|
426
|
-
<filetype>rb</filetype>
|
427
|
-
<usage_type>resource</usage_type>
|
428
|
-
<checksum>6E0B27AD</checksum>
|
429
|
-
</file>
|
430
418
|
<file>
|
431
419
|
<version>
|
432
420
|
<software_program>OpenStudio</software_program>
|
@@ -445,16 +433,28 @@
|
|
445
433
|
<checksum>6ED9AF88</checksum>
|
446
434
|
</file>
|
447
435
|
<file>
|
448
|
-
<filename>
|
436
|
+
<filename>psi.rb</filename>
|
437
|
+
<filetype>rb</filetype>
|
438
|
+
<usage_type>resource</usage_type>
|
439
|
+
<checksum>655E8232</checksum>
|
440
|
+
</file>
|
441
|
+
<file>
|
442
|
+
<filename>README.md</filename>
|
443
|
+
<filetype>md</filetype>
|
444
|
+
<usage_type>readme</usage_type>
|
445
|
+
<checksum>36FA11E3</checksum>
|
446
|
+
</file>
|
447
|
+
<file>
|
448
|
+
<filename>geo.rb</filename>
|
449
449
|
<filetype>rb</filetype>
|
450
450
|
<usage_type>resource</usage_type>
|
451
|
-
<checksum>
|
451
|
+
<checksum>8A794826</checksum>
|
452
452
|
</file>
|
453
453
|
<file>
|
454
|
-
<filename>
|
454
|
+
<filename>ua.rb</filename>
|
455
455
|
<filetype>rb</filetype>
|
456
456
|
<usage_type>resource</usage_type>
|
457
|
-
<checksum>
|
457
|
+
<checksum>7873E62A</checksum>
|
458
458
|
</file>
|
459
459
|
</files>
|
460
460
|
</measure>
|
@@ -599,7 +599,7 @@ module TBD
|
|
599
599
|
end
|
600
600
|
|
601
601
|
edge[:surfaces].keys.each do |i| # loop around current edge
|
602
|
-
next
|
602
|
+
next if i == id
|
603
603
|
next unless walls.key?(i)
|
604
604
|
next unless walls[i][:boundary].downcase == "outdoors"
|
605
605
|
floors[id][:exposed] += edge[:length]
|
@@ -629,8 +629,8 @@ module TBD
|
|
629
629
|
end
|
630
630
|
end
|
631
631
|
|
632
|
-
|
633
|
-
|
632
|
+
foundation = OpenStudio::Model::FoundationKiva.new(model)
|
633
|
+
foundation.setName("KIVA Foundation Floor '#{id}'")
|
634
634
|
|
635
635
|
floor = model.getSurfaceByName(id)
|
636
636
|
kiva = false if floor.empty?
|
@@ -640,21 +640,15 @@ module TBD
|
|
640
640
|
kiva = false if construction.empty?
|
641
641
|
next if construction.empty?
|
642
642
|
construction = construction.get
|
643
|
-
floor.setAdjacentFoundation(
|
643
|
+
floor.setAdjacentFoundation(foundation)
|
644
644
|
floor.setConstruction(construction)
|
645
|
-
ep = floors[id][:exposed]
|
646
|
-
per = floor.surfacePropertyExposedFoundationPerimeter
|
647
|
-
|
648
|
-
if per.empty?
|
649
|
-
per = floor.createSurfacePropertyExposedFoundationPerimeter(arg, ep)
|
650
|
-
else
|
651
|
-
per = per.get
|
652
|
-
end
|
653
|
-
|
654
|
-
kiva = false unless per.respond_to?(:totalExposedPerimeter)
|
655
|
-
next unless per.respond_to?(:totalExposedPerimeter)
|
656
645
|
|
657
|
-
|
646
|
+
ep = floors[id][:exposed]
|
647
|
+
per = floor.createSurfacePropertyExposedFoundationPerimeter(arg, ep)
|
648
|
+
kiva = false if per.empty?
|
649
|
+
next if per.empty?
|
650
|
+
per = per.get
|
651
|
+
perimeter = per.totalExposedPerimeter
|
658
652
|
kiva = false if perimeter.empty?
|
659
653
|
next if perimeter.empty?
|
660
654
|
perimeter = perimeter.get
|
@@ -663,13 +657,7 @@ module TBD
|
|
663
657
|
ok = per.setTotalExposedPerimeter(0.000)
|
664
658
|
ok = per.setTotalExposedPerimeter(0.001) unless ok
|
665
659
|
kiva = false unless ok
|
666
|
-
|
667
|
-
elsif (perimeter - ep).abs > TOL
|
668
|
-
ok = per.setTotalExposedPerimeter(ep)
|
669
|
-
kiva = false unless ok
|
670
|
-
next unless ok
|
671
|
-
|
672
|
-
# Generic 1" XPS insulation for exposed perimeter.
|
660
|
+
elsif (perimeter - ep).abs < TOL
|
673
661
|
xps25 = model.getStandardOpaqueMaterialByName("XPS 25mm")
|
674
662
|
|
675
663
|
if xps25.empty?
|
@@ -686,9 +674,11 @@ module TBD
|
|
686
674
|
xps25 = xps25.get
|
687
675
|
end
|
688
676
|
|
689
|
-
|
690
|
-
|
677
|
+
foundation.setInteriorHorizontalInsulationMaterial(xps25)
|
678
|
+
foundation.setInteriorHorizontalInsulationWidth(0.6)
|
691
679
|
end
|
680
|
+
|
681
|
+
floors[id][:foundation] = foundation
|
692
682
|
end
|
693
683
|
end
|
694
684
|
|
@@ -948,7 +948,7 @@ module TBD
|
|
948
948
|
model = "* modèle : #{ua[:file]}" if ua.key?(:file) && lang == :fr
|
949
949
|
model += " (v#{ua[:version]})" if ua.key?(:version)
|
950
950
|
report << model unless model.empty?
|
951
|
-
report << "* TBD : v3.0.
|
951
|
+
report << "* TBD : v3.0.2"
|
952
952
|
report << "* date : #{ua[:date]}"
|
953
953
|
|
954
954
|
if lang == :en
|
data/lib/tbd/geo.rb
CHANGED
@@ -599,7 +599,7 @@ module TBD
|
|
599
599
|
end
|
600
600
|
|
601
601
|
edge[:surfaces].keys.each do |i| # loop around current edge
|
602
|
-
next
|
602
|
+
next if i == id
|
603
603
|
next unless walls.key?(i)
|
604
604
|
next unless walls[i][:boundary].downcase == "outdoors"
|
605
605
|
floors[id][:exposed] += edge[:length]
|
@@ -629,8 +629,8 @@ module TBD
|
|
629
629
|
end
|
630
630
|
end
|
631
631
|
|
632
|
-
|
633
|
-
|
632
|
+
foundation = OpenStudio::Model::FoundationKiva.new(model)
|
633
|
+
foundation.setName("KIVA Foundation Floor '#{id}'")
|
634
634
|
|
635
635
|
floor = model.getSurfaceByName(id)
|
636
636
|
kiva = false if floor.empty?
|
@@ -640,21 +640,15 @@ module TBD
|
|
640
640
|
kiva = false if construction.empty?
|
641
641
|
next if construction.empty?
|
642
642
|
construction = construction.get
|
643
|
-
floor.setAdjacentFoundation(
|
643
|
+
floor.setAdjacentFoundation(foundation)
|
644
644
|
floor.setConstruction(construction)
|
645
|
-
ep = floors[id][:exposed]
|
646
|
-
per = floor.surfacePropertyExposedFoundationPerimeter
|
647
|
-
|
648
|
-
if per.empty?
|
649
|
-
per = floor.createSurfacePropertyExposedFoundationPerimeter(arg, ep)
|
650
|
-
else
|
651
|
-
per = per.get
|
652
|
-
end
|
653
|
-
|
654
|
-
kiva = false unless per.respond_to?(:totalExposedPerimeter)
|
655
|
-
next unless per.respond_to?(:totalExposedPerimeter)
|
656
645
|
|
657
|
-
|
646
|
+
ep = floors[id][:exposed]
|
647
|
+
per = floor.createSurfacePropertyExposedFoundationPerimeter(arg, ep)
|
648
|
+
kiva = false if per.empty?
|
649
|
+
next if per.empty?
|
650
|
+
per = per.get
|
651
|
+
perimeter = per.totalExposedPerimeter
|
658
652
|
kiva = false if perimeter.empty?
|
659
653
|
next if perimeter.empty?
|
660
654
|
perimeter = perimeter.get
|
@@ -663,13 +657,7 @@ module TBD
|
|
663
657
|
ok = per.setTotalExposedPerimeter(0.000)
|
664
658
|
ok = per.setTotalExposedPerimeter(0.001) unless ok
|
665
659
|
kiva = false unless ok
|
666
|
-
|
667
|
-
elsif (perimeter - ep).abs > TOL
|
668
|
-
ok = per.setTotalExposedPerimeter(ep)
|
669
|
-
kiva = false unless ok
|
670
|
-
next unless ok
|
671
|
-
|
672
|
-
# Generic 1" XPS insulation for exposed perimeter.
|
660
|
+
elsif (perimeter - ep).abs < TOL
|
673
661
|
xps25 = model.getStandardOpaqueMaterialByName("XPS 25mm")
|
674
662
|
|
675
663
|
if xps25.empty?
|
@@ -686,9 +674,11 @@ module TBD
|
|
686
674
|
xps25 = xps25.get
|
687
675
|
end
|
688
676
|
|
689
|
-
|
690
|
-
|
677
|
+
foundation.setInteriorHorizontalInsulationMaterial(xps25)
|
678
|
+
foundation.setInteriorHorizontalInsulationWidth(0.6)
|
691
679
|
end
|
680
|
+
|
681
|
+
floors[id][:foundation] = foundation
|
692
682
|
end
|
693
683
|
end
|
694
684
|
|
data/lib/tbd/ua.rb
CHANGED
@@ -948,7 +948,7 @@ module TBD
|
|
948
948
|
model = "* modèle : #{ua[:file]}" if ua.key?(:file) && lang == :fr
|
949
949
|
model += " (v#{ua[:version]})" if ua.key?(:version)
|
950
950
|
report << model unless model.empty?
|
951
|
-
report << "* TBD : v3.0.
|
951
|
+
report << "* TBD : v3.0.2"
|
952
952
|
report << "* date : #{ua[:date]}"
|
953
953
|
|
954
954
|
if lang == :en
|
data/lib/tbd/version.rb
CHANGED
data/sponsors/qc_can.png
ADDED
Binary file
|
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.0.
|
4
|
+
version: 3.0.2
|
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: 2022-
|
11
|
+
date: 2022-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: topolys
|
@@ -154,8 +154,7 @@ files:
|
|
154
154
|
- lib/tbd/psi.rb
|
155
155
|
- lib/tbd/ua.rb
|
156
156
|
- lib/tbd/version.rb
|
157
|
-
- sponsors/
|
158
|
-
- sponsors/quebec.png
|
157
|
+
- sponsors/qc_can.png
|
159
158
|
- tbd.gemspec
|
160
159
|
- tbd.schema.json
|
161
160
|
- v291_MacOS.md
|
@@ -164,7 +163,7 @@ licenses:
|
|
164
163
|
- MIT
|
165
164
|
metadata:
|
166
165
|
homepage_uri: https://github.com/rd2/tbd
|
167
|
-
source_code_uri: https://github.com/rd2/tbd/tree/v3.0.
|
166
|
+
source_code_uri: https://github.com/rd2/tbd/tree/v3.0.2
|
168
167
|
bug_tracker_uri: https://github.com/rd2/tbd/issues
|
169
168
|
post_install_message:
|
170
169
|
rdoc_options: []
|
data/sponsors/canada.png
DELETED
Binary file
|
data/sponsors/quebec.png
DELETED
Binary file
|