Retour au blog BIM & IFC
Livraison & ISO 19650 · 2026-10-01 · 10 min
BCF 2.1 ou 3.0 : pourquoi vos points de vue s'ouvrent au mauvais endroit
Le BCF est censé faire survivre un sujet au passage d'un outil à l'autre. En pratique, la caméra atterrit sous terre, la boîte de coupe disparaît et les étiquettes sont perdues. Les causes sont peu nombreuses, précises et corrigibles — et les connaître vous dit à quels outils faire confiance.
BCF 2.1 ou 3.0 : pourquoi vos points de vue s'ouvrent au mauvais endroit — IFC Viewer Online article cover
Le BCF — BIM Collaboration Format — n'a qu'un rôle : permettre à un sujet de quitter un outil et d'arriver dans un autre avec son contexte intact. Un commentaire, une position de caméra, un ensemble d'éléments sélectionnés, peut-être une boîte de coupe. Ouvrez le sujet n'importe où et vous voyez exactement ce que voyait son auteur.
Quiconque a échangé du BCF entre trois éditeurs sait à quel point cela échoue souvent. La caméra s'ouvre sous terre, ou pointée vers le ciel. La boîte de coupe manque. Les étiquettes ont disparu. Les commentaires sont tronqués à la première esperluette. Rien de tout cela n'est mystérieux, et tout vient d'une poignée d'erreurs d'implémentation précises.
Ce que contient réellement un .bcfzip
Un fichier BCF est un zip. À l'intérieur, un dossier par sujet, chacun contenant un markup.bcf (le sujet, ses commentaires et sa liste de points de vue), un ou plusieurs fichiers de point de vue .bcfv (caméra, sélection, visibilité, plans de coupe) et des captures PNG facultatives. Tout est en XML brut. Vous pouvez en décompresser un et le lire, et quand un outil se comporte mal, vous devriez le faire.
issues.bcfzip
├── bcf.version
├── 1f2c…/
│ ├── markup.bcf ← topic, comments, viewpoint references
│ ├── viewpoint.bcfv ← camera, components, clipping planes
│ └── snapshot.png
└── 7a90…/
└── …
2.1 contre 3.0 : les différences qui cassent les imports
Le même sujet en BCF 2.1 et 3.0. Commentaires, points de vue et étiquettes passent dans le Topic et dans des conteneurs.
| Aspect | BCF 2.1 | BCF 3.0 |
|---|
| Commentaires dans markup.bcf | Frères de <Topic> | Imbriqués dans <Topic><Comments> |
| Liste des points de vue | Frères de <Topic> | Imbriqués dans <Topic><Viewpoints> |
| Étiquettes | Éléments <Labels> répétés, un par étiquette | Un conteneur <Labels> avec des enfants <Label> |
| Caméra perspective | Position, direction, vecteur haut, champ de vision | Idem, plus un AspectRatio obligatoire |
| Valeurs autorisées | Implicites, convenues hors fichier | Déclarées dans les extensions de projet |
| Prise en charge réelle | Quasi universelle | En progression, inégale |
Le modèle de données a à peine changé ; la structure XML, si. Un analyseur écrit pour une structure lit l'autre comme un sujet sans commentaires.
Lisez ce tableau comme une liste de modes de défaillance. Un outil qui cherche les commentaires à côté du Topic n'en trouve aucun dans un fichier 3.0. Un outil qui attend un conteneur Labels lit un fichier 2.1 comme n'ayant qu'une étiquette, voire aucune. Une caméra 3.0 sans AspectRatio est invalide selon le schéma, et certains importateurs rejettent tout le point de vue.
Pourquoi la caméra atterrit au mauvais endroit
L'IFC est Z vers le haut, three.js Y vers le haut. Sans conversion la caméra arrive pivotée de 90° ; sans décalage, au mauvais endroit.
Les caméras BCF sont stockées dans les coordonnées monde du projet IFC : en mètres, Z vers le haut. La plupart des visionneuses web font le rendu avec three.js, dont la scène a Y vers le haut, et beaucoup décalent le modèle vers l'origine pour que les grandes coordonnées géoréférencées ne tremblent pas sur le GPU. Ce sont deux choix de rendu sensés. Il faut les annuler tous les deux avant d'écrire un point de vue.
- Oubliez la conversion d'axes et la caméra arrive pivotée de 90° — regardant le ciel ou traversant le plancher.
- Oubliez le décalage d'affichage et la caméra arrive dans la bonne orientation, à des centaines de mètres ou des kilomètres du modèle.
- Convertissez la caméra mais pas les plans de coupe, et la vue est juste tandis que la boîte de coupe tranche tout à fait ailleurs.
Le problème de décalage s'aggrave à mesure que votre géoréférencement s'améliore, car les coordonnées réelles sont de grands nombres. Le contexte est dans coordonnées et géoréférencement IFC.
Un test de dix minutes pour n'importe quel outil BCF
- Créez un sujet qui contient tout Une caméra perspective en vue oblique, deux éléments sélectionnés, une boîte de coupe, trois étiquettes et un commentaire contenant une esperluette, des guillemets et un caractère accentué.
- Exportez-le en 2.1 et en 3.0 Si l'outil n'écrit qu'une version, notez-le : vous finirez par rencontrer un destinataire qui a besoin de l'autre.
- Importez-le dans un second outil Vérifiez l'orientation de la caméra, la distance au modèle, la sélection, la boîte de coupe, le nombre d'étiquettes et le texte du commentaire caractère par caractère.
- Faites l'aller-retour Exportez de nouveau depuis le second outil et réimportez dans le premier. Tout ce qui survit à un saut mais pas à deux finira par vous coûter une réunion.
Notre propre exportateur BCF a été réécrit après exactement ce test : les points de vue sont désormais écrits dans les axes monde de l'IFC, sans le décalage d'affichage, les plans de coupe voyagent avec le point de vue, les étiquettes 2.1 sont écrites comme éléments répétés et les commentaires importés sont lus en entier, entités XML décodées. Il écrit en 2.1 comme en 3.0, pour s'adapter au destinataire.
Les conventions qui font traiter les BCF
- Un sujet par cause, pas par élément. Quatre cents murs sans property set, c'est un sujet avec un point de vue représentatif.
- Mettez la règle ou l'exigence dans le titre. « Pset_WallCommon.FireRating manquant — ajouter au modèle d'export » est actionnable ; « données manquantes » ne l'est pas.
- Étiquetez par révision. Un sujet soulevé sur la révision 6 doit le dire, pour qu'une comparaison ultérieure ne le soulève pas deux fois.
- Joignez toujours la capture. C'est ce que le destinataire voit dans sa boîte de réception avant d'ouvrir un outil, et c'est souvent la seule partie qu'il regarde.
La place du BCF dans le dossier de livraison complet — à côté du rapport de validation et du bordereau d'envoi — est traitée dans ce qu'il faut livrer avec un modèle IFC. Créer automatiquement des sujets à partir d'une comparaison de révisions est expliqué dans comment comparer deux versions IFC.
BCF 2.1 ou 3.0 : pourquoi vos points de vue s'ouvrent au mauvais endroit