Torna al blog BIM e IFC
Consegna e ISO 19650 · 2026-10-01 · 10 min
BCF 2.1 vs 3.0: perché i viewpoint delle tue issue si aprono nel posto sbagliato
Il BCF dovrebbe far sopravvivere una issue al passaggio tra strumenti. In pratica la camera finisce sottoterra, il box di sezione sparisce e le etichette si perdono. Le cause sono poche, specifiche e risolvibili, e conoscerle ti dice di quali strumenti fidarti.
BCF 2.1 vs 3.0: perché i viewpoint delle tue issue si aprono nel posto sbagliato — IFC Viewer Online article cover
Il BCF —BIM Collaboration Format— ha un solo compito: far uscire una issue da uno strumento e farla arrivare in un altro con il contesto intatto. Un commento, una posizione della camera, un insieme di elementi selezionati, magari un box di sezione. Apri la issue ovunque e vedi esattamente ciò che vedeva il suo autore.
Chi ha scambiato BCF tra tre fornitori sa quanto spesso fallisce. La camera si apre sottoterra, o puntata verso il cielo. Il box di sezione manca. Le etichette sono sparite. I commenti vengono troncati alla prima «&». Niente di tutto questo è un mistero, e tutto deriva da una manciata di errori di implementazione specifici.
Cosa c'è davvero dentro un .bcfzip
Un file BCF è uno zip. Dentro, una cartella per topic, ognuna con un markup.bcf (il topic, i suoi commenti e l'elenco dei viewpoint), uno o più file di viewpoint .bcfv (camera, selezione, visibilità, piani di taglio) e snapshot PNG facoltativi. È tutto XML semplice. Puoi decomprimerne uno e leggerlo, e quando uno strumento si comporta male dovresti farlo.
issues.bcfzip
├── bcf.version
├── 1f2c…/
│ ├── markup.bcf ← topic, comments, viewpoint references
│ ├── viewpoint.bcfv ← camera, components, clipping planes
│ └── snapshot.png
└── 7a90…/
└── …
2.1 contro 3.0: le differenze che rompono le importazioni
La stessa issue in BCF 2.1 e 3.0. Commenti, viewpoint ed etichette passano dentro il Topic e in contenitori.
| Aspetto | BCF 2.1 | BCF 3.0 |
|---|
| Commenti nel markup.bcf | Fratelli di <Topic> | Annidati in <Topic><Comments> |
| Elenco dei viewpoint | Fratelli di <Topic> | Annidati in <Topic><Viewpoints> |
| Etichette | Elementi <Labels> ripetuti, uno per etichetta | Un contenitore <Labels> con figli <Label> |
| Camera prospettica | Posizione, direzione, vettore up, campo visivo | Lo stesso, più un AspectRatio obbligatorio |
| Valori ammessi | Impliciti, concordati fuori dal file | Dichiarati nelle estensioni di progetto |
| Supporto reale | Quasi universale | In crescita, disomogeneo |
Il modello dati è cambiato poco; la struttura XML sì. Un parser scritto per un formato legge l'altro come un topic senza commenti.
Leggi quella tabella come un elenco di modalità di guasto. Uno strumento che cerca i commenti accanto al Topic non ne trova in un file 3.0. Uno strumento che si aspetta un contenitore Labels legge un file 2.1 come se avesse un'etichetta, o nessuna. Una camera 3.0 senza AspectRatio non è valida secondo lo schema, e alcuni importatori rifiutano l'intero viewpoint.
Perché la camera finisce nel posto sbagliato
IFC è Z in alto, three.js è Y in alto. Senza conversione la camera arriva ruotata di 90°; senza offset, arriva nel posto sbagliato.
Le camere BCF sono salvate nelle coordinate mondo del progetto IFC: metri, con Z verso l'alto. La maggior parte dei visualizzatori web renderizza con three.js, la cui scena ha Y verso l'alto, e molti spostano il modello verso l'origine perché le grandi coordinate georeferenziate non tremolino sulla GPU. Sono entrambe scelte di rendering sensate. Vanno entrambe annullate prima di scrivere un viewpoint.
- Dimentica la conversione degli assi e la camera arriva ruotata di 90°: guarda il cielo o attraversa il pavimento.
- Dimentica lo spostamento di visualizzazione e la camera arriva con l'orientamento giusto, a centinaia di metri o chilometri dal modello.
- Converti la camera ma non i piani di taglio, e la vista è giusta mentre il box di sezione taglia da tutt'altra parte.
Il problema dello spostamento peggiora quanto migliore è la tua georeferenziazione, perché le coordinate reali sono numeri grandi. Il contesto è in coordinate e georeferenziazione IFC.
Un test di dieci minuti per qualsiasi strumento BCF
- Crea una issue con dentro tutto Una camera prospettica con un'angolazione obliqua, due elementi selezionati, un box di sezione, tre etichette e un commento con una «&», virgolette e una lettera accentata.
- Esportala come 2.1 e come 3.0 Se lo strumento scrive una sola versione, annotalo: prima o poi incontrerai un destinatario che ha bisogno dell'altra.
- Importala in un secondo strumento Controlla l'orientamento della camera, la distanza dal modello, la selezione, il box di sezione, il numero di etichette e il testo del commento carattere per carattere.
- Fai andata e ritorno Esporta di nuovo dal secondo strumento e reimporta nel primo. Ciò che sopravvive a un passaggio ma non a due finirà per costarti una riunione.
Il nostro esportatore BCF è stato riscritto proprio dopo questo test: i viewpoint ora vengono scritti negli assi mondo IFC senza lo spostamento di visualizzazione, i piani di sezione viaggiano con il viewpoint, le etichette 2.1 sono scritte come elementi ripetuti e i commenti importati vengono letti per intero, con le entità XML decodificate. Scrive sia 2.1 sia 3.0, così puoi adattarti al destinatario.
Convenzioni perché i BCF vengano gestiti
- Un topic per causa, non per elemento. Quattrocento muri senza un property set sono un topic con un viewpoint rappresentativo.
- Metti la regola o il requisito nel titolo. «Manca Pset_WallCommon.FireRating — aggiungere al template di esportazione» è risolvibile; «dati mancanti» no.
- Etichetta per revisione. Un topic aperto sulla revisione 6 deve dirlo, così un confronto successivo non lo solleva due volte.
- Includi sempre lo snapshot. È ciò che il destinatario vede nella casella di posta prima di aprire qualsiasi strumento, e spesso è l'unica parte che guarda.
Dove si colloca il BCF nel pacchetto di consegna completo —accanto al report di validazione e alla lettera di trasmissione— è spiegato in cosa consegnare insieme a un modello IFC. Aprire topic automaticamente da un confronto tra revisioni è in come confrontare due versioni IFC.
BCF 2.1 vs 3.0: perché i viewpoint delle tue issue si aprono nel posto sbagliato