tbd 3.4.2 → 3.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/lib/measures/tbd/measure.xml +6 -6
- data/lib/measures/tbd/resources/psi.rb +18 -41
- data/lib/measures/tbd/resources/tbd.rb +10 -10
- data/lib/measures/tbd/resources/ua.rb +3 -3
- data/lib/measures/tbd/resources/utils.rb +1354 -895
- data/lib/tbd/psi.rb +18 -41
- data/lib/tbd/ua.rb +3 -3
- data/lib/tbd/version.rb +1 -1
- data/lib/tbd.rb +13 -13
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4edf2565b741a5d272169d616339e9f86e4651402ea9ca160f2db30fc38b07f
|
4
|
+
data.tar.gz: 6320eaf03d3f60c178bc05c4e53d84c42b678dc757590428306b23bf0f6d9b83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9972bcf05ee6a42900b8153fd71acb3232a3b00e0cd95c87ffefac1ec982777fa4292fca3361d70ad6a7e4f46cfdca1f1e77879a1677eb75be946bbb4827fe9c
|
7
|
+
data.tar.gz: 76c04922cf93a8252b2d08e1d14582152d2d43a71ec99099e63467eb4b761602824d62c8e931d49ecd4f7eaa7a6f518a6d6e10bb0375bf56cebed1eef4a38c26
|
data/Rakefile
CHANGED
@@ -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>
|
7
|
-
<version_modified>2024-
|
6
|
+
<version_id>12467d7f-9058-4028-b6f8-0448e81b7fef</version_id>
|
7
|
+
<version_modified>2024-10-15T18:51:39Z</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>
|
@@ -523,13 +523,13 @@
|
|
523
523
|
<filename>psi.rb</filename>
|
524
524
|
<filetype>rb</filetype>
|
525
525
|
<usage_type>resource</usage_type>
|
526
|
-
<checksum>
|
526
|
+
<checksum>25CD6251</checksum>
|
527
527
|
</file>
|
528
528
|
<file>
|
529
529
|
<filename>tbd.rb</filename>
|
530
530
|
<filetype>rb</filetype>
|
531
531
|
<usage_type>resource</usage_type>
|
532
|
-
<checksum>
|
532
|
+
<checksum>FCCCAE84</checksum>
|
533
533
|
</file>
|
534
534
|
<file>
|
535
535
|
<filename>transformation.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>
|
544
|
+
<checksum>013BA732</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>
|
550
|
+
<checksum>CBC3935D</checksum>
|
551
551
|
</file>
|
552
552
|
<file>
|
553
553
|
<filename>version.rb</filename>
|
@@ -1717,49 +1717,26 @@ module TBD
|
|
1717
1717
|
t_model.wires.each do |wire|
|
1718
1718
|
next unless surface[:wire] == wire.id # should be a unique match
|
1719
1719
|
|
1720
|
-
normal
|
1721
|
-
normal
|
1722
|
-
normal
|
1723
|
-
farthest
|
1724
|
-
farthest_V
|
1725
|
-
|
1726
|
-
i_origin = wire.points.index(origin)
|
1727
|
-
i_terminal = wire.points.index(terminal)
|
1728
|
-
i_last = wire.points.size - 1
|
1729
|
-
|
1730
|
-
if i_terminal == 0
|
1731
|
-
inverted = true unless i_origin == i_last
|
1732
|
-
elsif i_origin == i_last
|
1733
|
-
inverted = true unless i_terminal == 0
|
1734
|
-
else
|
1735
|
-
inverted = true unless i_terminal - i_origin == 1
|
1736
|
-
end
|
1720
|
+
normal = tbd[:surfaces][id][:n] if tbd[:surfaces].key?(id)
|
1721
|
+
normal = holes[id].attributes[:n] if holes.key?(id)
|
1722
|
+
normal = shades[id][:n] if shades.key?(id)
|
1723
|
+
farthest = Topolys::Point3D.new(origin.x, origin.y, origin.z)
|
1724
|
+
farthest_V = farthest - origin # zero magnitude, initially
|
1725
|
+
farthest_mag = 0
|
1737
1726
|
|
1738
1727
|
wire.points.each do |point|
|
1739
1728
|
next if point == origin
|
1740
1729
|
next if point == terminal
|
1741
1730
|
|
1742
|
-
point_on_plane
|
1743
|
-
origin_point_V
|
1744
|
-
|
1745
|
-
next unless
|
1746
|
-
|
1747
|
-
# Generate a plane between origin, terminal & point. Only consider
|
1748
|
-
# planes that share the same normal as wire.
|
1749
|
-
if inverted
|
1750
|
-
plane = Topolys::Plane3D.from_points(terminal, origin, point)
|
1751
|
-
else
|
1752
|
-
plane = Topolys::Plane3D.from_points(origin, terminal, point)
|
1753
|
-
end
|
1754
|
-
|
1755
|
-
dnx = (normal.x - plane.normal.x).abs
|
1756
|
-
dny = (normal.y - plane.normal.y).abs
|
1757
|
-
dnz = (normal.z - plane.normal.z).abs
|
1758
|
-
next unless dnx < TOL && dny < TOL && dnz < TOL
|
1731
|
+
point_on_plane = edge_plane.project(point)
|
1732
|
+
origin_point_V = point_on_plane - origin
|
1733
|
+
point_V_mag = origin_point_V.magnitude
|
1734
|
+
next unless point_V_mag > TOL
|
1735
|
+
next unless point_V_mag > farthest_mag
|
1759
1736
|
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1737
|
+
farthest = point
|
1738
|
+
farthest_V = origin_point_V
|
1739
|
+
fathest_mag = point_V_mag
|
1763
1740
|
end
|
1764
1741
|
|
1765
1742
|
angle = reference_V.angle(farthest_V)
|
@@ -2125,7 +2102,7 @@ module TBD
|
|
2125
2102
|
end
|
2126
2103
|
|
2127
2104
|
# Label edge as :ceiling if linked to:
|
2128
|
-
# +1 deratable
|
2105
|
+
# +1 deratable surface(s)
|
2129
2106
|
# 1x underatable CONDITIONED floor linked to an unoccupied space
|
2130
2107
|
# 1x adjacent CONDITIONED ceiling linked to an occupied space
|
2131
2108
|
edge[:surfaces].keys.each do |i|
|
@@ -2139,9 +2116,9 @@ module TBD
|
|
2139
2116
|
next if floors[i][:occupied ]
|
2140
2117
|
|
2141
2118
|
ceiling = floors[i][:boundary]
|
2142
|
-
next
|
2143
|
-
next
|
2144
|
-
next
|
2119
|
+
next unless ceilings.key?(ceiling)
|
2120
|
+
next unless ceilings[ceiling][:conditioned]
|
2121
|
+
next unless ceilings[ceiling][:occupied ]
|
2145
2122
|
|
2146
2123
|
other = deratables.first unless deratables.first == id
|
2147
2124
|
other = deratables.last unless deratables.last == id
|
@@ -40,16 +40,16 @@ require_relative "geo"
|
|
40
40
|
require_relative "ua"
|
41
41
|
|
42
42
|
module TBD
|
43
|
-
extend OSut
|
44
|
-
|
45
|
-
TOL = OSut::TOL
|
46
|
-
TOL2 = OSut::TOL2
|
47
|
-
DBG = OSut::DEBUG
|
48
|
-
INF = OSut::INFO
|
49
|
-
WRN = OSut::WARN
|
50
|
-
ERR = OSut::ERR
|
51
|
-
FTL = OSut::FATAL
|
52
|
-
NS =
|
43
|
+
extend OSut # OpenStudio utilities
|
44
|
+
|
45
|
+
TOL = OSut::TOL.dup # default distance tolerance (m)
|
46
|
+
TOL2 = OSut::TOL2.dup # default area tolerance (m2)
|
47
|
+
DBG = OSut::DEBUG.dup # github.com/rd2/oslg
|
48
|
+
INF = OSut::INFO.dup # github.com/rd2/oslg
|
49
|
+
WRN = OSut::WARN.dup # github.com/rd2/oslg
|
50
|
+
ERR = OSut::ERR.dup # github.com/rd2/oslg
|
51
|
+
FTL = OSut::FATAL.dup # github.com/rd2/oslg
|
52
|
+
NS = OSut::NS.dup # OpenStudio IdfObject nameString method
|
53
53
|
|
54
54
|
extend TBD
|
55
55
|
end
|
@@ -799,8 +799,8 @@ module TBD
|
|
799
799
|
blc.each do |b|
|
800
800
|
bloc = b1
|
801
801
|
bloc = b2 if b == :b2
|
802
|
-
pro_sum = bloc[:pro].values.
|
803
|
-
ref_sum = bloc[:ref].values.
|
802
|
+
pro_sum = bloc[:pro].values.sum
|
803
|
+
ref_sum = bloc[:ref].values.sum
|
804
804
|
|
805
805
|
if pro_sum > TOL || ref_sum > TOL
|
806
806
|
ratio = nil
|
@@ -1000,7 +1000,7 @@ module TBD
|
|
1000
1000
|
model = "* modèle : #{ua[:file]}" if ua.key?(:file) && lang == :fr
|
1001
1001
|
model += " (v#{ua[:version]})" if ua.key?(:version)
|
1002
1002
|
report << model unless model.empty?
|
1003
|
-
report << "* TBD : v3.4.
|
1003
|
+
report << "* TBD : v3.4.3"
|
1004
1004
|
report << "* date : #{ua[:date]}"
|
1005
1005
|
|
1006
1006
|
if lang == :en
|