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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 98d362f684c1cac670390347814a0fe5ed620cc86600b3207358de313a2d77b7
4
- data.tar.gz: 11e5e5c8e290e5e41b58d758c7e1eaad18b07bae293799085be4708098140775
3
+ metadata.gz: a5922a435bc3f8d97b6aa78588346e59108b6455d27c72e0aeecdd792079f33f
4
+ data.tar.gz: 5f683e96a3f1c33e0bb782bbb545b713d9d55beaf2359d3983f9b4d010716ce0
5
5
  SHA512:
6
- metadata.gz: 8d7232262c4a483107cd3d8b44e9588fe1dedd867e93496ad589ced425ea48cc770b6b14870346a1d04fce47f97f7d933c804694851fca2eda0ee862011c974a
7
- data.tar.gz: 922835ea4c1d3860b9d7a97df935f0a9a4d25e9561317c34564ca0dbfabbd612b8ca57b2acff99983b0c116381fcfe9a4369af3494ab00696afa838338d9c3b8
6
+ metadata.gz: 7284058dc4ec681c102435484b8af994fd027ea666aa4ed760f0e178cfcef297de033454c0a2c7cd60c95f13b71308bdcc6c4fa0a846819ec92edaa46007af08
7
+ data.tar.gz: 78e74d0942d5ad735c9b696c5cdaa72b5ad8a92fbf34a3c8843e41dce41f1de0eddfda3b53ef8db08c3f9c87a73b92b3ad8bb89400a58283c1805d7d660d83f7
data/.gitignore CHANGED
@@ -9,9 +9,8 @@ _yardoc/
9
9
  doc/
10
10
  rdoc
11
11
 
12
- /spec/files/osms/out/*
13
- /spec/files/measures/*
14
- /spec/files/ua/*
12
+ /spec/files/osms/out/*.osm
13
+ /spec/files/ua/*.md
15
14
  /json/*out.json
16
15
 
17
16
  /lib/measures/test_results/*
data/README.md CHANGED
@@ -148,7 +148,6 @@ docker kill test
148
148
 
149
149
  ## Support
150
150
 
151
- _Merci !_ to the following organizations
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
- [![](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)
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 = ["topolys", "osut", "oslg", "tbd"]
17
- lib_files = {}
16
+ libs = ["topolys", "osut", "oslg", "tbd"]
17
+ files = {}
18
18
 
19
- $LOAD_PATH.each do |load_path|
19
+ $:.each do |path|
20
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
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
- lib_files.each do |l, files|
39
- files.each { |file| FileUtils.cp(file, "#{dir}/resources/.") }
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 :measure do
40
+ task measure: [:libraries] do
46
41
  puts "Updating Measure"
47
42
 
48
43
  require "openstudio"
49
44
  require "open3"
50
45
 
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?
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 and library files
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>88c42d96-b8a3-4848-99eb-0bf5dd11aec3</version_id>
7
- <version_modified>20220824T114035Z</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>ua.rb</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>AC451A5B</checksum>
451
+ <checksum>8A794826</checksum>
452
452
  </file>
453
453
  <file>
454
- <filename>psi.rb</filename>
454
+ <filename>ua.rb</filename>
455
455
  <filetype>rb</filetype>
456
456
  <usage_type>resource</usage_type>
457
- <checksum>655E8232</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 if i == id
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
- floors[id][:foundation] = OpenStudio::Model::FoundationKiva.new(model)
633
- floors[id][:foundation].setName("KIVA Foundation Floor '#{id}'")
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(floors[id][:foundation])
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
- perimeter = per.totalExposedPerimeter
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
- next unless ok
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
- floors[id][:foundation].setInteriorHorizontalInsulationMaterial(xps25)
690
- floors[id][:foundation].setInteriorHorizontalInsulationWidth(0.6)
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.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 if i == id
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
- floors[id][:foundation] = OpenStudio::Model::FoundationKiva.new(model)
633
- floors[id][:foundation].setName("KIVA Foundation Floor '#{id}'")
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(floors[id][:foundation])
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
- perimeter = per.totalExposedPerimeter
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
- next unless ok
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
- floors[id][:foundation].setInteriorHorizontalInsulationMaterial(xps25)
690
- floors[id][:foundation].setInteriorHorizontalInsulationWidth(0.6)
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.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
@@ -21,5 +21,5 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  module TBD
24
- VERSION = "3.0.0".freeze
24
+ VERSION = "3.0.2".freeze
25
25
  end
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.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-08-25 00:00:00.000000000 Z
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/canada.png
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.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