// UQO Éval — Quantity Survey : correspondance entre les familles du relevé des quantités (codes d'assemblage UQO Éval, quantités en unités // métriques) et les lignes de coûts unitaires RSMeans (MasterFormat 2018). Une famille peut se décomposer en plusieurs lignes RSMeans // (ex. salle de bain = appareils + robinetterie). Chaque part précise : // - line : numéro de ligne RSMeans (12 chiffres) ; // - qtyFactor : facteur appliqué à la quantité du relevé (défaut 1) ; // - unit : si l'unité RSMeans n'est pas de même dimension que la quantité du relevé (ex. m² de mur → m de lisse, m² chauffés → unités), // la ligne d'estimation est créée dans cette unité avec quantité = relevé × qtyFactor (ligne non liée au registre, formule conservée) ; // sinon la ligne reste LIÉE à la mesure du registre et le moteur convertit m ↔ pi, m² ↔ pi², m³ ↔ vg³ ; // - label : complément de description. // Les choix (dimension des lignes, hypothèses de conversion) sont documentés dans docs/construction/RSMEANS.md §5. import type { MeasureUnit } from "./types"; export interface QsRsmPart { line: string; qtyFactor?: number; unit?: MeasureUnit; label: string } export const QS_RSMEANS_MAP: Record = { // ---- site et fondations "SITE-EXCAV-BASEMENT": [{ line: "312316425100", label: "excavation en masse, pelle hydraulique 1 vg³ (B.C.Y.)" }], "SITE-DRAIN-FRENCH": [{ line: "334116103000", label: "drain de fondation perforé 4 po" }], "FND-FOOTING": [{ line: "033053403935", unit: "m3", qtyFactor: 0.183, label: "semelle filante 24 × 12 po (0,61 × 0,30 m = 0,183 m³/m)" }], "FND-WALL-POURED-8IN": [{ line: "033053404200", unit: "m3", qtyFactor: 0.203, label: "mur de béton 8 po coffré (0,203 m³/m²)" }], "FND-WALL-BLOCK-8IN": [{ line: "042210260250", label: "mur de fondation en blocs de béton 8 po" }], "FND-SLAB-BASEMENT-4IN": [{ line: "033053405001", label: "dalle sur sol 4 po" }], "FND-SLAB-ON-GRADE-INSULATED": [{ line: "033053405010", label: "dalle sur sol 6 po" }, { line: "072113101940", label: "isolant XPS 2 po R-10 sous dalle" }], "FND-SLAB-GARAGE-5IN": [{ line: "033053405010", label: "dalle 6 po (garage)" }], // ---- structure "STR-FLOOR-IJOIST": [{ line: "061733101200", label: "solives en I 24 po c/c, portée 15–24 pi" }, { line: "061623101600", label: "sous-plancher OSB ¾ po" }], "STR-WALL-2X6-EXT": [{ line: "061110260800", unit: "m", qtyFactor: 0.41, label: "ossature 2 × 6 à 16 po c/c, 8 pi, lisses incluses (m de mur = m² ÷ 2,44)" }, { line: "061636100600", label: "revêtement intermédiaire contreplaqué ½ po" }], "STR-WALL-2X4-INT": [{ line: "061110260200", unit: "m", qtyFactor: 0.41, label: "cloison 2 × 4 à 16 po c/c, 8 pi, lisses incluses (m de cloison = m² ÷ 2,44)" }], "STR-BEAM-LVL": [{ line: "061813206150", qtyFactor: 3, label: "poutre LVL 1¾ × 14 po, 3 plis" }], "STR-ROOF-TRUSS-OSB": [{ line: "061753100210", qtyFactor: 0.93, label: "fermes fink 4/12 à 24 po c/c (par pi² de plancher ≈ 0,93 × aire de toit)" }, { line: "061636100100", label: "support de toit contreplaqué CDX ½ po" }], // ---- enveloppe et toiture "ENV-INSUL-WALL-R24": [{ line: "072116200182", label: "matelas kraft 6 po R-21 (plus proche de R-24 dans RSMeans)" }], "ENV-INSUL-ATTIC-R50": [{ line: "072126100120", qtyFactor: 1.32, label: "cellulose soufflée R-38 (épaisseur × 1,32 pour R-50)" }], "ENV-INSUL-BASEMENT-R20": [{ line: "072113101940", qtyFactor: 2, label: "XPS 2 po R-10, deux couches" }], "ENV-SIDING-VINYL": [{ line: "074633104000", label: "revêtement de vinyle double 5 po" }], "ENV-SIDING-BRICK": [{ line: "042113132000", label: "placage de brique standard, appareil courant" }], "ENV-SIDING-FIBERCEMENT": [{ line: "074646100030", label: "revêtement de fibrociment à clin 7½ po" }], "ENV-SIDING-WOOD": [{ line: "074623103600", label: "clin de cèdre « B » ¾ × 10 po" }], "ENV-SIDING-STONE": [{ line: "044310050200", label: "placage de pierre (ashlar, prix moyen)" }], "ENV-SIDING-STEEL": [{ line: "074213300020", label: "revêtement d'acier à clin, émaillé, 8 po" }], "ENV-SOFFIT-FASCIA": [{ line: "074213206920", label: "soffite et bordure d'aluminium ventilés, débord 1 pi" }], "ROOF-ASPHALT-ARCH": [{ line: "073113100300", label: "bardeaux d'asphalte laminés standard" }, { line: "073113100800", label: "sous-couche feutre no 15" }], "ROOF-MEMBRANE-ELASTO": [{ line: "075213100040", qtyFactor: 2, label: "membrane APP, base + finition (2 couches)" }], "ROOF-EPDM": [{ line: "075323203700", label: "membrane EPDM 45 mils partiellement adhérée" }], "ROOF-METAL-STANDING": [{ line: "074113100300", label: "panneaux de toiture d'aluminium nervurés peints (RSMeans : pas de joint debout résidentiel)" }], "EXT-GUTTERS": [{ line: "077123300100", label: "gouttières d'aluminium 5 po" }, { line: "077123100100", qtyFactor: 0.35, label: "descentes 2 × 3 po (≈ 35 % de la longueur)" }], // ---- ouvertures "OPN-WINDOW-PVC-STD": [{ line: "085313100100", label: "fenêtre de vinyle à guillotine 3 × 4½ pi, moustiquaire" }], "OPN-DOOR-EXT-STEEL": [{ line: "081313201340", label: "porte d'acier isolée prémontée 3 × 6 pi 8" }], "OPN-DOOR-PATIO-6FT": [{ line: "083219150020", label: "porte-patio coulissante 6 pi, vitrage isolant" }], "OPN-DOOR-EXT-FIBERGLASS": [{ line: "081613100040", label: "porte extérieure de fibre de verre prémontée 3 × 6 pi 8" }], "OPN-DOOR-INT-SOLID": [{ line: "081723104400", label: "porte intérieure prémontée à âme pleine" }], "OPN-WINDOW-WOOD-STD": [{ line: "085216350500", label: "fenêtre de bois gainée de vinyle à guillotine 3 × 4 pi, haut de gamme" }], "OPN-WINDOW-HYBRID-STD": [{ line: "085216350506", label: "fenêtre de bois gainée de vinyle à guillotine 3 × 4 pi, économique (hybride)" }], "OPN-WINDOW-ALU-STD": [{ line: "085113207040", label: "fenêtre d'aluminium commerciale à guillotine, vitrage isolant" }], "OPN-DOOR-INT-HOLLOW": [{ line: "081723104600", label: "porte intérieure prémontée à âme creuse" }], "OPN-DOOR-CLOSET-BIFOLD": [{ line: "081313202330", label: "porte pliante de placard 3 pi" }], "OPN-DOOR-GARAGE-9X7": [{ line: "083613200700", label: "porte de garage sectionnelle métal 9 × 7 pi" }], "OPN-DOOR-GARAGE-16X7": [{ line: "083613200800", label: "porte de garage sectionnelle métal 16 × 7 pi" }], // ---- finitions intérieures "INT-DRYWALL-1/2-FINISHED": [{ line: "092910300350", label: "gypse ½ po murs, tiré de joints niveau 4" }], "INT-DRYWALL-5/8-CEILING": [{ line: "092910303150", label: "gypse ⅝ po coupe-feu plafonds, niveau 4" }], "INT-PAINT-2-COATS": [{ line: "099123720840", label: "peinture latex 2 couches au rouleau, murs et plafonds" }], "INT-FLOOR-CERAMIC": [{ line: "093133103270", label: "céramique 12 × 12 po, couche mince" }], "INT-FLOOR-HARDWOOD": [{ line: "096429106200", label: "lames de chêne blanc préverni 3¼ po" }], "INT-FLOOR-VINYL-PLANK": [{ line: "096519238100", label: "planches de vinyle de luxe collées" }], "INT-FLOOR-ENGINEERED": [{ line: "096429106100", label: "lames de chêne blanc préverni 2¼ po (équivalent RSMeans du plancher d'ingénierie)" }], "INT-FLOOR-LAMINATE": [{ line: "096219108300", label: "plancher flottant stratifié, motif bois, complet" }], "INT-FLOOR-CARPET": [{ line: "096816102101", label: "tapis nylon 20 oz collé" }], "INT-TRIM-BASEBOARD": [{ line: "062213155180", label: "plinthe ogee peuplier 3 po" }], "BSM-SUBFLOOR-PANELS": [{ line: "061623101600", label: "sous-plancher OSB ¾ po" }], // ---- cuisine (quantité du relevé = mètres linéaires d'armoires) et salles de bain (appareils et robinetterie ; plomberie brute dans MEC-PLUMBING-ROUGH-IN) "KIT-ECONOMY": [{ line: "123223109560", label: "armoires de cuisine, règle du pouce, minimum (par pi lin.)" }, { line: "123623130020", label: "comptoir stratifié avec dosseret, minimum" }, { line: "224116163100", unit: "unit", qtyFactor: 1 / 8, label: "évier simple inox avec robinet (1 par 8 m d'armoires)" }], "KIT-STANDARD": [{ line: "123223109560", label: "armoires de cuisine, règle du pouce, minimum (par pi lin.)" }, { line: "123623130100", label: "comptoir stratifié avec dosseret, maximum" }, { line: "224116163200", unit: "unit", qtyFactor: 1 / 8, label: "évier double inox avec robinet (1 par 8 m d'armoires)" }], "KIT-SUPERIOR": [{ line: "123223109600", label: "armoires de cuisine, règle du pouce, maximum (par pi lin.)" }, { line: "123619103000", label: "comptoir d'érable massif lamellé avec dosseret" }, { line: "224116163200", unit: "unit", qtyFactor: 1 / 8, label: "évier double inox avec robinet (1 par 8 m d'armoires)" }], "KIT-PRESTIGE": [{ line: "123223109600", label: "armoires de cuisine, règle du pouce, maximum (par pi lin.)" }, { line: "123616103210", label: "comptoir d'acier inoxydable" }, { line: "224116163200", unit: "unit", qtyFactor: 1 / 8, label: "évier double inox avec robinet (1 par 8 m d'armoires)" }], "BATH-ECONOMY": [{ line: "224113131102", label: "toilette deux pièces, économique" }, { line: "224116134060", label: "lavabo mural" }, { line: "224139102100", label: "robinet de lavabo (sans drain)" }, { line: "224119102000", label: "baignoire d'acier émaillé 4 pi 6" }, { line: "224139100420", label: "robinetterie de bain-douche à pression équilibrée" }], "BATH-STANDARD": [{ line: "224113131100", label: "toilette deux pièces" }, { line: "224116131000", label: "lavabo de meuble-lavabo (marbre cultivé)" }, { line: "224139102120", label: "robinet de lavabo avec drain" }, { line: "224119102300", label: "baignoire d'acier émaillé 5 pi" }, { line: "224139100420", label: "robinetterie de bain-douche à pression équilibrée" }], "BATH-SUPERIOR": [{ line: "224113131050", label: "toilette une pièce" }, { line: "224116130640", label: "lavabo ovale en fonte émaillée 33 × 19 po" }, { line: "224139102120", label: "robinet de lavabo avec drain" }, { line: "224119100380", label: "baignoire en fonte émaillée 5 pi" }, { line: "224139100420", label: "robinetterie de bain-douche à pression équilibrée" }], "BATH-POWDER": [{ line: "224113131100", label: "toilette deux pièces" }, { line: "224116131000", label: "lavabo" }, { line: "224139102120", label: "robinet de lavabo" }], "MEC-PLUMBING-ROUGH-IN": [{ line: "224116133580", label: "plomberie brute par appareil (alimentation, évacuation, évent)" }], "MEC-WATER-HEATER-60": [{ line: "223330131120", label: "chauffe-eau électrique 66 gal (plus proche de 60 gal)" }], // ---- mécanique "MEC-HEATPUMP-CENTRAL": [{ line: "238143101040", label: "thermopompe bibloc 3 tonnes" }, { line: "260590109230", label: "raccordement électrique de thermopompe (NM)" }], "MEC-FURNACE-ELECTRIC": [{ line: "235413101140", label: "fournaise électrique 68 MBH (20 kW)" }], "MEC-FURNACE-GAS": [{ line: "235416133100", label: "fournaise au gaz 100 MBH" }], "MEC-DUCTWORK": [{ line: "237433109500", unit: "unit", qtyFactor: 1 / 55, label: "conduits résidentiels par tonne (≈ 1 tonne par 55 m² chauffés)" }], "MEC-CENTRAL-AC": [{ line: "238119200200", label: "climatiseur monobloc 3 tonnes" }], "MEC-BASEBOARD-ELECTRIC": [{ line: "238333102000", label: "plinthe électrique 1 500 W, 6 pi" }], "MEC-HEATPUMP-WALL": [{ line: "238126100140", label: "bibloc sans conduit mural 1½ tonne (RSMeans : refroidissement)" }], // ---- électricité "ELE-SERVICE-200A": [{ line: "260590101150", label: "entrée et panneau résidentiels 150 A (RSMeans ; majorer pour 200 A)" }, { line: "262416100800", label: "panneau 200 A, 24 circuits" }], "ELE-ROUGH-WIRING": [{ line: "260590104050", unit: "unit", qtyFactor: 1 / 8, label: "prises doubles NM #12 (1 par 8 m²)" }, { line: "260590102110", unit: "unit", qtyFactor: 1 / 15, label: "interrupteurs NM (1 par 15 m²)" }], "ELE-LIGHTING-STD": [{ line: "260590106210", label: "luminaire plafonnier économique" }, { line: "260590106100", label: "sortie d'éclairage boîte + câble NM" }], "ELE-LIGHTING-EXT": [{ line: "265113702000", label: "lanterne murale extérieure" }, { line: "260590106100", label: "sortie d'éclairage boîte + câble NM" }], "FND-DAMPPROOF-MEMBRANE": [{ line: "071113100300", label: "enduit bitumineux d'imperméabilisation pulvérisé, 1 couche" }], "FND-PIER": [{ line: "031113251600", unit: "m", qtyFactor: 1.5, label: "pieu : tube de fibre 12 po, 1,5 m par pieu (coffrage, béton inclus)" }], "SITE-BACKFILL": [{ line: "312323131300", label: "remblai en masse au bouteur (L.C.Y.)" }], "STR-COLUMN-STEEL": [{ line: "051223158080", label: "colonne tubulaire (lally) 4 po remplie de béton, 8 pi" }], "STR-STAIRS-INTERIOR": [{ line: "064313200600", unit: "unit", qtyFactor: 14, label: "escalier préfabriqué 14 contremarches, 3 pi (pin pour tapis)" }, { line: "064313201550", unit: "m", qtyFactor: 4.3, label: "main courante avec balustres (4,3 m par escalier)" }], "INT-CLOSET-SHELVING": [{ line: "105723190200", label: "tablette de pin 1 × 12 po" }], "OPN-WINDOW-BASEMENT": [{ line: "085123401100", label: "fenêtre de sous-sol utilitaire 1 pi 7 × 2 pi 8" }], // ---- extérieur "EXT-DECK-TREATED": [{ line: "061110280430", label: "platelage traité 5/4 × 6" }, { line: "061110280330", unit: "m", qtyFactor: 2.5, label: "solives traitées 2 × 8 à 16 po c/c (2,5 m/m²)" }], "EXT-DECK-RAILING-WOOD": [{ line: "061110280390", qtyFactor: 3, label: "garde-corps bois traité 2 × 6 (3 pièces par m)" }], "EXT-DECK-RAILING-ALU": [{ line: "057323500200", label: "garde-corps d'aluminium panneauté 3 pi 6" }], "EXT-DRIVEWAY-GRAVEL": [{ line: "321123230100", label: "fondation de pierre concassée compactée (par vg²)" }], "EXT-DRIVEWAY-PAVERS": [{ line: "321413160710", label: "pavés de béton préfabriqués 8 × 16 po" }], "EXT-FENCE-WOOD": [{ line: "323129100360", label: "clôture de cèdre à planches, 3 lisses" }], "EXT-LANDSCAPING-SOD": [{ line: "329223100300", label: "tourbe (par 1 000 pi²)" }], "EXT-STEPS-PRECAST": [{ line: "034123500350", label: "perron préfabriqué 5 contremarches, 5 pi" }], "EXT-DRIVEWAY-ASPHALT": [{ line: "321216140025", label: "asphalte 2 + 2 po sur fondation 6 po" }], }; /** Familles sans équivalent RSMeans raisonnable : restent sur le catalogue UQO Éval (signalées au relevé). */ export const QS_RSMEANS_UNMAPPED = ["MEC-DRAINAGE-BASE", "MEC-HRV", "SITE-SERVICE-CONNECTIONS"];