/** * TEMPLATES ULTRA-DÉTAILLÉS POUR ZONES CLIMATIQUES AFRICAINES * Système le plus ambitieux d'Afrique - Adaptation climatique précise */ import { TypeChantierTemplate, PhaseTemplate } from '../components/phases/PhaseGenerationWizard'; import { MATERIAUX_BTP_DATABASE, CalculateurBTPAfrique } from './materiaux-database'; // ================== ZONES CLIMATIQUES AFRICAINES ================== export interface ZoneClimatiqueAfrique { id: string; nom: string; pays: string[]; caracteristiques: { temperatureMoyenne: { min: number; max: number }; pluviometrieAnnuelle: number; // mm humiditeRelative: { min: number; max: number }; // % ventsMaximaux: number; // km/h saisons: { nom: string; mois: number[]; contraintes: string[]; recommandations: string[]; }[]; }; contraintesConstruction: { fondations: string[]; drainage: string[]; ventilation: string[]; materiaux: string[]; }; normesSpecifiques: { sisimique?: string; cyclonique?: string; thermique: string; pluviale: string; }; } export const ZONES_CLIMATIQUES: ZoneClimatiqueAfrique[] = [ { id: 'sahel', nom: 'Zone Sahélienne', pays: ['Mali', 'Burkina Faso', 'Niger', 'Tchad', 'Sénégal Nord'], caracteristiques: { temperatureMoyenne: { min: 15, max: 45 }, pluviometrieAnnuelle: 200, humiditeRelative: { min: 20, max: 60 }, ventsMaximaux: 80, saisons: [ { nom: 'Saison sèche froide', mois: [12, 1, 2], contraintes: ['Harmattan violent', 'Poussière intense', 'Écarts thermiques'], recommandations: ['Protection anti-poussière', 'Cure béton renforcée'] }, { nom: 'Saison sèche chaude', mois: [3, 4, 5], contraintes: ['Chaleur extrême 45°C+', 'Évaporation rapide', 'Dilatation'], recommandations: ['Travail tôt/tard', 'Arrosage constant', 'Protection solaire'] }, { nom: 'Saison des pluies', mois: [6, 7, 8, 9], contraintes: ['Pluies torrentielles', 'Inondations', 'Humidité'], recommandations: ['Drainage prioritaire', 'Stockage étanche', 'Planning adapté'] } ] }, contraintesConstruction: { fondations: [ 'Fondations profondes (sol gonflant)', 'Drainage périphérique obligatoire', 'Protection contre remontées capillaires' ], drainage: [ 'Évacuation eaux pluviales surdimensionnée', 'Pentes toitures minimum 40%', 'Caniveaux périmétriques' ], ventilation: [ 'Ventilation traversante obligatoire', 'Ouvertures hautes/basses', 'Protection solaire systématique' ], materiaux: [ 'Résistance UV renforcée', 'Dilatation thermique prévue', 'Protection anti-poussière' ] }, normesSpecifiques: { thermique: 'Isolation thermique obligatoire', pluviale: 'Évacuation 150mm/h minimum' } }, { id: 'guinee-forestiere', nom: 'Zone Guinéenne Forestière', pays: ['Côte d\'Ivoire Sud', 'Ghana Sud', 'Guinée', 'Liberia', 'Sierra Leone'], caracteristiques: { temperatureMoyenne: { min: 22, max: 32 }, pluviometrieAnnuelle: 2000, humiditeRelative: { min: 70, max: 95 }, ventsMaximaux: 60, saisons: [ { nom: 'Grande saison sèche', mois: [12, 1, 2, 3], contraintes: ['Harmattan modéré', 'Humidité résiduelle'], recommandations: ['Séchage matériaux prolongé', 'Ventilation renforcée'] }, { nom: 'Grande saison des pluies', mois: [4, 5, 6, 7, 8, 9, 10], contraintes: ['Pluies quasi-permanentes', 'Humidité 95%', 'Moisissures'], recommandations: ['Étanchéité absolue', 'Anti-moisissures', 'Drainage maximal'] } ] }, contraintesConstruction: { fondations: [ 'Imperméabilisation obligatoire', 'Vide sanitaire ventilé minimum 60cm', 'Drainage français complet' ], drainage: [ 'Double évacuation eaux pluviales', 'Pentes toitures minimum 45%', 'Gouttières surdimensionnées' ], ventilation: [ 'VMC obligatoire zones humides', 'Ventilation haute continue', 'Déshumidification naturelle' ], materiaux: [ 'Traitement anti-moisissures systématique', 'Résistance humidité permanente', 'Matériaux imputrescibles privilégiés' ] }, normesSpecifiques: { thermique: 'Isolation humidité prioritaire', pluviale: 'Évacuation 200mm/h minimum' } }, { id: 'cotiere-atlantique', nom: 'Zone Côtière Atlantique', pays: ['Sénégal Côte', 'Gambie', 'Guinée Bissau', 'Mauritanie Sud'], caracteristiques: { temperatureMoyenne: { min: 18, max: 35 }, pluviometrieAnnuelle: 800, humiditeRelative: { min: 60, max: 85 }, ventsMaximaux: 120, saisons: [ { nom: 'Saison fraîche', mois: [12, 1, 2, 3], contraintes: ['Alizés forts', 'Embruns salés', 'Corrosion'], recommandations: ['Protection anticorrosion renforcée', 'Matériaux marins'] }, { nom: 'Saison chaude', mois: [4, 5, 6], contraintes: ['Chaleur humide', 'Évaporation marine'], recommandations: ['Ventilation marine', 'Protection UV marine'] }, { nom: 'Hivernage', mois: [7, 8, 9, 10], contraintes: ['Pluies + vents', 'Tempêtes', 'Infiltrations'], recommandations: ['Étanchéité renforcée', 'Résistance cyclonique'] } ] }, contraintesConstruction: { fondations: [ 'Fondations anti-corrosion marines', 'Drainage anti-sel', 'Imperméabilisation renforcée' ], drainage: [ 'Évacuation résistante embruns', 'Pentes adaptées vents', 'Matériaux inoxydables' ], ventilation: [ 'Résistance vents 120 km/h', 'Protection embruns salés', 'Ventilation anti-corrosion' ], materiaux: [ 'Aciers galvanisés ou inox obligatoires', 'Béton haute résistance chlorures', 'Peintures marines exclusivement' ] }, normesSpecifiques: { thermique: 'Isolation marine spécialisée', pluviale: 'Évacuation 180mm/h + résistance vents', cyclonique: 'Résistance vents 150 km/h' } } ]; // ================== TEMPLATES ULTRA-DÉTAILLÉS PAR ZONE ================== export const TEMPLATES_AFRIQUE_DETAILLES: TypeChantierTemplate[] = [ // ========== VILLA MODERNE ZONE SAHÉLIENNE ========== { id: 'villa-moderne-sahel', nom: 'Villa Moderne - Zone Sahélienne', description: 'Villa bioclimatique adaptée climat sahélien - Résistance chaleur/harmattan', categorie: 'RESIDENTIEL', complexiteMetier: 'COMPLEXE', dureeGlobaleEstimee: 240, // jours budgetGlobalEstime: 450000, // USD nombreTotalPhases: 18, tags: ['Sahel', 'Bioclimatique', 'Anti-harmattan', 'Isolation thermique'], phases: [ { id: 'vs-01', nom: 'Études Géotechniques Sahéliennes', description: 'Analyse sols gonflants, nappe phréatique, contraintes climatiques', ordre: 1, dureeEstimee: 15, budgetEstime: 25000, competencesRequises: ['Géotechnicien sols africains', 'Hydrogéologue'], prerequis: ['Permis construire', 'Bornage terrain'], categorieMetier: 'GROS_OEUVRE', obligatoire: true, personnalisable: false, sousPhases: [ { id: 'vs-01-01', nom: 'Sondages géotechniques', description: 'Minimum 3 sondages jusqu\'à 8m - identification argiles gonflantes', ordre: 1, dureeEstimee: 5, budgetEstime: 12000, competencesRequises: ['Sondeur géotechnique'], obligatoire: true }, { id: 'vs-01-02', nom: 'Essais laboratoire sols', description: 'Limites Atterberg, CBR, gonflement, perméabilité', ordre: 2, dureeEstimee: 7, budgetEstime: 8000, competencesRequises: ['Laboratoire géotechnique'], obligatoire: true }, { id: 'vs-01-03', nom: 'Recommandations fondations', description: 'Dimensionnement fondations adaptées sol gonflant', ordre: 3, dureeEstimee: 3, budgetEstime: 5000, competencesRequises: ['Ingénieur géotechnicien'], obligatoire: true } ] }, { id: 'vs-02', nom: 'Terrassement et Fondations Anti-Gonflantes', description: 'Terrassement adapté, fondations sur sol gonflant, drainage', ordre: 2, dureeEstimee: 20, budgetEstime: 45000, competencesRequises: ['Terrassier spécialisé', 'Maçon béton armé', 'Draineur'], prerequis: ['Études géotechniques validées'], categorieMetier: 'GROS_OEUVRE', obligatoire: true, personnalisable: true, sousPhases: [ { id: 'vs-02-01', nom: 'Décapage sélectif', description: 'Décapage 50cm + substitution matériaux inertes', ordre: 1, dureeEstimee: 5, budgetEstime: 15000, competencesRequises: ['Terrassier', 'Contrôleur matériaux'], obligatoire: true }, { id: 'vs-02-02', nom: 'Fondations profondes', description: 'Semelles filantes BA avec longrines - 1,2m profondeur minimum', ordre: 2, dureeEstimee: 10, budgetEstime: 25000, competencesRequises: ['Ferrailleur', 'Coffreur', 'Bétonnier'], obligatoire: true }, { id: 'vs-02-03', nom: 'Drainage périphérique', description: 'Drain français + regard + évacuation - protection gonflement', ordre: 3, dureeEstimee: 5, budgetEstime: 5000, competencesRequises: ['Draineur', 'Canalisateur'], obligatoire: true } ] }, { id: 'vs-03', nom: 'Vide Sanitaire Ventilé Anti-Termites', description: 'VS hauteur 60cm minimum, ventilé, traité anti-termites', ordre: 3, dureeEstimee: 12, budgetEstime: 28000, competencesRequises: ['Maçon', 'Traitement bois', 'Ventilation'], prerequis: ['Fondations terminées'], categorieMetier: 'GROS_OEUVRE', obligatoire: true, personnalisable: false, sousPhases: [ { id: 'vs-03-01', nom: 'Murs vide sanitaire', description: 'Murs agglos 15cm avec ventilations - 4 ventilations mini par face', ordre: 1, dureeEstimee: 6, budgetEstime: 15000, competencesRequises: ['Maçon'], obligatoire: true }, { id: 'vs-03-02', nom: 'Traitement anti-termites', description: 'Traitement chimique sol + barrière physique Termimesh', ordre: 2, dureeEstimee: 3, budgetEstime: 8000, competencesRequises: ['Applicateur agréé termites'], obligatoire: true }, { id: 'vs-03-03', nom: 'Hourdi ventilé', description: 'Plancher poutrelles/hourdis avec isolation réfléchissante', ordre: 3, dureeEstimee: 3, budgetEstime: 5000, competencesRequises: ['Poseur plancher'], obligatoire: true } ] }, { id: 'vs-04', nom: 'Élévation Murs - Système Bioclimatique', description: 'Murs double cloison isolante - orientation optimisée climat sahélien', ordre: 4, dureeEstimee: 25, budgetEstime: 55000, competencesRequises: ['Maçon qualifié', 'Isolateur thermique'], prerequis: ['Vide sanitaire achevé'], categorieMetier: 'GROS_OEUVRE', obligatoire: true, personnalisable: true, sousPhases: [ { id: 'vs-04-01', nom: 'Mur extérieur porteur', description: 'Agglos 15cm - Résistance thermique climat sahélien', ordre: 1, dureeEstimee: 12, budgetEstime: 25000, competencesRequises: ['Maçon'], obligatoire: true }, { id: 'vs-04-02', nom: 'Isolation thermique', description: 'Isolation réfléchissante + laine roche 10cm - R≥3', ordre: 2, dureeEstimee: 8, budgetEstime: 18000, competencesRequises: ['Isolateur thermique'], obligatoire: true }, { id: 'vs-04-03', nom: 'Mur intérieur + lame air', description: 'Cloison placoplatre + lame air ventilée 5cm', ordre: 3, dureeEstimee: 5, budgetEstime: 12000, competencesRequises: ['Plaquiste'], obligatoire: true } ] }, { id: 'vs-05', nom: 'Charpente Anti-Harmattan Renforcée', description: 'Charpente métallique galvanisée - résistance vents violents 100km/h', ordre: 5, dureeEstimee: 15, budgetEstime: 35000, competencesRequises: ['Charpentier métallique', 'Soudeur qualifié'], prerequis: ['Murs terminés'], categorieMetier: 'GROS_OEUVRE', obligatoire: true, personnalisable: true, sousPhases: [ { id: 'vs-05-01', nom: 'Structure primaire', description: 'Fermes métalliques galvanisées - espacement 3m max', ordre: 1, dureeEstimee: 8, budgetEstime: 20000, competencesRequises: ['Charpentier métallique'], obligatoire: true }, { id: 'vs-05-02', nom: 'Pannes et contre-ventements', description: 'Pannes acier + contreventements anti-soulèvement', ordre: 2, dureeEstimee: 4, budgetEstime: 8000, competencesRequises: ['Charpentier'], obligatoire: true }, { id: 'vs-05-03', nom: 'Fixations renforcées', description: 'Ancrages chimiques + boulons HA - résistance arrachement', ordre: 3, dureeEstimee: 3, budgetEstime: 7000, competencesRequises: ['Fixateur qualifié'], obligatoire: true } ] } // [CONTINUE AVEC LES 13 AUTRES PHASES ULTRA-DÉTAILLÉES...] ] }, // ========== IMMEUBLE R+4 ZONE CÔTIÈRE ========== { id: 'immeuble-r4-cotier', nom: 'Immeuble R+4 - Zone Côtière Atlantique', description: 'Immeuble résistant embruns salés, vents forts, corrosion marine', categorie: 'RESIDENTIEL', complexiteMetier: 'EXPERT', dureeGlobaleEstimee: 360, budgetGlobalEstime: 850000, nombreTotalPhases: 22, tags: ['Côtier', 'Anti-corrosion', 'Embruns', 'Vents forts', 'R+4'], phases: [ { id: 'ic-01', nom: 'Études Spécialisées Environnement Marin', description: 'Études corrosion, vents, fondations marines, impact environnemental', ordre: 1, dureeEstimee: 30, budgetEstime: 45000, competencesRequises: ['Ingénieur maritime', 'Géotechnicien côtier', 'Climatologue'], prerequis: ['Permis construire', 'Étude impact'], categorieMetier: 'GROS_OEUVRE', obligatoire: true, personnalisable: false, sousPhases: [ { id: 'ic-01-01', nom: 'Étude corrosion marine', description: 'Analyse agressivité chlorures, pH, résistivité sols', ordre: 1, dureeEstimee: 10, budgetEstime: 15000, competencesRequises: ['Spécialiste corrosion marine'], obligatoire: true }, { id: 'ic-01-02', nom: 'Étude vents et cyclones', description: 'Rose des vents, pressions dynamiques, calculs structure', ordre: 2, dureeEstimee: 12, budgetEstime: 18000, competencesRequises: ['Ingénieur calcul vent'], obligatoire: true }, { id: 'ic-01-03', nom: 'Géotechnique marine', description: 'Sondages marins, battage, liquéfaction, tassements', ordre: 3, dureeEstimee: 8, budgetEstime: 12000, competencesRequises: ['Géotechnicien maritime'], obligatoire: true } ] } // [AUTRES PHASES ULTRA-DÉTAILLÉES POUR ZONE CÔTIÈRE...] ] } // [CONTINUER AVEC TOUS LES AUTRES TEMPLATES...] ]; // ================== CALCULATEUR SPÉCIALISÉ AFRIQUE ================== export class CalculateurAfriqueDetaille extends CalculateurBTPAfrique { /** * Calcul spécialisé pour fondations sols gonflants (Sahel) */ static calculerFondationsSolsGonflants(params: { surface: number; // m² chargesBatiment: number; // tonnes gonflementPrevu: number; // % (généralement 2-8%) profondeurHorsGel: number; // m zoneClimatique: string; }) { const { surface, chargesBatiment, gonflementPrevu, profondeurHorsGel, zoneClimatique } = params; // Profondeur fondations selon gonflement let profondeurRequise = Math.max(profondeurHorsGel, 1.2); if (gonflementPrevu > 4) profondeurRequise += 0.3; if (gonflementPrevu > 6) profondeurRequise += 0.5; // Surface semelles (approximation 10% surface bâtiment) const surfaceSemelles = surface * 0.10; // Volume béton semelles + longrines const volumeBetonSemelles = surfaceSemelles * 0.4; // 40cm hauteur moyenne const volumeBetonLongrines = surface * 0.15 * 0.3 * 0.4; // périmètre × section const volumeBetonTotal = volumeBetonSemelles + volumeBetonLongrines; // Béton haute résistance pour sols agressifs const betonC30 = this.calculerBetonArme({ longueur: Math.sqrt(surface), largeur: Math.sqrt(surface), epaisseur: profondeurRequise * 100, typeOuvrage: 'DALLE', classeBeton: 'C30/37', // Résistance chimique classeExposition: 'XC4', // Agression chimique modérée acierType: 'FeE500' }); // Drainage spécialisé const longueurDrainagePE = surface * 0.5; // 0.5ml/m² const volumeGravierDrainage = longueurDrainagePE * 0.3 * 0.3; // m³ // Matériaux anti-gonflement const volumeSubstitution = surface * 0.5; // 50cm substitution const gravierConcasse = volumeSubstitution * 1.7; // tonnes (densité 1.7) return { fondations: { profondeur: profondeurRequise, volumeBeton: volumeBetonTotal, materiaux: betonC30.materiaux, acierRequis: Math.ceil(volumeBetonTotal * 120) // 120kg/m³ pour fondations }, drainage: { longueurTubes: longueurDrainagePE, gravierDrainant: Math.ceil(volumeGravierDrainage), regardsVisite: Math.ceil(longueurDrainagePE / 20) // 1 regard/20ml }, substitution: { volumeDecapage: volumeSubstitution, gravierSubstitution: Math.ceil(gravierConcasse), geotextile: Math.ceil(surface * 1.1) // +10% recouvrements }, specifications: { classeBeton: 'C30/37 XC4', enrobage: '4cm minimum', acierType: 'FeE500 galvanisé recommandé', drainage: 'PE 100mm perforé + géotextile' } }; } /** * Calcul toiture anti-cyclonique (zone côtière) */ static calculerToitureAntiCyclonique(params: { surface: number; // m² hauteurBatiment: number; // m ventMaxPrevus: number; // km/h formeToiture: 'TERRASSE' | 'PENTE_FAIBLE' | 'PENTE_FORTE'; expositionVent: 'PROTEGE' | 'NORMAL' | 'EXPOSE'; }) { const { surface, hauteurBatiment, ventMaxPrevus, formeToiture, expositionVent } = params; // Pression dynamique vent (formule Eurocode) const vitesseVent = ventMaxPrevus / 3.6; // m/s const pressionVent = 0.613 * Math.pow(vitesseVent, 2); // Pa // Coefficients selon exposition const coeffExposition = { 'PROTEGE': 0.8, 'NORMAL': 1.0, 'EXPOSE': 1.3 }; const pressionCalcul = pressionVent * coeffExposition[expositionVent]; // Force arrachement totale const forceArrachement = surface * pressionCalcul; // N // Nombre fixations nécessaires (sécurité 2.5) const resistanceFixation = 2000; // N par fixation (ancrage chimique) const nombreFixations = Math.ceil(forceArrachement * 2.5 / resistanceFixation); // Espacement fixations const espacementFixations = Math.min( Math.sqrt(surface / nombreFixations), 0.6 // maximum 60cm ); // Matériaux structure let epaisseurDalle = 15; // cm minimum if (ventMaxPrevus > 150) epaisseurDalle = 20; if (ventMaxPrevus > 200) epaisseurDalle = 25; const betonToiture = this.calculerBetonArme({ longueur: Math.sqrt(surface), largeur: Math.sqrt(surface), epaisseur: epaisseurDalle, typeOuvrage: 'DALLE', classeBeton: 'C35/45', // Haute résistance classeExposition: 'XS3', // Embruns marins acierType: 'FeE500' }); // Étanchéité renforcée const surfaceEtancheite = surface * 1.15; // +15% relevés const epaisseurEtancheite = ventMaxPrevus > 180 ? 2 : 1.5; // mm return { calculs: { pressionVent: Math.round(pressionCalcul), forceArrachement: Math.round(forceArrachement / 1000), // kN nombreFixations, espacementFixations: Math.round(espacementFixations * 100) // cm }, structure: { epaisseurDalle: epaisseurDalle, materiaux: betonToiture.materiaux, armatureSpeciale: 'Treillis soudé + cadres anti-poinçonnement' }, fixations: { type: 'Ancrages chimiques M12 longueur 150mm', nombre: nombreFixations, espacement: `${Math.round(espacementFixations * 100)}cm`, couple: 'Couple serrage 85 Nm' }, etancheite: { surface: Math.ceil(surfaceEtancheite), type: `Membrane EPDM ${epaisseurEtancheite}mm`, fixationSpeciale: 'Fixation mécanique + collage', lestage: ventMaxPrevus > 200 ? 'Lestage graviers 50kg/m²' : 'Non requis' }, evacuation: { nombreEP: Math.ceil(surface / 50), // 1 EP par 50m² diametreEP: ventMaxPrevus > 150 ? 125 : 100, // mm tropPlein: 'Obligatoire si surface >200m²' } }; } } export default TEMPLATES_AFRIQUE_DETAILLES;