tbd 3.6.0 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb6b147213a6c055e7b7970c44786b22ba050f0aa2f935079fcd33d1b692a874
4
- data.tar.gz: a19bb5aa01a18c44cca0b7048a1cd5dfcbb287d2f746a08363f9951edfc1c585
3
+ metadata.gz: 6b9460ab560b9bdac3d2f291a4ca25bb1a84c1e0d54c8cc89ad6d332de741f33
4
+ data.tar.gz: fa685b2b11943a07aa8baae1dcec90be333a5bb0d33f091e2ea80414556ac1e1
5
5
  SHA512:
6
- metadata.gz: 962a2c9d02edfd6eae2b0dd81fcd1e4b84e5ab437328c3bde0705942a3697131d7c8136d05d706903574837b4fb5fccf1a54d89773b51f5010ee0ad4e4279f75
7
- data.tar.gz: 980abb816039d7acd1ba61a30cc19cef98d5bf131249e4c04084975660ee5b7154ea81af661149119c32f261344f507402c8b492b36c3be9ebdd57fdfc3861ce
6
+ metadata.gz: fa07d25024543f65b3d57b235ef451a18c8f0ca20d85c803d2aa7fb7df635734f7c84ce4224e0ffa8c38294176a6d6cce0dcbaadc20f4c021632dcf0c758d22a
7
+ data.tar.gz: 5220cf57a68114d592a82a2d3516fcc01cdb9b9281ea0e5665077f25119cbf185b5f2b40b1555aedbb37e2d5a75f4bc41e95a1909d990a3998a2bdd6fab06e7f
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.1</schema_version>
4
4
  <name>tbd_measure</name>
5
5
  <uid>8890787b-8c25-4dc8-8641-b6be1b6c2357</uid>
6
- <version_id>4934dc58-443d-436f-9358-2d221b4de65a</version_id>
7
- <version_modified>2026-04-17T10:47:02Z</version_modified>
6
+ <version_id>51c8811e-5901-4d36-a106-9bd4e377d0bb</version_id>
7
+ <version_modified>2026-08-27T12:41:28Z</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>
@@ -499,7 +499,7 @@
499
499
  <filename>geo.rb</filename>
500
500
  <filetype>rb</filetype>
501
501
  <usage_type>resource</usage_type>
502
- <checksum>AD9546E1</checksum>
502
+ <checksum>16067F9B</checksum>
503
503
  </file>
504
504
  <file>
505
505
  <filename>geometry.rb</filename>
@@ -523,7 +523,7 @@
523
523
  <filename>psi.rb</filename>
524
524
  <filetype>rb</filetype>
525
525
  <usage_type>resource</usage_type>
526
- <checksum>9F7B97ED</checksum>
526
+ <checksum>7AE7FE72</checksum>
527
527
  </file>
528
528
  <file>
529
529
  <filename>tbd.rb</filename>
@@ -541,13 +541,13 @@
541
541
  <filename>ua.rb</filename>
542
542
  <filetype>rb</filetype>
543
543
  <usage_type>resource</usage_type>
544
- <checksum>0FB3F654</checksum>
544
+ <checksum>666C0F59</checksum>
545
545
  </file>
546
546
  <file>
547
547
  <filename>utils.rb</filename>
548
548
  <filetype>rb</filetype>
549
549
  <usage_type>resource</usage_type>
550
- <checksum>26EC8C4F</checksum>
550
+ <checksum>61243A64</checksum>
551
551
  </file>
552
552
  <file>
553
553
  <filename>version.rb</filename>
@@ -38,7 +38,6 @@ module TBD
38
38
  a = false
39
39
  return mismatch("e1", e1, Hash, mth, DBG, a) unless e1.is_a?(Hash)
40
40
  return mismatch("e2", e2, Hash, mth, DBG, a) unless e2.is_a?(Hash)
41
- return mismatch("e2", e2, Hash, mth, DBG, a) unless e2.is_a?(Hash)
42
41
 
43
42
  return hashkey("e1", e1, :v0, mth, DBG, a) unless e1.key?(:v0)
44
43
  return hashkey("e1", e1, :v1, mth, DBG, a) unless e1.key?(:v1)
@@ -644,8 +643,8 @@ module TBD
644
643
 
645
644
  valid1 = s1[:angle].is_a?(Numeric)
646
645
  valid2 = s2[:angle].is_a?(Numeric)
647
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid1
648
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid2
646
+ return mismatch("s1 angle", s1[:angle], Numeric, mth, DBG, false) unless valid1
647
+ return mismatch("s2 angle", s2[:angle], Numeric, mth, DBG, false) unless valid2
649
648
 
650
649
  angle = 0
651
650
  angle = s2[:angle] - s1[:angle] if s2[:angle] > s1[:angle]
@@ -687,8 +686,8 @@ module TBD
687
686
 
688
687
  valid1 = s1[:angle].is_a?(Numeric)
689
688
  valid2 = s2[:angle].is_a?(Numeric)
690
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid1
691
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid2
689
+ return mismatch("s1 angle", s1[:angle], Numeric, mth, DBG, false) unless valid1
690
+ return mismatch("s2 angle", s2[:angle], Numeric, mth, DBG, false) unless valid2
692
691
 
693
692
  angle = 0
694
693
  angle = s2[:angle] - s1[:angle] if s2[:angle] > s1[:angle]
@@ -761,8 +760,8 @@ module TBD
761
760
  # boundary conditions.
762
761
  #
763
762
  # @param model [OpenStudio::Model::Model] a model
764
- # @param floors [Hash] TBD floors
765
763
  # @param walls [Hash] TBD walls
764
+ # @param floors [Hash] TBD floors
766
765
  # @param edges [Hash] TBD edges (many linking floors & walls
767
766
  #
768
767
  # @return [Bool] true if Kiva foundations are successfully generated
@@ -542,7 +542,7 @@ module TBD
542
542
  h[:partyconcave ] = @set[id].key?(:partyconcave)
543
543
  h[:partyconvex ] = @set[id].key?(:partyconvex)
544
544
  h[:parapet ] = @set[id].key?(:parapet)
545
- h[:partyconcave ] = @set[id].key?(:parapetconcave)
545
+ h[:parapetconcave ] = @set[id].key?(:parapetconcave)
546
546
  h[:parapetconvex ] = @set[id].key?(:parapetconvex)
547
547
  h[:roof ] = @set[id].key?(:roof)
548
548
  h[:roofconcave ] = @set[id].key?(:roofconcave)
@@ -557,10 +557,10 @@ module TBD
557
557
  h[:balconyconcave ] = @set[id].key?(:balconyconcave)
558
558
  h[:balconyconvex ] = @set[id].key?(:balconyconvex)
559
559
  h[:balconysill ] = @set[id].key?(:balconysill)
560
- h[:balconysillconcave ] = @set[id].key?(:balconysillconvex)
560
+ h[:balconysillconcave ] = @set[id].key?(:balconysillconcave)
561
561
  h[:balconysillconvex ] = @set[id].key?(:balconysillconvex)
562
562
  h[:balconydoorsill ] = @set[id].key?(:balconydoorsill)
563
- h[:balconydoorsillconcave] = @set[id].key?(:balconydoorsillconvex)
563
+ h[:balconydoorsillconcave] = @set[id].key?(:balconydoorsillconcave)
564
564
  h[:balconydoorsillconvex ] = @set[id].key?(:balconydoorsillconvex)
565
565
  h[:rimjoist ] = @set[id].key?(:rimjoist)
566
566
  h[:rimjoistconcave ] = @set[id].key?(:rimjoistconcave)
@@ -572,10 +572,10 @@ module TBD
572
572
  v[:head ] = 0; v[:headconcave ] = 0; v[:headconvex ] = 0
573
573
  v[:sill ] = 0; v[:sillconcave ] = 0; v[:sillconvex ] = 0
574
574
  v[:jamb ] = 0; v[:jambconcave ] = 0; v[:jambconvex ] = 0
575
- v[:doorhead ] = 0; v[:doorheadconcave ] = 0; v[:doorconvex ] = 0
575
+ v[:doorhead ] = 0; v[:doorheadconcave ] = 0; v[:doorheadconvex ] = 0
576
576
  v[:doorsill ] = 0; v[:doorsillconcave ] = 0; v[:doorsillconvex ] = 0
577
577
  v[:doorjamb ] = 0; v[:doorjambconcave ] = 0; v[:doorjambconvex ] = 0
578
- v[:skylighthead ] = 0; v[:skylightheadconcave ] = 0; v[:skylightconvex ] = 0
578
+ v[:skylighthead ] = 0; v[:skylightheadconcave ] = 0; v[:skylightheadconvex ] = 0
579
579
  v[:skylightsill ] = 0; v[:skylightsillconcave ] = 0; v[:skylightsillconvex ] = 0
580
580
  v[:skylightjamb ] = 0; v[:skylightjambconcave ] = 0; v[:skylightjambconvex ] = 0
581
581
  v[:spandrel ] = 0; v[:spandrelconcave ] = 0; v[:spandrelconvex ] = 0
@@ -712,7 +712,7 @@ module TBD
712
712
  v[:roofconcave ] = @set[id][:parapet ] if h[:parapet ]
713
713
  v[:roofconvex ] = @set[id][:parapet ] if h[:parapet ]
714
714
  v[:roofconcave ] = @set[id][:parapetconcave ] if h[:parapetconcave ]
715
- v[:roofconvex ] = @set[id][:parapetxonvex ] if h[:parapetconvex ]
715
+ v[:roofconvex ] = @set[id][:parapetconvex ] if h[:parapetconvex ]
716
716
  v[:roof ] = @set[id][:roof ] if h[:roof ]
717
717
  v[:roofconcave ] = @set[id][:roof ] if h[:roof ]
718
718
  v[:roofconvex ] = @set[id][:roof ] if h[:roof ]
@@ -758,12 +758,12 @@ module TBD
758
758
  v[:balconysillconcave ] = @set[id][:balcony ] if h[:balcony ]
759
759
  v[:balconysillconvex ] = @set[id][:balcony ] if h[:balcony ]
760
760
  v[:balconysillconcave ] = @set[id][:balconyconcave ] if h[:balconyconcave ]
761
- v[:balconysillconvex ] = @set[id][:balconyconvex ] if h[:balconycinvex ]
761
+ v[:balconysillconvex ] = @set[id][:balconyconvex ] if h[:balconyconvex ]
762
762
  v[:balconydoorsill ] = @set[id][:balcony ] if h[:balcony ]
763
763
  v[:balconydoorsillconcave] = @set[id][:balcony ] if h[:balcony ]
764
764
  v[:balconydoorsillconvex ] = @set[id][:balcony ] if h[:balcony ]
765
765
  v[:balconydoorsillconcave] = @set[id][:balconyconcave ] if h[:balconyconcave ]
766
- v[:balconydoorsillconvex ] = @set[id][:balconyconvex ] if h[:balconycinvex ]
766
+ v[:balconydoorsillconvex ] = @set[id][:balconyconvex ] if h[:balconyconvex ]
767
767
  v[:balconysill ] = @set[id][:balconysill ] if h[:balconysill ]
768
768
  v[:balconysillconcave ] = @set[id][:balconysill ] if h[:balconysill ]
769
769
  v[:balconysillconvex ] = @set[id][:balconysill ] if h[:balconysill ]
@@ -786,10 +786,10 @@ module TBD
786
786
  v[:rimjoistconvex ] = @set[id][:rimjoistconvex ] if h[:rimjoistconvex ]
787
787
 
788
788
  max = [v[:parapetconcave], v[:parapetconvex]].max
789
- v[:parapet] = max unless @has[:parapet]
789
+ v[:parapet] = max unless h[:parapet]
790
790
 
791
791
  max = [v[:roofconcave], v[:roofconvex]].max
792
- v[:roof] = max unless @has[:roof]
792
+ v[:roof] = max unless h[:roof]
793
793
 
794
794
  @val[id] = v
795
795
 
@@ -982,7 +982,7 @@ module TBD
982
982
  mth = "TBD::#{__callee__}"
983
983
  sh = { has: {}, val: {} }
984
984
  id = trim(id)
985
- return mismatch("set ID", id, String, mth, ERR, a) if id.empty?
985
+ return mismatch("set ID", id, String, mth, ERR, sh) if id.empty?
986
986
  return hashkey(id, @set , id, mth, ERR, sh) unless @set.key?(id)
987
987
  return hashkey(id, @has , id, mth, ERR, sh) unless @has.key?(id)
988
988
  return hashkey(id, @val , id, mth, ERR, sh) unless @val.key?(id)
@@ -1736,9 +1736,9 @@ module TBD
1736
1736
  next unless point_V_mag > TOL
1737
1737
  next unless point_V_mag > farthest_mag
1738
1738
 
1739
- farthest = point
1740
- farthest_V = origin_point_V
1741
- fathest_mag = point_V_mag
1739
+ farthest = point
1740
+ farthest_V = origin_point_V
1741
+ farthest_mag = point_V_mag
1742
1742
  end
1743
1743
 
1744
1744
  angle = reference_V.angle(farthest_V)
@@ -1002,7 +1002,7 @@ module TBD
1002
1002
  model = "* modèle : #{ua[:file]}" if ua.key?(:file) && lang == :fr
1003
1003
  model += " (v#{ua[:version]})" if ua.key?(:version)
1004
1004
  report << model unless model.empty?
1005
- report << "* TBD : v3.6.0"
1005
+ report << "* TBD : v3.6.1"
1006
1006
  report << "* date : #{ua[:date]}"
1007
1007
 
1008
1008
  if lang == :en
@@ -204,8 +204,8 @@ module OSut
204
204
  # returned if a valid surface tilt [0, PI] is provided. Otherwise, generic
205
205
  # tilt-independent air film resistances are returned instead.
206
206
  #
207
- # @param [:to_sym] surface type, e.g. :roof, :wall, :partition, :ceiling
208
- # @param [Numeric] surface tilt (in rad), optional
207
+ # @param type [:to_sym] surface type, e.g. :roof, :wall, :partition, :ceiling
208
+ # @param tilt [Numeric] surface tilt (in rad), optional
209
209
  #
210
210
  # @return [Float] surface air film resistance(s)
211
211
  # @return [0.0] if invalid input (see logs)
@@ -587,7 +587,7 @@ module OSut
587
587
  mt.setName(id)
588
588
 
589
589
  unless mt.setThermalResistance(r)
590
- return invalid("Failed #{id}: RSi#{r.round(2)}", mth)
590
+ return invalid("Failed #{id}: RSi#{r.round(2)}", mth, 0, DBG, 0.0)
591
591
  end
592
592
 
593
593
  lc.setLayer(index, mt)
@@ -621,11 +621,11 @@ module OSut
621
621
  mt.setName(id)
622
622
 
623
623
  unless mt.setThermalConductivity(k)
624
- return invalid("Failed #{id}: K#{k.round(3)}", mth)
624
+ return invalid("Failed #{id}: K#{k.round(3)}", mth, 0, DBG, 0.0)
625
625
  end
626
626
 
627
627
  unless mt.setThickness(d)
628
- return invalid("Failed #{id}: #{(d*1000).to_i}mm", mth)
628
+ return invalid("Failed #{id}: #{(d*1000).to_i}mm", mth, 0, DBG, 0.0)
629
629
  end
630
630
 
631
631
  lc.setLayer(index, mt)
data/lib/tbd/geo.rb CHANGED
@@ -38,7 +38,6 @@ module TBD
38
38
  a = false
39
39
  return mismatch("e1", e1, Hash, mth, DBG, a) unless e1.is_a?(Hash)
40
40
  return mismatch("e2", e2, Hash, mth, DBG, a) unless e2.is_a?(Hash)
41
- return mismatch("e2", e2, Hash, mth, DBG, a) unless e2.is_a?(Hash)
42
41
 
43
42
  return hashkey("e1", e1, :v0, mth, DBG, a) unless e1.key?(:v0)
44
43
  return hashkey("e1", e1, :v1, mth, DBG, a) unless e1.key?(:v1)
@@ -644,8 +643,8 @@ module TBD
644
643
 
645
644
  valid1 = s1[:angle].is_a?(Numeric)
646
645
  valid2 = s2[:angle].is_a?(Numeric)
647
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid1
648
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid2
646
+ return mismatch("s1 angle", s1[:angle], Numeric, mth, DBG, false) unless valid1
647
+ return mismatch("s2 angle", s2[:angle], Numeric, mth, DBG, false) unless valid2
649
648
 
650
649
  angle = 0
651
650
  angle = s2[:angle] - s1[:angle] if s2[:angle] > s1[:angle]
@@ -687,8 +686,8 @@ module TBD
687
686
 
688
687
  valid1 = s1[:angle].is_a?(Numeric)
689
688
  valid2 = s2[:angle].is_a?(Numeric)
690
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid1
691
- return mismatch("s1 angle", s1[:angle], Numeric, DBG, false) unless valid2
689
+ return mismatch("s1 angle", s1[:angle], Numeric, mth, DBG, false) unless valid1
690
+ return mismatch("s2 angle", s2[:angle], Numeric, mth, DBG, false) unless valid2
692
691
 
693
692
  angle = 0
694
693
  angle = s2[:angle] - s1[:angle] if s2[:angle] > s1[:angle]
@@ -761,8 +760,8 @@ module TBD
761
760
  # boundary conditions.
762
761
  #
763
762
  # @param model [OpenStudio::Model::Model] a model
764
- # @param floors [Hash] TBD floors
765
763
  # @param walls [Hash] TBD walls
764
+ # @param floors [Hash] TBD floors
766
765
  # @param edges [Hash] TBD edges (many linking floors & walls
767
766
  #
768
767
  # @return [Bool] true if Kiva foundations are successfully generated
data/lib/tbd/psi.rb CHANGED
@@ -542,7 +542,7 @@ module TBD
542
542
  h[:partyconcave ] = @set[id].key?(:partyconcave)
543
543
  h[:partyconvex ] = @set[id].key?(:partyconvex)
544
544
  h[:parapet ] = @set[id].key?(:parapet)
545
- h[:partyconcave ] = @set[id].key?(:parapetconcave)
545
+ h[:parapetconcave ] = @set[id].key?(:parapetconcave)
546
546
  h[:parapetconvex ] = @set[id].key?(:parapetconvex)
547
547
  h[:roof ] = @set[id].key?(:roof)
548
548
  h[:roofconcave ] = @set[id].key?(:roofconcave)
@@ -557,10 +557,10 @@ module TBD
557
557
  h[:balconyconcave ] = @set[id].key?(:balconyconcave)
558
558
  h[:balconyconvex ] = @set[id].key?(:balconyconvex)
559
559
  h[:balconysill ] = @set[id].key?(:balconysill)
560
- h[:balconysillconcave ] = @set[id].key?(:balconysillconvex)
560
+ h[:balconysillconcave ] = @set[id].key?(:balconysillconcave)
561
561
  h[:balconysillconvex ] = @set[id].key?(:balconysillconvex)
562
562
  h[:balconydoorsill ] = @set[id].key?(:balconydoorsill)
563
- h[:balconydoorsillconcave] = @set[id].key?(:balconydoorsillconvex)
563
+ h[:balconydoorsillconcave] = @set[id].key?(:balconydoorsillconcave)
564
564
  h[:balconydoorsillconvex ] = @set[id].key?(:balconydoorsillconvex)
565
565
  h[:rimjoist ] = @set[id].key?(:rimjoist)
566
566
  h[:rimjoistconcave ] = @set[id].key?(:rimjoistconcave)
@@ -572,10 +572,10 @@ module TBD
572
572
  v[:head ] = 0; v[:headconcave ] = 0; v[:headconvex ] = 0
573
573
  v[:sill ] = 0; v[:sillconcave ] = 0; v[:sillconvex ] = 0
574
574
  v[:jamb ] = 0; v[:jambconcave ] = 0; v[:jambconvex ] = 0
575
- v[:doorhead ] = 0; v[:doorheadconcave ] = 0; v[:doorconvex ] = 0
575
+ v[:doorhead ] = 0; v[:doorheadconcave ] = 0; v[:doorheadconvex ] = 0
576
576
  v[:doorsill ] = 0; v[:doorsillconcave ] = 0; v[:doorsillconvex ] = 0
577
577
  v[:doorjamb ] = 0; v[:doorjambconcave ] = 0; v[:doorjambconvex ] = 0
578
- v[:skylighthead ] = 0; v[:skylightheadconcave ] = 0; v[:skylightconvex ] = 0
578
+ v[:skylighthead ] = 0; v[:skylightheadconcave ] = 0; v[:skylightheadconvex ] = 0
579
579
  v[:skylightsill ] = 0; v[:skylightsillconcave ] = 0; v[:skylightsillconvex ] = 0
580
580
  v[:skylightjamb ] = 0; v[:skylightjambconcave ] = 0; v[:skylightjambconvex ] = 0
581
581
  v[:spandrel ] = 0; v[:spandrelconcave ] = 0; v[:spandrelconvex ] = 0
@@ -712,7 +712,7 @@ module TBD
712
712
  v[:roofconcave ] = @set[id][:parapet ] if h[:parapet ]
713
713
  v[:roofconvex ] = @set[id][:parapet ] if h[:parapet ]
714
714
  v[:roofconcave ] = @set[id][:parapetconcave ] if h[:parapetconcave ]
715
- v[:roofconvex ] = @set[id][:parapetxonvex ] if h[:parapetconvex ]
715
+ v[:roofconvex ] = @set[id][:parapetconvex ] if h[:parapetconvex ]
716
716
  v[:roof ] = @set[id][:roof ] if h[:roof ]
717
717
  v[:roofconcave ] = @set[id][:roof ] if h[:roof ]
718
718
  v[:roofconvex ] = @set[id][:roof ] if h[:roof ]
@@ -758,12 +758,12 @@ module TBD
758
758
  v[:balconysillconcave ] = @set[id][:balcony ] if h[:balcony ]
759
759
  v[:balconysillconvex ] = @set[id][:balcony ] if h[:balcony ]
760
760
  v[:balconysillconcave ] = @set[id][:balconyconcave ] if h[:balconyconcave ]
761
- v[:balconysillconvex ] = @set[id][:balconyconvex ] if h[:balconycinvex ]
761
+ v[:balconysillconvex ] = @set[id][:balconyconvex ] if h[:balconyconvex ]
762
762
  v[:balconydoorsill ] = @set[id][:balcony ] if h[:balcony ]
763
763
  v[:balconydoorsillconcave] = @set[id][:balcony ] if h[:balcony ]
764
764
  v[:balconydoorsillconvex ] = @set[id][:balcony ] if h[:balcony ]
765
765
  v[:balconydoorsillconcave] = @set[id][:balconyconcave ] if h[:balconyconcave ]
766
- v[:balconydoorsillconvex ] = @set[id][:balconyconvex ] if h[:balconycinvex ]
766
+ v[:balconydoorsillconvex ] = @set[id][:balconyconvex ] if h[:balconyconvex ]
767
767
  v[:balconysill ] = @set[id][:balconysill ] if h[:balconysill ]
768
768
  v[:balconysillconcave ] = @set[id][:balconysill ] if h[:balconysill ]
769
769
  v[:balconysillconvex ] = @set[id][:balconysill ] if h[:balconysill ]
@@ -786,10 +786,10 @@ module TBD
786
786
  v[:rimjoistconvex ] = @set[id][:rimjoistconvex ] if h[:rimjoistconvex ]
787
787
 
788
788
  max = [v[:parapetconcave], v[:parapetconvex]].max
789
- v[:parapet] = max unless @has[:parapet]
789
+ v[:parapet] = max unless h[:parapet]
790
790
 
791
791
  max = [v[:roofconcave], v[:roofconvex]].max
792
- v[:roof] = max unless @has[:roof]
792
+ v[:roof] = max unless h[:roof]
793
793
 
794
794
  @val[id] = v
795
795
 
@@ -982,7 +982,7 @@ module TBD
982
982
  mth = "TBD::#{__callee__}"
983
983
  sh = { has: {}, val: {} }
984
984
  id = trim(id)
985
- return mismatch("set ID", id, String, mth, ERR, a) if id.empty?
985
+ return mismatch("set ID", id, String, mth, ERR, sh) if id.empty?
986
986
  return hashkey(id, @set , id, mth, ERR, sh) unless @set.key?(id)
987
987
  return hashkey(id, @has , id, mth, ERR, sh) unless @has.key?(id)
988
988
  return hashkey(id, @val , id, mth, ERR, sh) unless @val.key?(id)
@@ -1736,9 +1736,9 @@ module TBD
1736
1736
  next unless point_V_mag > TOL
1737
1737
  next unless point_V_mag > farthest_mag
1738
1738
 
1739
- farthest = point
1740
- farthest_V = origin_point_V
1741
- fathest_mag = point_V_mag
1739
+ farthest = point
1740
+ farthest_V = origin_point_V
1741
+ farthest_mag = point_V_mag
1742
1742
  end
1743
1743
 
1744
1744
  angle = reference_V.angle(farthest_V)
data/lib/tbd/ua.rb CHANGED
@@ -1002,7 +1002,7 @@ module TBD
1002
1002
  model = "* modèle : #{ua[:file]}" if ua.key?(:file) && lang == :fr
1003
1003
  model += " (v#{ua[:version]})" if ua.key?(:version)
1004
1004
  report << model unless model.empty?
1005
- report << "* TBD : v3.6.0"
1005
+ report << "* TBD : v3.6.1"
1006
1006
  report << "* date : #{ua[:date]}"
1007
1007
 
1008
1008
  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.6.0".freeze
24
+ VERSION = "3.6.1".freeze
25
25
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbd
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.0
4
+ version: 3.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Bourgeois & Dan Macumber
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-04-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: topolys
@@ -166,9 +165,8 @@ licenses:
166
165
  - MIT
167
166
  metadata:
168
167
  homepage_uri: https://github.com/rd2/tbd
169
- source_code_uri: https://github.com/rd2/tbd/tree/v3.6.0
168
+ source_code_uri: https://github.com/rd2/tbd/tree/v3.6.1
170
169
  bug_tracker_uri: https://github.com/rd2/tbd/issues
171
- post_install_message:
172
170
  rdoc_options: []
173
171
  require_paths:
174
172
  - lib
@@ -186,8 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
184
  - !ruby/object:Gem::Version
187
185
  version: '0'
188
186
  requirements: []
189
- rubygems_version: 3.4.10
190
- signing_key:
187
+ rubygems_version: 3.7.1
191
188
  specification_version: 4
192
189
  summary: Thermal Bridging and Derating (for OpenStudio)
193
190
  test_files: []