📖 DOCUMENTATION DE RECHERCHE

Classification Aveugle
des Pièces BIM

Deviner la fonction de chaque pièce d'un bâtiment — sans jamais lire les noms Revit. Uniquement par géométrie et topologie de graphe.

99.4%
Accuracy P1
94.8%
Accuracy P2
12
Types de pièces
0
Dépendances
Méthodologie → Voir le pipeline

Le principe aveugle

Le classifieur n'utilise que des features observables — des données qui ne nécessitent pas de connaître la réponse pour être calculées.

🏗️ Structurel

Qui est connecté à qui ? Quelle centralité dans le graphe ? Le réseau de portes et murs encode la fonction.

→ Passes 0 et 0.5

📐 Géométrique

Quelle surface ? Combien de fenêtres ? Quel ratio de séparateurs ? Les mesures physiques discriminent les types.

→ Passe 1

🏠 Contextuel

L'appartement a-t-il une cuisine ? Un WC ? La composition globale contraint les possibilités.

→ Passes 2, 3, 4
🔒
Immutabilité — Les pièces classées avec confiance 1.0 (Passes 0 et 0.5) sont verrouillées via la propriété is_locked (confiance 1.0). Aucune passe ultérieure ne peut les modifier. Résultat : 0 faux positif sur 875 pièces.

Le pipeline de classification

7 passes successives, du plus certain au plus contextuel. La confiance décroît à mesure que l'incertitude augmente.

Les 16 features utilisées

Chaque feature est calculable sans connaître le type de la pièce. C'est le fondement du principe aveugle.

FeatureSourceTypes discriminés
areaGéométrie (segments)Tous — seuils : 1.5, 3.2, 8.5, 15, 25, 50 m²
sidePropriété Revitext→extérieur (R1), int→séjour (R3)
sep_ratioSegments WL vs SEPgarden ≥0.7, terrace ≥0.55, kitchen ≥0.28, corridor ≥0.05
num_windowsArêtes WindowR3 (≥1), R4 (≥1), R8 (≤1)
num_doorsArêtes Connected→DRR2 (≤1), R4 (≥1)
glazing_ratiototal_window_width / areaséjour ≥0.23 vs chambre ≤0.20 (R3)
wl_countSegments WLstorage =5, laundry =6
has_placardNom famille portebedroom 76%, entrance 65%
has_adjacentArêtes Adjacentgarden (toujours), bedroom (jamais)
total_connConnected + Adjacentcorridor ≥2 (R6)
betweennessSous-graphe aptentrance (max), sanitaires =0.000
closenessSous-graphe aptSélection du palier (v7.1)
degreeSous-graphe aptScore centralité 3b
eigenvectorSous-graphe aptScore centralité 3b
levelGéométrieRDC→garden/terrace, étage→balcony (R1)
cluster_labelClustering v2Contexte apt (Passes 3, 4)

Les 12 types de pièces

Chaque type a des propriétés géométriques et topologiques distinctes.

Chambre Séjour Cuisine SDB WC Entrée Couloir Placard Buanderie Balcon Terrasse Jardin
📊
Données de référence — Les sanitaires (WC, SDB, placard, buanderie) ont une betweenness de 0.000 dans le sous-graphe de l'appartement. L'entrée a la centralité la plus élevée (degree 0.436, btw 0.331, eigen 0.548).

Utilisation

Python ≥ 3.10, aucune dépendance externe.

🖥️ Interface web (recommandé)

$ python classify_launcher.py
🔬 Spatial Graph Classifier — http://localhost:8500

⌨️ Ligne de commande

$ python src/export_viewer.py data/spatial_graph_P1.json
# → output/spatial_graph_P1_viewer.html
$ python src/_baseline.py
accuracy_P1: 97.7
accuracy_P2: 93.4

Pages du guide