- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD) * DEV: Clés TEST Pierre (mode test) * REC: Clés TEST Client (mode test) * PROD: Clés LIVE Client (mode live) - Ajout de la gestion des bases de données immeubles/bâtiments * Configuration buildings_database pour DEV/REC/PROD * Service BuildingService pour enrichissement des adresses - Optimisations pages et améliorations ergonomie - Mises à jour des dépendances Composer - Nettoyage des fichiers obsolètes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
43 KiB
Documentation BDNB - Base de Données Nationale des Bâtiments
Vue d'ensemble
La Base de Données Nationale des Bâtiments (BDNB) est une base de données géographique exhaustive qui agrège de nombreuses sources sur les bâtiments français :
- Source : CSTB (Centre Scientifique et Technique du Bâtiment) / ADEME
- Couverture : Département 03 (Allier)
- Total lignes : ~6,08 millions de lignes
- Taille totale : ~1,1 Go
- Format : CSV avec géométries WKT (Well-Known Text)
- Projection : EPSG:2154 (Lambert 93)
Principes de structuration
La BDNB s'articule autour de 3 niveaux géographiques :
- batiment_groupe : Groupe de bâtiments (échelle de l'adresse)
- batiment_construction : Bâtiment individuel (empreinte au sol)
- parcelle : Parcelle cadastrale
Les données thématiques sont attachées principalement au niveau batiment_groupe.
Tables principales
1. batiment_groupe.csv ⭐ (Table centrale)
Rôle : Table pivot contenant les groupes de bâtiments identifiés à l'échelle de l'adresse.
Statistiques :
- Lignes : 271 795
- Taille : 78 Mo
- Clé primaire :
batiment_groupe_id
Colonnes :
geom_groupe Géométrie MULTIPOLYGON en WKT
batiment_groupe_id Identifiant unique (ex: bdnb-bg-11HT-AKW6-6RW8)
code_departement_insee Code département (03)
s_geom_groupe Surface du groupe en m²
code_iris Code IRIS INSEE
code_commune_insee Code commune INSEE (5 caractères)
libelle_commune_insee Nom de la commune
code_epci_insee Code EPCI (intercommunalité)
contient_fictive_geom_groupe Indicateur de géométrie fictive (0/1)
Exemple :
batiment_groupe_id: bdnb-bg-11HT-AKW6-6RW8
code_commune_insee: 03300
libelle_commune_insee: Vaumas
s_geom_groupe: 257 m²
Usage : Point d'entrée pour toutes les jointures avec les données thématiques.
2. batiment_construction.csv
Rôle : Détails sur chaque construction individuelle composant un groupe de bâtiments.
Statistiques :
- Lignes : 405 196
- Taille : 97 Mo
- Clé primaire :
batiment_construction_id - Clé étrangère :
batiment_groupe_id
Colonnes :
WKT Géométrie MULTIPOLYGON
batiment_construction_id Identifiant unique (ex: bdnb-bc-CK5L-44YF-S14M)
batiment_groupe_id Lien vers batiment_groupe
code_departement_insee Code département
code_iris Code IRIS
code_commune_insee Code commune
s_geom_cstr Surface de construction en m²
hauteur Hauteur du bâtiment en mètres
altitude_sol Altitude du sol en mètres
fictive_geom_cstr Indicateur de géométrie fictive
Relation : 1 batiment_groupe → N batiment_construction (1,5 constructions par groupe en moyenne)
3. adresse.csv ⭐ (Lien avec BAN)
Rôle : Référentiel des adresses issues de la Base Adresse Nationale (BAN).
Statistiques :
- Lignes : 182 132
- Taille : 26 Mo
- Clé primaire :
cle_interop_adr
Colonnes :
WKT Géométrie POINT (coordonnées de l'adresse)
cle_interop_adr Clé d'interopérabilité BAN (ex: 03001_0013_00004)
code_departement_insee Code département
numero Numéro dans la voie
rep Répétition (bis, ter, etc.)
type_voie Type de voie (rue, avenue, place, etc.)
nom_voie Nom de la voie
libelle_adresse Adresse complète formatée
code_postal Code postal
code_commune_insee Code commune INSEE
libelle_commune Nom de la commune
source Source des données (BAN)
Exemple :
cle_interop_adr: 03001_0013_00004
libelle_adresse: 4 Place des Anciens Combattants 03200 Abrest
Usage : Jointure avec votre base d'adresses via cle_interop_adr ou libelle_adresse.
4. parcelle.csv
Rôle : Parcelles cadastrales du département.
Statistiques :
- Lignes : 733 568
- Taille : 497 Mo
- Clé primaire :
parcelle_id
Colonnes :
geom_parcelle Géométrie MULTIPOLYGON de la parcelle
parcelle_id Identifiant parcelle cadastrale (ex: 03001000ZC0568)
code_departement_insee Code département
code_commune_insee Code commune
s_geom_parcelle Surface de la parcelle en m²
Format parcelle_id : CODE_COMMUNE (5) + SECTION (3) + NUMERO (4)
- Exemple :
03001000ZC0568→ commune 03001, section 000ZC, numéro 0568
Tables de relations (rel_*)
Ces tables établissent les liens many-to-many entre les entités principales.
rel_batiment_groupe_adresse.csv ⭐ (Lien BAN)
Rôle : Association entre bâtiments et adresses BAN.
Statistiques :
- Lignes : 209 054
- Taille : 34 Mo
Colonnes :
WKT Géométrie MULTILINESTRING (ligne entre bâtiment et adresse)
batiment_groupe_id Référence batiment_groupe
cle_interop_adr Référence adresse BAN
code_departement_insee Code département
classe Classe de relation (non renseigné)
lien_valide Validité du lien (1=valide)
origine Origine du lien (ex: "Association Geometrique")
Usage critique : Cette table permet de faire le pont entre vos adresses BAN et les bâtiments BDNB.
Exemple de jointure :
SELECT
bg.*,
a.libelle_adresse
FROM batiment_groupe bg
JOIN rel_batiment_groupe_adresse rel ON bg.batiment_groupe_id = rel.batiment_groupe_id
JOIN adresse a ON rel.cle_interop_adr = a.cle_interop_adr
WHERE rel.lien_valide = 1
rel_batiment_groupe_parcelle.csv
Rôle : Association entre bâtiments et parcelles cadastrales.
Statistiques :
- Lignes : 293 578
- Taille : 13 Mo
Colonnes :
batiment_groupe_id Référence batiment_groupe
parcelle_id Référence parcelle cadastrale
code_departement_insee Code département
parcelle_principale Indicateur de parcelle principale (1=oui, 0=non)
Note : Un bâtiment peut être à cheval sur plusieurs parcelles. Le flag parcelle_principale indique la parcelle principale.
rel_batiment_groupe_dpe_logement.csv
Rôle : Association entre bâtiments et DPE individuels.
Statistiques :
- Lignes : ~186 000
- Taille : 12 Mo
Colonnes :
batiment_groupe_id Référence batiment_groupe
identifiant_dpe Référence vers dpe_logement
code_departement_insee Code département
fiabilite_rattachement Qualité du rattachement
score_rattachement Score de confiance
Usage : Lier les bâtiments aux DPE détaillés de la table dpe_logement.csv.
Autres tables rel_*
| Table | Lignes | Rôle |
|---|---|---|
| rel_batiment_construction_adresse.csv | ~620k | Lien constructions ↔ adresses |
| rel_batiment_construction_rnb.csv | ~480k | Lien constructions ↔ RNB (référentiel bâtiments) |
| rel_batiment_groupe_bdtopo_bat.csv | ~464k | Lien bâtiments ↔ BDTOPO |
| rel_batiment_groupe_dvf_open.csv | ~72k | Lien bâtiments ↔ transactions DVF |
| rel_batiment_groupe_merimee.csv | ~306k | Lien bâtiments ↔ monuments historiques |
| rel_batiment_groupe_proprietaire.csv | ~21k | Lien bâtiments ↔ propriétaires |
| rel_batiment_groupe_rnc.csv | ~3,3k | Lien bâtiments ↔ copropriétés |
Tables thématiques
Données énergétiques
batiment_groupe_dpe_representatif_logement.csv ⭐
Rôle : DPE représentatif agrégé par bâtiment (le plus complet).
Statistiques :
- Lignes : 32 559
- Taille : 27 Mo
- 102 colonnes (très détaillé)
Colonnes principales :
batiment_groupe_id Référence bâtiment
identifiant_dpe ID du DPE représentatif
arrete_2021 DPE nouvelle méthode (0/1)
type_batiment_dpe maison / appartement
periode_construction_dpe Période de construction
annee_construction_dpe Année de construction
nombre_niveau_logement Nombre d'étages du logement
nombre_niveau_immeuble Nombre d'étages de l'immeuble
surface_habitable_logement Surface habitable en m²
conso_5_usages_ep_m2 Consommation énergie primaire (kWh/m²/an)
conso_5_usages_ef_m2 Consommation énergie finale (kWh/m²/an)
emission_ges_5_usages_m2 Émissions GES (kg CO2/m²/an)
classe_bilan_dpe Classe DPE (A à G)
classe_emission_ges Classe GES (A à G)
# Chauffage
type_energie_chauffage Énergie (électricité, gaz, fioul, bois, etc.)
type_generateur_chauffage Type de générateur
type_installation_chauffage individuel / collectif
# Eau chaude sanitaire (ECS)
type_energie_ecs Énergie ECS
type_generateur_ecs Type de générateur ECS
# Isolation
type_isolation_mur_exterieur ITI / ITE / non isolé
u_mur_exterieur Coefficient U des murs (W/m²K)
type_vitrage simple / double / triple vitrage
type_materiaux_menuiserie bois / pvc / métal / aluminium
type_isolation_plancher_bas Isolation du plancher
type_isolation_plancher_haut Isolation du toit
# Surfaces
surface_mur_exterieur Surface des murs en m²
surface_vitree_nord Surface vitrée nord en m²
surface_vitree_sud Surface vitrée sud en m²
surface_plancher_bas_totale Surface plancher en m²
Couverture : ~12% des bâtiments ont un DPE représentatif.
batiment_groupe_dpe_statistique_logement.csv
Rôle : Statistiques agrégées des DPE par bâtiment (plusieurs DPE moyennés).
Statistiques :
- Lignes : ~29k
- Taille : 1,9 Mo
Usage : Complète le DPE représentatif avec des moyennes statistiques.
dpe_logement.csv
Rôle : DPE individuels détaillés (1 ligne = 1 DPE).
Statistiques :
- Lignes : 69 370
- Taille : 56 Mo
- Clé primaire :
identifiant_dpe
Colonnes : Identiques à batiment_groupe_dpe_representatif_logement mais sans lien direct au bâtiment.
Usage : Récupérer tous les DPE d'un bâtiment via rel_batiment_groupe_dpe_logement.csv.
batiment_groupe_dle_elec_multimillesime.csv
Rôle : Données Locales de l'Énergie (DLE) - Électricité par année.
Statistiques :
- Lignes : ~10k
- Taille : 897 Ko
Colonnes :
batiment_groupe_id Référence bâtiment
millesime Année (2018, 2019, 2020, 2021, 2022)
nb_pdl_res Nombre de PDL résidentiels
nb_pdl_pro Nombre de PDL professionnels
nb_pdl_tot Total PDL
conso_res Consommation résidentielle (kWh/an)
conso_pro Consommation professionnelle (kWh/an)
conso_tot Consommation totale (kWh/an)
conso_res_par_pdl Consommation moyenne par PDL résidentiel
conso_pro_par_pdl Consommation moyenne par PDL professionnel
conso_tot_par_pdl Consommation moyenne par PDL
Note : Données agrégées par bâtiment et par année (5 lignes par bâtiment si données 2018-2022).
batiment_groupe_dle_gaz_multimillesime.csv
Rôle : Données Locales de l'Énergie (DLE) - Gaz par année.
Statistiques :
- Lignes : ~3k
- Taille : 287 Ko
Colonnes : Identiques à DLE électricité.
Couverture : Moins de bâtiments (gaz moins répandu que l'électricité).
batiment_groupe_dle_reseaux_multimillesime.csv
Rôle : DLE - Réseaux de chaleur/froid.
Statistiques :
- Lignes : ~30
- Taille : 3 Ko
Note : Très peu de données (réseau de chaleur peu développé dans l'Allier).
Données immobilières
batiment_groupe_dvf_open_representatif.csv ⭐
Rôle : Transactions immobilières représentatives par bâtiment (DVF = Demandes de Valeurs Foncières).
Statistiques :
- Lignes : 52 666
- Taille : 5,5 Mo
Colonnes :
batiment_groupe_id Référence bâtiment
id_opendata ID transaction DVF
valeur_fonciere Prix de vente en euros
date_mutation Date de la transaction
nb_locaux_mutee_mutation Nombre de locaux vendus
nb_maison_mutee_mutation Nombre de maisons vendues
nb_appartement_mutee_mutation Nombre d'appartements vendus
nb_dependance_mutee_mutation Nombre de dépendances vendues
nb_locaux_tertiaire_mutee_mutation Nombre de locaux tertiaires vendus
surface_bati_mutee_residencielle_individuelle Surface maisons vendues (m²)
surface_bati_mutee_residencielle_collective Surface appartements vendus (m²)
surface_bati_mutee_dependance Surface dépendances vendues (m²)
surface_bati_mutee_tertiaire Surface tertiaire vendue (m²)
surface_terrain_mutee Surface terrain vendue (m²)
nb_piece_principale Nombre de pièces principales
prix_m2_local Prix au m² du bâti (€/m²)
prix_m2_terrain Prix au m² du terrain (€/m²)
Exemple :
valeur_fonciere: 88000 €
date_mutation: 2021/02/11
nb_maison: 1
surface_bati: 86 m²
prix_m2_local: 1023 €/m²
Période : Transactions depuis 2014.
batiment_groupe_dvf_open_statistique.csv
Rôle : Statistiques DVF agrégées par bâtiment.
Statistiques :
- Lignes : ~46k
- Taille : 4,8 Mo
Usage : Moyenne des prix sur plusieurs transactions.
Données copropriété
batiment_groupe_rnc.csv ⭐
Rôle : Registre National des Copropriétés (RNC).
Statistiques :
- Lignes : 2 065
- Taille : 261 Ko
Colonnes :
batiment_groupe_id Référence bâtiment
numero_immat_principal Numéro d'immatriculation copropriété
periode_construction_max Période de construction
l_annee_construction Liste des années de construction [JSON]
nb_lot_garpark Nombre de lots garages/parkings
nb_lot_tot Nombre total de lots
nb_log Nombre de logements
nb_lot_tertiaire Nombre de lots tertiaires
l_nom_copro Liste des noms de copropriété [JSON]
l_siret Liste des SIRET syndics [JSON]
copro_dans_pvd Copropriété en plan de sauvegarde (0/1)
Exemple :
numero_immat: AH0968750
nb_log: 2
nb_lot_tot: 6
nb_lot_garpark: 0
l_nom_copro: ["25-27 rue du Vert Galant"]
Couverture : ~0,76% des bâtiments (seules les copropriétés).
Données propriétaires
proprietaire.csv
Rôle : Propriétaires personnes morales (bailleurs sociaux, entreprises, etc.).
Statistiques :
- Lignes : 9 252
- Taille : 634 Ko
Colonnes :
personne_id Identifiant propriétaire
siren SIREN de l'entreprise
code_departement_insee Code département
forme_juridique SA, SAS, SARL, etc.
denomination Nom de l'entreprise
code_postal Code postal du siège
libelle_commune Commune du siège
dans_majic_pm Présent dans MAJIC (1/0)
nb_locaux_open Nombre de locaux possédés
Exemple :
siren: 552046484
denomination: CDC HABITAT SOCIAL SOCIETE ANONYME D'HABITATIONS A LOYER MOD
forme_juridique: SA
nb_locaux_open: 1491
Note : Uniquement les personnes morales (pas les particuliers).
Données logements sociaux
batiment_groupe_rpls.csv
Rôle : Répertoire des Logements Locatifs des bailleurs Sociaux (RPLS).
Statistiques :
- Lignes : ~4,5k
- Taille : 297 Ko
Colonnes :
batiment_groupe_id Référence bâtiment
rpls_open Présence dans RPLS (1)
nb_classe_ener_a/b/c/d/e/f/g Nombre de logements par classe DPE
classe_ener_principale Classe énergétique majoritaire
nb_classe_ges_a/b/c/d/e/f/g Nombre de logements par classe GES
classe_ges_principale Classe GES majoritaire
accessible_pmr Accessible PMR (0/1)
dans_qpv Dans QPV (0/1)
l_annee_construction Années de construction [JSON]
nb_log Nombre de logements
s_log_hab Surface habitable totale (m²)
type_construction Individuel / Collectif [JSON]
Couverture : Uniquement logements sociaux (~1,7% des bâtiments).
Données géographiques et référentiels
batiment_groupe_adresse.csv ⭐
Rôle : Synthèse des adresses principales par bâtiment.
Statistiques :
- Lignes : 180 907
- Taille : 29 Mo
Colonnes :
batiment_groupe_id Référence bâtiment
cle_interop_adr_principale_ban Clé BAN de l'adresse principale
libelle_adr_principale_ban Libellé complet de l'adresse principale
nb_adresse_valid_ban Nombre d'adresses valides BAN
fiabilite_cr_adr_niv_1 Niveau 1 de fiabilité
fiabilite_cr_adr_niv_2 Niveau 2 de fiabilité
Exemple :
batiment_groupe_id: bdnb-bg-11HT-AKW6-6RW8
cle_interop_adr_principale_ban: 03300_b144_00009
libelle_adr_principale_ban: 9 Les Jeandurets Hauts 03220 Vaumas
fiabilite_cr_adr_niv_1: données croisées à l'adresse fiables
fiabilite_cr_adr_niv_2: batiment sans voisin à l'adresse
Usage : Accès rapide à l'adresse principale sans passer par rel_*.
batiment_groupe_bdtopo_bat.csv
Rôle : Données BDTOPO (IGN) sur les bâtiments.
Statistiques :
- Lignes : ~463k
- Taille : 30 Mo
Colonnes :
batiment_groupe_id Référence bâtiment
l_nature Liste des natures [JSON]: Indifférenciée, Religieux, etc.
l_usage_1 Liste des usages principaux [JSON]: Résidentiel, Commercial, etc.
l_usage_2 Liste des usages secondaires [JSON]
l_etat État [JSON]: En service, En construction, etc.
hauteur_mean Hauteur moyenne en mètres
max_hauteur Hauteur maximale en mètres
altitude_sol_mean Altitude moyenne du sol en mètres
Note : Source de référence IGN pour les hauteurs et usages.
adresse_metrique.csv
Rôle : Métrique complémentaire sur les adresses (distances, etc.).
Statistiques :
- Lignes : ~51k
- Taille : 3,5 Mo
Données environnementales et risques
batiment_groupe_argiles.csv
Rôle : Aléa retrait-gonflement des argiles (risque sécheresse).
Statistiques :
- Lignes : ~129k
- Taille : 7,8 Mo
Colonnes :
batiment_groupe_id Référence bâtiment
alea Niveau d'aléa : Faible / Moyen / Fort
Usage : Identifier les bâtiments à risque sécheresse/fissures.
batiment_groupe_radon.csv
Rôle : Aléa radon (gaz radioactif naturel).
Statistiques :
- Lignes : ~146k
- Taille : 8,8 Mo
Colonnes :
batiment_groupe_id Référence bâtiment
alea Niveau d'aléa : Faible / Moyen / Fort
batiment_groupe_qpv.csv
Rôle : Quartiers Prioritaires de la politique de la Ville (QPV).
Statistiques :
- Lignes : ~1,2k
- Taille : 73 Ko
Colonnes :
batiment_groupe_id Référence bâtiment
nom_quartier Nom du QPV
Exemple : "Coeur D'Agglo"
Données patrimoniales
batiment_groupe_merimee.csv
Rôle : Distance aux monuments historiques (base Mérimée).
Statistiques :
- Lignes : ~54k
- Taille : 3,3 Mo
Colonnes :
batiment_groupe_id Référence bâtiment
distance_batiment_historique_plus_proche Distance en mètres
nom_batiment_historique_plus_proche Nom du monument
Exemple :
distance: 334 mètres
nom: Eglise Saint-Pierre
Données équipements
batiment_groupe_bpe.csv
Rôle : Base Permanente des Équipements (BPE) - Équipements publics.
Statistiques :
- Lignes : ~2,6k
- Taille : 171 Ko
Colonnes :
batiment_groupe_id Référence bâtiment
typequ Type d'équipement (code)
Usage : Identifier écoles, mairies, hôpitaux, etc.
batiment_groupe_hthd.csv
Rôle : Très Haut Débit (fibre optique).
Statistiques :
- Lignes : ~126k
- Taille : 7,6 Mo
Colonnes :
batiment_groupe_id Référence bâtiment
nb_pdl Nombre de points de livraison fibre
l_type_pdl Types de PDL [JSON]: "PA" (Point d'Accueil), "IM" (Immeuble), etc.
l_nom_pdl Noms des PDL [JSON]
Usage : Éligibilité fibre optique.
Données construction
sitadel.csv
Rôle : Permis de construire et autorisations d'urbanisme (SITADEL).
Statistiques :
- Lignes : ~50k
- Taille : 4,1 Mo
Colonnes principales :
type_numero_dau Type et numéro du dossier (DP, PC, etc.)
date_reelle_autorisation Date d'autorisation
etat_avancement_projet Autorisé, En cours, Achevé, etc.
nature_projet extension, construction neuve, etc.
destination_principale résidentiel, non résidentiel
nb_log_tot_crees Nombre de logements créés
nb_log_demolis Nombre de logements démolis
s_hab_creee Surface habitable créée (m²)
s_hab_demolie Surface habitable démolie (m²)
type_princip_logts_crees individuel, collectif
Usage : Projets en cours et constructions récentes.
parcelle_sitadel.csv + rel_parcelle_sitadel.csv
Rôle : Lien entre parcelles cadastrales et permis de construire.
Statistiques :
- parcelle_sitadel.csv : ~29k lignes, 2,4 Mo
- rel_parcelle_sitadel.csv : ~15k lignes, 937 Ko
Autres tables thématiques
| Table | Lignes | Taille | Description |
|---|---|---|---|
| batiment_groupe_geospx.csv | ~182k | 11 Mo | Données géo-prospective |
| batiment_groupe_ffo_bat.csv | ~206k | 13 Mo | Fichiers fonciers ouverts |
| batiment_groupe_bdtopo_equ.csv | ~60 | 4 Ko | Équipements BDTOPO |
| batiment_groupe_bdtopo_zoac.csv | ~8,6k | 553 Ko | Zones d'activité BDTOPO |
| batiment_groupe_synthese_propriete_usage.csv | ~214k | 13 Mo | Synthèse propriété/usage |
| batiment_groupe_indicateur_reseau_chaud_froid.csv | ~2k | 121 Ko | Réseaux de chaleur/froid |
Schéma des relations entre tables
┌─────────────────────┐
│ batiment_groupe │ ⭐ TABLE CENTRALE
│ (271k lignes) │
└──────────┬──────────┘
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
┌───────────▼──────────┐ ┌──────────▼─────────┐ ┌──────────▼─────────┐
│ batiment_construction│ │ batiment_groupe_ │ │ rel_batiment_ │
│ (405k) │ │ adresse (181k) │ │ groupe_adresse │
└──────────────────────┘ └────────────────────┘ │ (209k) │
└──────────┬─────────┘
│
┌──────────▼─────────┐
│ adresse │ ⭐ BAN
│ (182k) │
└────────────────────┘
┌─────────────────────────┐
│ rel_batiment_groupe_ │
│ parcelle (294k) │
└───────────┬─────────────┘
│
┌───────────▼──────────┐
│ parcelle │
│ (734k) │
└──────────────────────┘
DONNÉES ÉNERGÉTIQUES DONNÉES IMMOBILIÈRES
┌──────────────────────┐ ┌──────────────────────┐
│ bg_dpe_representatif │ ⭐ │ bg_dvf_open_repr. │ ⭐
│ (32k) │ │ (53k) │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ bg_dle_elec_multi. │ │ bg_dvf_open_stat. │
│ (10k) │ │ (46k) │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ bg_dle_gaz_multi. │ │ proprietaire │
│ (3k) │ │ (9k) │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐
│ dpe_logement │
│ (69k) │
└──────────────────────┘
COPROPRIÉTÉ / SOCIAL RISQUES / ENVIRONNEMENT
┌──────────────────────┐ ┌──────────────────────┐
│ bg_rnc (2k) │ ⭐ │ bg_argiles (129k) │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ bg_rpls (4,5k) │ │ bg_radon (146k) │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐
│ bg_qpv (1,2k) │
└──────────────────────┘
GÉORÉFÉRENCEMENT PATRIMOINE / ÉQUIPEMENTS
┌──────────────────────┐ ┌──────────────────────┐
│ bg_bdtopo_bat (463k) │ │ bg_merimee (54k) │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ bg_hthd (126k) │ │ bg_bpe (2,6k) │
└──────────────────────┘ └──────────────────────┘
CONSTRUCTION / URBANISME
┌──────────────────────┐
│ sitadel (50k) │
└──────────────────────┘
Légende :
- ⭐ : Tables prioritaires
- bg_* : Préfixe "batiment_groupe"
- Toutes les tables thématiques se lient via
batiment_groupe_id
Exemples de requêtes SQL
1. Récupérer les bâtiments d'une commune avec adresses
SELECT
bg.batiment_groupe_id,
bg.code_commune_insee,
bg.libelle_commune_insee,
bg.s_geom_groupe,
bga.libelle_adr_principale_ban,
bga.cle_interop_adr_principale_ban
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE bg.code_commune_insee = '03185' -- Montluçon
ORDER BY bga.libelle_adr_principale_ban;
2. Joindre avec votre base d'adresses BAN
-- Si vous avez une table "mes_adresses" avec la colonne "ban_id"
SELECT
ma.id AS mon_adresse_id,
ma.adresse,
bg.batiment_groupe_id,
bg.s_geom_groupe,
bg.code_commune_insee
FROM mes_adresses ma
JOIN rel_batiment_groupe_adresse rel
ON ma.ban_id = rel.cle_interop_adr
JOIN batiment_groupe bg
ON rel.batiment_groupe_id = bg.batiment_groupe_id
WHERE rel.lien_valide = 1;
3. Récupérer les données énergétiques complètes
SELECT
bg.batiment_groupe_id,
bg.code_commune_insee,
bg.libelle_commune_insee,
bga.libelle_adr_principale_ban,
-- DPE représentatif
dpe.classe_bilan_dpe,
dpe.classe_emission_ges,
dpe.conso_5_usages_ep_m2,
dpe.type_energie_chauffage,
dpe.type_generateur_chauffage,
dpe.surface_habitable_logement,
dpe.nombre_niveau_immeuble,
-- DLE électricité (dernière année)
dle_elec.millesime AS millesime_elec,
dle_elec.nb_pdl_tot AS nb_compteurs_elec,
dle_elec.conso_tot AS conso_elec_kwh,
-- DLE gaz (dernière année)
dle_gaz.nb_pdl_tot AS nb_compteurs_gaz,
dle_gaz.conso_tot AS conso_gaz_kwh
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_dpe_representatif_logement dpe
ON bg.batiment_groupe_id = dpe.batiment_groupe_id
LEFT JOIN batiment_groupe_dle_elec_multimillesime dle_elec
ON bg.batiment_groupe_id = dle_elec.batiment_groupe_id
AND dle_elec.millesime = '2022'
LEFT JOIN batiment_groupe_dle_gaz_multimillesime dle_gaz
ON bg.batiment_groupe_id = dle_gaz.batiment_groupe_id
AND dle_gaz.millesime = '2022'
WHERE bg.code_commune_insee = '03185'
ORDER BY bga.libelle_adr_principale_ban;
4. Bâtiments avec copropriété (RNC)
SELECT
bg.batiment_groupe_id,
bga.libelle_adr_principale_ban,
rnc.numero_immat_principal,
rnc.nb_log AS nb_logements,
rnc.nb_lot_tot AS nb_lots_total,
rnc.nb_lot_garpark AS nb_parkings,
rnc.l_nom_copro AS noms_copro,
rnc.copro_dans_pvd AS plan_sauvegarde
FROM batiment_groupe bg
JOIN batiment_groupe_rnc rnc
ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
ORDER BY rnc.nb_log DESC;
5. Transactions immobilières récentes
SELECT
bg.batiment_groupe_id,
bga.libelle_adr_principale_ban,
dvf.valeur_fonciere,
dvf.date_mutation,
dvf.nb_maison_mutee_mutation + dvf.nb_appartement_mutee_mutation AS nb_biens_vendus,
dvf.surface_bati_mutee_residencielle_individuelle +
dvf.surface_bati_mutee_residencielle_collective AS surface_totale_m2,
dvf.prix_m2_local,
dvf.prix_m2_terrain
FROM batiment_groupe bg
JOIN batiment_groupe_dvf_open_representatif dvf
ON bg.batiment_groupe_id = dvf.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE dvf.date_mutation >= '2020-01-01'
ORDER BY dvf.date_mutation DESC;
6. Bâtiments à risque environnemental élevé
SELECT
bg.batiment_groupe_id,
bg.code_commune_insee,
bg.libelle_commune_insee,
bga.libelle_adr_principale_ban,
argile.alea AS alea_argile,
radon.alea AS alea_radon
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_argiles argile
ON bg.batiment_groupe_id = argile.batiment_groupe_id
LEFT JOIN batiment_groupe_radon radon
ON bg.batiment_groupe_id = radon.batiment_groupe_id
WHERE argile.alea = 'Fort'
OR radon.alea = 'Fort'
ORDER BY bg.code_commune_insee;
7. Logements sociaux avec DPE
SELECT
bg.batiment_groupe_id,
bga.libelle_adr_principale_ban,
rpls.nb_log AS nb_logements_sociaux,
rpls.s_log_hab AS surface_habitable_totale,
rpls.classe_ener_principale,
rpls.classe_ges_principale,
rpls.accessible_pmr,
rpls.dans_qpv,
rpls.l_annee_construction
FROM batiment_groupe bg
JOIN batiment_groupe_rpls rpls
ON bg.batiment_groupe_id = rpls.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE rpls.rpls_open = 1
ORDER BY rpls.nb_log DESC;
8. Bâtiments près d'un monument historique
SELECT
bg.batiment_groupe_id,
bga.libelle_adr_principale_ban,
merimee.distance_batiment_historique_plus_proche AS distance_m,
merimee.nom_batiment_historique_plus_proche AS monument
FROM batiment_groupe bg
JOIN batiment_groupe_merimee merimee
ON bg.batiment_groupe_id = merimee.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE merimee.distance_batiment_historique_plus_proche < 100
ORDER BY merimee.distance_batiment_historique_plus_proche;
9. Vue complète d'un bâtiment
-- Vue exhaustive d'un bâtiment avec toutes les données disponibles
SELECT
-- Identifiants
bg.batiment_groupe_id,
bg.code_commune_insee,
bg.libelle_commune_insee,
bg.code_iris,
bg.s_geom_groupe AS surface_m2,
-- Adresse
bga.libelle_adr_principale_ban,
bga.cle_interop_adr_principale_ban,
-- DPE
dpe.classe_bilan_dpe,
dpe.classe_emission_ges,
dpe.conso_5_usages_ep_m2,
dpe.type_energie_chauffage,
dpe.surface_habitable_logement,
-- DVF (dernière transaction)
dvf.valeur_fonciere,
dvf.date_mutation,
dvf.prix_m2_local,
-- RNC (si copropriété)
rnc.numero_immat_principal,
rnc.nb_log AS nb_lots_copro,
-- Risques
argile.alea AS risque_argile,
radon.alea AS risque_radon,
qpv.nom_quartier AS quartier_prioritaire,
-- Patrimoine
merimee.distance_batiment_historique_plus_proche AS distance_mh_m,
merimee.nom_batiment_historique_plus_proche AS monument_proche,
-- Fibre
hthd.nb_pdl AS nb_pdl_fibre,
-- BDTOPO
bdtopo.hauteur_mean AS hauteur_moyenne_m,
bdtopo.l_usage_1 AS usages_principaux
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_dpe_representatif_logement dpe
ON bg.batiment_groupe_id = dpe.batiment_groupe_id
LEFT JOIN batiment_groupe_dvf_open_representatif dvf
ON bg.batiment_groupe_id = dvf.batiment_groupe_id
LEFT JOIN batiment_groupe_rnc rnc
ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_argiles argile
ON bg.batiment_groupe_id = argile.batiment_groupe_id
LEFT JOIN batiment_groupe_radon radon
ON bg.batiment_groupe_id = radon.batiment_groupe_id
LEFT JOIN batiment_groupe_qpv qpv
ON bg.batiment_groupe_id = qpv.batiment_groupe_id
LEFT JOIN batiment_groupe_merimee merimee
ON bg.batiment_groupe_id = merimee.batiment_groupe_id
LEFT JOIN batiment_groupe_hthd hthd
ON bg.batiment_groupe_id = hthd.batiment_groupe_id
LEFT JOIN batiment_groupe_bdtopo_bat bdtopo
ON bg.batiment_groupe_id = bdtopo.batiment_groupe_id
WHERE bg.batiment_groupe_id = 'bdnb-bg-11HT-AKW6-6RW8';
Statistiques de couverture
| Donnée | Table | Couverture |
|---|---|---|
| Adresse BAN | batiment_groupe_adresse | 66,5% (181k/272k) |
| DPE représentatif | bg_dpe_representatif | 12,0% (32k/272k) |
| DLE électricité | bg_dle_elec | 3,7% (10k/272k) |
| DLE gaz | bg_dle_gaz | 1,1% (3k/272k) |
| DVF transactions | bg_dvf_open_repr | 19,4% (53k/272k) |
| Copropriété RNC | bg_rnc | 0,76% (2k/272k) |
| Logement social RPLS | bg_rpls | 1,7% (4,5k/272k) |
| Risque argiles | bg_argiles | 47,5% (129k/272k) |
| Risque radon | bg_radon | 53,7% (146k/272k) |
| QPV | bg_qpv | 0,44% (1,2k/272k) |
| Monuments historiques | bg_merimee | 19,9% (54k/272k) |
| Fibre HTHD | bg_hthd | 46,4% (126k/272k) |
| BDTOPO | bg_bdtopo_bat | 170,4% (463k/272k)* |
* Plus de 100% car plusieurs entrées BDTOPO par bâtiment
Notes importantes
Format des identifiants
- batiment_groupe_id :
bdnb-bg-XXXX-XXXX-XXXX(ex: bdnb-bg-11HT-AKW6-6RW8) - batiment_construction_id :
bdnb-bc-XXXX-XXXX-XXXX - parcelle_id : Format cadastral
CCCCCSSSNNNNN(C=commune, S=section, N=numéro) - cle_interop_adr : Format BAN
CCCCC_XXXX_NNNNN(C=commune, X=identifiant, N=numéro)
Géométries
- Format : WKT (Well-Known Text)
- Projection : EPSG:2154 (Lambert 93)
- Types :
POINT: AdressesMULTIPOLYGON: Bâtiments, parcellesMULTILINESTRING: Relations spatiales
Colonnes JSON (listes)
Certaines colonnes contiennent des listes au format JSON :
l_annee_construction: [ "1850", "1900" ]
l_nom_copro: [ "25-27 rue du Vert Galant" ]
l_usage_1: [ "Résidentiel", "Annexe" ]
Pour les exploiter en SQL (PostgreSQL) :
SELECT
batiment_groupe_id,
jsonb_array_elements_text(l_annee_construction::jsonb) AS annee
FROM batiment_groupe_rnc;
Cas d'usage typiques
1. Enrichir une base d'adresses avec données bâtiment
Objectif : Ajouter DPE, surface, nombre de logements à vos adresses.
Tables nécessaires :
adresse.csv(BAN)rel_batiment_groupe_adresse.csvbatiment_groupe.csvbatiment_groupe_dpe_representatif_logement.csvbatiment_groupe_rnc.csv(si copropriété)
Jointure :
mes_adresses.ban_id
→ rel_batiment_groupe_adresse.cle_interop_adr
→ batiment_groupe.batiment_groupe_id
→ données thématiques
2. Cartographie des passoires thermiques
Objectif : Identifier les bâtiments avec DPE F ou G.
Tables nécessaires :
batiment_groupe.csvbatiment_groupe_dpe_representatif_logement.csvbatiment_groupe_adresse.csv
Filtre :
WHERE dpe.classe_bilan_dpe IN ('F', 'G')
3. Analyse du marché immobilier
Objectif : Prix au m² par commune, période, type de bien.
Tables nécessaires :
batiment_groupe.csvbatiment_groupe_dvf_open_representatif.csvbatiment_groupe_dvf_open_statistique.csv
Agrégation :
SELECT
bg.code_commune_insee,
bg.libelle_commune_insee,
EXTRACT(YEAR FROM dvf.date_mutation) AS annee,
AVG(dvf.prix_m2_local) AS prix_moyen_m2,
COUNT(*) AS nb_transactions
FROM batiment_groupe bg
JOIN batiment_groupe_dvf_open_representatif dvf
ON bg.batiment_groupe_id = dvf.batiment_groupe_id
GROUP BY bg.code_commune_insee, bg.libelle_commune_insee, annee
ORDER BY annee DESC, prix_moyen_m2 DESC;
4. Audit copropriétés (loi ALUR)
Objectif : Lister les copropriétés avec nombre de lots, logements, statut.
Tables nécessaires :
batiment_groupe.csvbatiment_groupe_rnc.csvbatiment_groupe_adresse.csvbatiment_groupe_dpe_representatif_logement.csv(optionnel)
Champs clés :
numero_immat_principal: Immatriculation copropriéténb_log: Nombre de logementsnb_lot_tot: Nombre total de lotscopro_dans_pvd: Plan de sauvegarde
5. Détection bâtiments énergivores
Objectif : Identifier les bâtiments avec forte consommation énergétique.
Tables nécessaires :
batiment_groupe.csvbatiment_groupe_dle_elec_multimillesime.csvbatiment_groupe_dle_gaz_multimillesime.csvbatiment_groupe_rnc.csv(pour nb_log)
Calcul :
SELECT
bg.batiment_groupe_id,
bga.libelle_adr_principale_ban,
rnc.nb_log,
(COALESCE(elec.conso_tot, 0) + COALESCE(gaz.conso_tot, 0)) AS conso_totale_kwh,
(COALESCE(elec.conso_tot, 0) + COALESCE(gaz.conso_tot, 0)) / NULLIF(rnc.nb_log, 0) AS conso_par_logement
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_rnc rnc ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_dle_elec_multimillesime elec
ON bg.batiment_groupe_id = elec.batiment_groupe_id AND elec.millesime = '2022'
LEFT JOIN batiment_groupe_dle_gaz_multimillesime gaz
ON bg.batiment_groupe_id = gaz.batiment_groupe_id AND gaz.millesime = '2022'
WHERE rnc.nb_log > 0
ORDER BY conso_par_logement DESC;
Ressources et documentation officielle
- Site BDNB : https://www.data.gouv.fr/fr/datasets/bdnb/
- Documentation CSTB : https://doc-bdnb.cstb.fr/
- API BDNB : https://api.bdnb.io/
- Base Adresse Nationale (BAN) : https://adresse.data.gouv.fr/
- DVF (Demandes Valeurs Foncières) : https://www.data.gouv.fr/fr/datasets/dvf/
Fichiers CSVT
Les fichiers .csvt définissent les types de colonnes pour les outils SIG (QGIS, ArcGIS) :
String: TexteReal: Nombre décimalInteger: Nombre entierDate: Date
Exemple batiment_groupe.csvt :
String,String,String,Real,String,String,String,String,Integer
Fichiers PRJ
Les fichiers .prj définissent le système de projection (EPSG:2154 - Lambert 93).
Conclusion
La BDNB est une base de données extrêmement riche permettant de croiser :
- Géolocalisation (adresses BAN, géométries)
- Énergie (DPE, DLE, consommations)
- Immobilier (transactions DVF, prix au m²)
- Propriété (copropriétés RNC, propriétaires, logements sociaux)
- Risques (argiles, radon, monuments historiques)
- Équipements (fibre, équipements publics)
Tables prioritaires pour débuter :
batiment_groupe.csv(table centrale)adresse.csv(référentiel BAN)rel_batiment_groupe_adresse.csv(lien bâtiments ↔ adresses)batiment_groupe_dpe_representatif_logement.csv(données énergétiques)batiment_groupe_rnc.csv(copropriétés et nombre de logements)
Clé de jointure universelle : batiment_groupe_id
Conseil : Commencez par importer ces 5 tables dans votre base de données, puis ajoutez progressivement les tables thématiques selon vos besoins.