Biker
ANMA.tab/Modeler.panel/BikeR.pushbutton
À maintenir Loukas Delevaux 588 lignes
aujourd'hui
Qualité du code
84/100
Documentation 100%
Robustesse 100%
Structure 100%
Conventions 36%
Diagnostics (1 warning)
Couplage pyRevit (1 import) — dépendance au framework, à découpler pour la portabilité PYREVIT_COUPLING
Interface WPF construite en code, sans fichier .xaml WPF_NO_XAML
🖥 WPF sans .xaml 30 fonctions 2 classes
Nesting: 2 ✓ 10 try/except ✓ Transaction 21 commentaires
(3.6%)
Dépendances
pyRevit
pyrevit
Revit API
Autodesk.Revit.DBAutodesk.Revit.DB.ArchitectureAutodesk.Revit.UIAutodesk.Revit.UI.Selection
.NET / CLR
System.IOSystem.WindowsSystem.Windows.ControlsSystem.Windows.Markupclr
Code local (projet)
BikeEngine
Python (stdlib)
mathos
Description
Version = 0.11
Date = 10.06.2026
__________________________________________________________
Description:
Générateur de parkings vélo dans une pièce.
Implante des emplacements de stationnement vélo sous forme d'empreintes 2D
(régions remplies / lignes de détail) dans la vue plan active, aux dimensions
du Décret 2022-930 / Arrêté du 30 juin 2022.
Le pavage est calé sur l'orientation réelle de la pièce (insensible à la
rotation du projet), avec des systèmes réels (râtelier, arceaux, longitudinal,
double étage), plusieurs types de vélo (standard, VAE, cargo) et un mode de
mélange (optimisation ou répartition manuelle).
__________________________________________________________
Procédure:
-> Se placer dans une vue en plan
-> Sélectionner une pièce
-> Dans la fenêtre unique : choisir les systèmes, les types de vélo, le mode de
mélange, la représentation, et la catégorie de bâtiment (objectif affiché en
direct), puis cliquer sur « Générer »
-> Le script remplit la pièce et trace les empreintes 2D différenciées
-> Un rapport compare la capacité générée à l'objectif réglementaire
__________________________________________________________
Mise à jour:
- [09.06.2026] - 0.1 Initialisation (brique lib/BikeEngine)
- [09.06.2026] - 0.2 Interface unique (WPF), mélange, symboles vélos
- [09.06.2026] - 0.3 Pavage en repère réel (rotation), presets systèmes avec
contraintes, types de vélo, mix optim/manuel, représentation
différenciée
- [10.06.2026] - 0.4 Vélos collés au mur (face int. + marge 0), poteaux internes
contournés (obstacles), décomposition rectangulaire des
pièces en L/T (optimisation par sous-zones), test de
chevauchement exact (SAT), connectivité des accès par les
allées (carve minimal, remplace le couloir dédié)
- [10.06.2026] - 0.5 Validation de l'allée de desserte par emprise (recul réel
sur pièces en L) ; connectivité des accès avec largeur de
passage garantie.
- [10.06.2026] - 0.6 Couloir de connectivité à largeur exacte (fenêtres
géométriques, grille 0,15 m) et carve minimal garanti
(réinsertion gloutonne).
- [10.06.2026] - 0.7 Debug visuel de la connectivité (grille, couloir, carve,
réinsertions) activable par checkbox dans l'interface.
- [10.06.2026] - 0.8 Optimisation du pavage : placement par glissement (les
créneaux se ré-ancrent après un mur oblique / une porte /
un poteau au lieu d'être perdus), bandes vides non
consommées (sondage de profondeur), empilement des bandes
ancré des deux côtés (8 combinaisons), décomposition L/T
poursuivie après un rectangle trop fin, choix de la
variante APRÈS le carve de connectivité, cache
IsPointInRoom.
- [10.06.2026] - 0.9 Connectivité : le couloir part du CENTRE de la porte (nœud
décalé de 0,15 m vers l'intérieur au lieu de 0,60 m),
l'ancre est cherchée DROIT devant la porte (marche
perpendiculaire) puis par anneaux au plus proche, et le
chemin Dijkstra est départagé par la longueur (couloir
droit, sans déport latéral). Debug : marqueur magenta au
centre de chaque porte + amorce vers l'ancre.
- [10.06.2026] - 0.10 Mélange réel de systèmes (mode optimisation) : choix du
système BANDE PAR BANDE sur la capacité réellement posée
(un système dense sur les grandes travées, longitudinal sur
les bandes résiduelles peu profondes), avec hystérésis pour
grouper les emprises d'un même système. Les candidats
mono-système restent évalués : le mélange n'est retenu que
s'il AUGMENTE la capacité (jamais en-dessous du meilleur
système pur).
- [10.06.2026] - 0.11 Circulation de PREMIER RANG : le couloir reliant les accès
est réservé AVANT le pavage (plus court chemin sur pièce
vide, tronçons mutualisés), de largeur exacte, et le pavage
se cale autour (keep-out en repère local). Comparé à
l'approche carve a posteriori, on garde la meilleure
capacité (à égalité : couloir réservé, 0 rack amputé). Le
carve restant est itéré au point fixe (connectivité 1,20 m
réellement garantie). Le couloir réservé est tracé (bleu).
__________________________________________________________
Author: Loukas Delevaux
Métadonnées
Explication détaillée
✨
Analyse IA
Générée à la demande par Workers AI en lisant le code source. Mise en cache jusqu'au prochain commit sur ce fichier.