Module: BTAP::BridgingData
- Included in:
- Bridging
- Defined in:
- lib/openstudio-standards/btap/bridging.rb
Overview
—- —- —- —- —- —- —- —- —- —- —- —- —- —- —- #
Constant Summary collapse
- MASS2 =
— —- —- —- —- —- —- —- —- —- —- —- —- —- — # BTAP costing data (both original BTAP envelope entries and EVOKE add-ons) hold sub-variants based on cladding/veneer, e.g.:
- "BTAP-ExteriorWall-WoodFramed-5" ... brick veneer - "BTAP-ExteriorWall-WoodFramed-1" ... wood sidingNot all of these sub-variants are currently used within BTAP, e.g. “BTAP-ExteriorWall-WoodFramed-1” is unused. BTAP/TBD data is limited to the following wall assemblies (paired LP & HP variants), which eventually should be located in a shared file (e.g. CSV, JSON).
----- Low Performance (LP) assemblies ID : layers ----- ------------------------------------------ STEL1 : cladding | board | wool | frame | gypsum WOOD5 : brick | board | wool | frame | gypsum MASS2 : brick | xps | | cmu | MASS4 : precast | xps | wool | frame | gypsum ----- High Performance (HP) variants ID : layers ----- ------------------------------------------ STEL2 : cladding | board | wool | frame | gypsum ... switch from STEL1 WOOD7 : brick | mineral | wool | frame | gypsum ... switch from WOOD5 MASSB : brick | mineral | cmu | foam | gypsum ... switch from MASS2 MASS8 : precast | xps | wool | frame | gypsum ... switch from MASS4Paired LPs & HPs vall variants are critical for ‘uprating’ cases, e.g. NECB2017/2020. See below, and end of this document for additional NOTES.
"BTAP-ExteriorWall-Mass-2"- MASS2_BAD =
LP wall
"BTAP-ExteriorWall-Mass-2 bad"- MASS2_GOOD =
LP “bad” PSI factors
"BTAP-ExteriorWall-Mass-2 good"- MASSB =
LP “good” PSI factors
"BTAP-ExteriorWall-Mass-2b"- MASSB_BAD =
HP, from @Uo < 0.183
"BTAP-ExteriorWall-Mass-2b bad"- MASSB_GOOD =
HP “bad” PSI factors
"BTAP-ExteriorWall-Mass-2b good"- MASS4 =
HP “good” PSI factors
"BTAP-ExteriorWall-Mass-4"- MASS4_BAD =
"BTAP-ExteriorWall-Mass-4 bad"- MASS4_GOOD =
"BTAP-ExteriorWall-Mass-4 good"- MASS8 =
HP, from @Uo < 0.183
"BTAP-ExteriorWall-Mass-8c"- MASS8_BAD =
"BTAP-ExteriorWall-Mass-8c bad"- MASS8_GOOD =
"BTAP-ExteriorWall-Mass-8c good"- WOOD5 =
"BTAP-ExteriorWall-WoodFramed-5"- WOOD5_BAD =
"BTAP-ExteriorWall-WoodFramed-5 bad"- WOOD5_GOOD =
"BTAP-ExteriorWall-WoodFramed-5 good"- WOOD7 =
HP, from @Uo < 0.183
"BTAP-ExteriorWall-WoodFramed-7"- WOOD7_BAD =
"BTAP-ExteriorWall-WoodFramed-7 bad"- WOOD7_GOOD =
"BTAP-ExteriorWall-WoodFramed-7 good"- STEL1 =
"BTAP-ExteriorWall-SteelFramed-1"- STEL1_BAD =
"BTAP-ExteriorWall-SteelFramed-1 bad"- STEL1_GOOD =
"BTAP-ExteriorWall-SteelFramed-1 good"- STEL2 =
HP from @Uo < 0.278
"BTAP-ExteriorWall-SteelFramed-2"- STEL2_BAD =
"BTAP-ExteriorWall-SteelFramed-2 bad"- STEL2_GOOD =
"BTAP-ExteriorWall-SteelFramed-2 good"- ROOF =
"BTAP-ExteriorRoof-IEAD-4"- FLOOR =
"BTAP-ExteriorFloor-SteelFramed-1"- @@data =
— —- —- —- —- —- —- —- —- —- —- —- —- —- — # Preset BTAP/TBD wall assembly parameters.
{}
Class Method Summary collapse
Instance Method Summary collapse
-
#costed_assembly(structure = nil, stype = :walls, perform = :lp) ⇒ String
Retrieves BTAP-costed assembly.
-
#costed_uo(assembly = "", uo = nil) ⇒ Double
Retrieves nearest assembly Uo factor.
-
#data ⇒ Hash
Return BTAP/TBD data.
-
#lowest_uo(assembly = "") ⇒ Double
Retrieves lowest costed assembly Uo factor.
-
#set(assembly = STEL2, quality = :good) ⇒ Hash
Retrieves assembly-specific PSI factor set.
Class Method Details
.extended(base) ⇒ Object
540 541 542 |
# File 'lib/openstudio-standards/btap/bridging.rb', line 540 def self.extended(base) base.send(:include, self) end |
Instance Method Details
#costed_assembly(structure = nil, stype = :walls, perform = :lp) ⇒ String
Retrieves BTAP-costed assembly.
415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 |
# File 'lib/openstudio-standards/btap/bridging.rb', line 415 def costed_assembly(structure = nil, stype = :walls, perform = :lp) stype = :walls unless [:roofs, :floors].include?(stype) perform = :lp unless perform == :hp return STEL1 unless structure.is_a?(BTAP::Structure) # Select BTAP-costed assembly, matching: # - BTAP::Structure generated construction parameters # - requested high (HP) vs low-performance (LP) PSI-factor level # # Ideally, chosen PSI factor sets and matching OpenStudio constructions # shouldn't strictly be based on selected BTAP assemblies (e.g. # wood-framed vs steel-framed, cladding choice), but also on selected # building 'structure', e.g.: # # - "wood-framed" MURB # - "steel post/beam" office building # - "reinforced concrete post/beam" public library # - "metal(-building)" warehouse # - "mass-timber (CLT)" university pavilion # # Major thermal bridges often consist of anchors or supports that transmit # structural loads (and by the same token, 'heat') to a building's main # structure. Examples include balconies, parapets and shelf angles. # Highly conductive building structures (e.g. steel, aluminium) exacerbate # thermal bridging effects - so building structural selection matters. # # The BTAP::Structure module generates such attributes, yet BTAP's costed # thermal bridging database doesn't yet distinguish between building # structures - @todo. For the moment, BTAP PSI set selection is strictly # based on BTAP::Structure's :framing, :cladding and :finish attributes, # which must be set prior to initiating BTAP's TBD's thermal bridging # solution: # Light gauge steel framing by default. Override if wood, cmu or precast. case stype when :roofs then return ROOF when :floors then return FLOOR else case structure.framing when :wood c1 = WOOD5 c2 = WOOD7 when :cmu c1 = MASS2 c2 = MASSB else if structure.cladding == :heavy && structure.finish == :heavy c1 = MASS4 c2 = MASS8 else c1 = STEL1 c2 = STEL2 end end end perform == :lp ? c1 : c2 end |
#costed_uo(assembly = "", uo = nil) ⇒ Double
Retrieves nearest assembly Uo factor.
481 482 483 484 485 486 487 488 489 490 |
# File 'lib/openstudio-standards/btap/bridging.rb', line 481 def costed_uo(assembly = "", uo = nil) return nil unless @@data.key?(assembly) return nil unless uo.is_a?(Numeric) uo = uo.clamp(TBD::UMIN, TBD::UMAX) @@data[assembly][:uos].each { |u| return u if u.round(3) <= uo.round(3) } nil end |
#data ⇒ Hash
Return BTAP/TBD data.
536 537 538 |
# File 'lib/openstudio-standards/btap/bridging.rb', line 536 def data @@data end |
#lowest_uo(assembly = "") ⇒ Double
Retrieves lowest costed assembly Uo factor.
498 499 500 501 502 |
# File 'lib/openstudio-standards/btap/bridging.rb', line 498 def lowest_uo(assembly = "") return nil unless @@data.key?(assembly) @@data[assembly][:uos].min end |
#set(assembly = STEL2, quality = :good) ⇒ Hash
Retrieves assembly-specific PSI factor set.
511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 |
# File 'lib/openstudio-standards/btap/bridging.rb', line 511 def set(assembly = STEL2, quality = :good) assembly = STEL2 unless @@data.key?(assembly) quality = :good unless @@data[assembly].key?(quality) chx = @@data[assembly][quality] psi = {} psi[:id ] = chx[:id ] psi[:rimjoist ] = chx[:rimjoist ][:psi] psi[:parapet ] = chx[:parapet ][:psi] psi[:fenestration] = chx[:fenestration][:psi] psi[:door ] = chx[:door ][:psi] psi[:corner ] = chx[:corner ][:psi] psi[:balcony ] = chx[:balcony ][:psi] psi[:party ] = chx[:party ][:psi] psi[:grade ] = chx[:grade ][:psi] psi[:joint ] = chx[:joint ][:psi] psi end |