> For the complete documentation index, see [llms.txt](https://rnb-fr.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rnb-fr.gitbook.io/documentation/guides/obtenir-des-attributs-metier-a-partir-dun-id-rnb.md).

# Obtenir des attributs métier à partir d'un ID-RNB

Vous venez de [récupérer](https://rnb-fr.gitbook.io/documentation/api-et-outils/api-batiments/identification-de-batiment) [les](https://rnb-fr.gitbook.io/documentation/api-et-outils/api-batiments/listing-de-batiments) [identifiants](https://rnb-fr.gitbook.io/documentation/exemples/selecteur-de-batiments) RNB (ID-RNB) de vos bâtiments et vous souhaitez maintenant [enrichir votre base](https://rnb.beta.gouv.fr/outils-services/rapprochement) de nouveaux attributs.

La [Base de Données Nationale des Bâtiments](https://bdnb.io/) (BDNB) contient [des centaines d'attributs métiers](https://bdnb.io/schema/latest/index.html) et est disponible grâce à l'API mise à disposition par le CSTB.

**L'API de la BDNB permet d'accéder à ces attributs métiers** [**à partir d'un identifiant de bâtiment RNB**](https://api-portail.bdnb.io/catalog/api/f4905edc-db58-3a3b-a8e5-c5dfc6692ee5/doc?page=39ca1b93-4d44-449a-8a1b-934d44e49af9#vous-cherchez-des-donn%C3%A9es-sur-des-b%C3%A2timents-dans-une-zone)**.**&#x20;

Voici un exemple de script Python permettant d'accéder à quelques informations comme la date de construction, le risque lié aux sols argileux ou les diagnostics de performance énergétique.

{% code fullWidth="true" %}

```python
import requests


def fetch(rnb_id: str):

    print(f'RNB id : {rnb_id}')

    # Tout d'abord, nous devons récupérer l'attribut batiment_groupe_id pour accéder aux données de la BDNB
    # Par construction, la granularité de la BDNB est le groupe de bâtiments plutôt que le bâtiment seul
    print('-----------------------------------')
    print("Récupération de l'identifiant batiment_groupe_id ...")
    params = {
        'select': 'batiment_groupe_id',
        'limit': 1,
        'rnb_id': f"eq.{rnb_id}"
    }
    r = requests.get(f'https://api.bdnb.io/v1/bdnb/donnees/batiment_construction', params=params)

    data = r.json()
    batiment_groupe_id = data[0]['batiment_groupe_id']
    print(f"batiment_groupe_id : {batiment_groupe_id}")

    # Nous allons maintenant chercher des données métiers sur ce groupe de bâtiments
    print('-----------------------------------')
    print('Récupération des données BDNB ...')

    # Année de construction et matériau des murs
    data = fetch_bdnb_table('batiment_groupe_ffo_bat', batiment_groupe_id)
    print(f"Année de construction : {data[0]["annee_construction"]}")
    print(f"Matériau des murs : {data[0]["mat_mur_txt"]}")

    # Risque de retrait/gonflement des argiles
    data = fetch_bdnb_table('batiment_groupe_argiles', batiment_groupe_id)
    print(f"Risque de retrait/gonflement des argiles : {data[0]["alea"]}")

    # Infos des diagnostics de performance énergétique
    data = fetch_bdnb_table('rel_batiment_groupe_dpe_logement_complet', batiment_groupe_id)
    print(f"Type de chauffage : {data[0]["type_generateur_chauffage"]}")
    print(f"Classe DPE : {data[0]["classe_bilan_dpe"]}")
    print(f"Classe émission GES : {data[0]["classe_emission_ges"]}")


def fetch_bdnb_table(table: str, batiment_groupe_id: str):
    r = requests.get(f'https://api.bdnb.io/v1/bdnb/donnees/{table}',
                     params={'limit': 1,
                             'batiment_groupe_id': f'eq.{batiment_groupe_id}'})

    return r.json()


if __name__ == '__main__':
    fetch("CMM632DPY3PS")
```

{% endcode %}

Ci-dessous, le résultat de l’exécution du script pour l'ID-RNB [CMM632DPY3PS](https://rnb.beta.gouv.fr/carte?q=CMM632DPY3PS):

```
RNB id : CMM632DPY3PS
-----------------------------------
Récupération de l'identifiant batiment_groupe_id ...
batiment_groupe_id : bdnb-bg-XQPC-BTTB-F6ET
-----------------------------------
Récupération des données BDNB ...
Année de construction : 2014
Matériau des murs : BRIQUES
Risque de retrait/gonflement des argiles : Fort
Type de chauffage : pac eau/eau
Classe DPE : A
Classe émission GES : A
```

### Pour aller plus loin :&#x20;

* Récupérez les identifiants RNB de vos bâtiments grâce à notre [endpoint de listing](https://rnb-fr.gitbook.io/documentation/api-et-outils/api-batiments/listing-de-batiments), notre [endpoint d'identification](https://rnb-fr.gitbook.io/documentation/api-et-outils/api-batiments/identification-de-batiment) ou en ajoutant [un sélecteur de bâtiment](https://rnb-fr.gitbook.io/documentation/exemples/selecteur-de-batiments) à vos outils
* Consulter [l'ensemble des attributs disponibles dans la BDNB](https://bdnb.io/schema/latest/index.html)
