BIM Collaboration Format (BCF)

From Wiki.OSArch

This page is unfinished. Feel free to help the project by sharing your knowledge about this subject.

BuildingSMART-Logo 64x64.png This page is related to BuildingSMART International. All articles in the OSArch wiki related to buildingSMART can be seen in the BuildingSMART International Category

The BIM Collaboration Format (BCF) is a technology by buildingSMART international to allow different BIM applications to communicate model-based issues with each other. Examples of issues may be model coordination problems, RFIs, or model clashes. As an open format, it allows many users to identify model problems in a variety of tools, bypassing proprietary formats and workflows. BCF specifies the metadata to be stored with each issue, as well as the rules on how the metadata may be edited and transferred. It is similar to a standardisation on how "bugtrackers" work in the software industry. The official terminology used for a model issue in BCF is called a "topic". A collection of BCF topics are stored in a BCF project.

BCF is may be used together with Industry Foundation Classes (IFC) models that have been previously shared among project collaborators. However, although BCF contains metadata to aid in linking to aspects of an IFC model, BCF may be used with any model, including proprietary ones. Each BCF topic may include camera viewpoints of the relevant model problem, to allow the user to investigate the issue. It is also possible to use BCF without any 3D model at all, simply sharing topics with only image snapshots.

The current stable version of BCF is version 2.1. A future version 3 is currently being drafted.

The official BCF standard is hosted on these pages:

BCF information may be transferred to other users in two ways. The BCF-XML specification allows users to transfer files with the .bcf extension to import and export a BCF project from different software. The BCF-API specification instead allows users software to connect directly to a BCF server to retrieve and update data in the BCF project.

Free Software with support for BIM Collaboration Format includes BCFier, OpenProject, BIMData, BlenderBIM Add-on and the BCF-Plugin-FreeCAD to FreeCAD. For developers, IfcOpenShell contains a BCF module in Python, intended to supersede bcfplugin, which was originally a fork of the FreeCAD BCF implementation with FreeCAD's GUI code removed. There is also a variety of commercial products with multi user server integration, some of them with free limited versions.

BCF Specification[edit]

The BCF specification is relatively straightforward. A brief summary is provided here. The top level data container is known as the BCF project, with a UUID and a project name attribute.

The BCF project contains zero or more topics. Each topic represents a model issue. A topic will have a UUID, a title, description, priority, stage, labels (similar to tags), creation date / author, due date, and assigned to. If modified, it may contain the modification date and author.

A topic may also contain viewpoints, comments, related files, related links, and a "BIM snippet". Viewpoints store camera angles and visibility settings of element, including 3D annotations in the view. Comments represent a flat sequence of comments by different authors. Related files are similar to the concept of a file attachment, but usually refer to which 3D models are relevant to the topic. A "BIM snippet" is intended to hold a small excerpt of arbitrary data, such as a JSON file. No specification is made on how to interpret this data.


The BCF-XML specification describes how to transfer BCF project data by storing it in a file with the extension .bcf. This file is a zipped folder containing XML files and other related or attached files, like screenshot images.


The BCF-API specification describes how to transfer BCF project data by making REST HTTP calls to a central server. The BCF-API specification only describes client behaviour, and does not describe how the server implementation works. However, it does cover user authorisation.

OSarch Resources[edit]

External Resources[edit]