BCF Reader Update

This post is long overdue, but I finally take the time to update my BCF Reader.


First of all, I have tested it on a larger set of BCF files, and I hope these will make it more robust, especially if something is wrong within the BCF file. My experiences include files coming from Tekla BIMSight, Matteo Cominetti’s BCFier and Kubus BIM Collab.

I have to remove the support for Word 97-2003 Documents (*.doc), since the library I use does not support them. I will see how I can integrate them back in a future release.

Among the change, I add a small progress bar to allow you to pour yourself a coffee when dealing with huge quantities of notes.

I also add Status and Verbal Status to the report, just after the date. A more subtle change, the default path to save your report is now the same than the BCF file itself.

I improve the Readme file to include a small explanation on how to use the BCF Reader.

I spotted some problems with styles in the Word template. To be sure to have all of them available in the BCF Reader, you must write a few lines in your Word template, apply your styles to them, then delete them. This will ensure that you have created these styles in your Word template before using it.

Finally, I want to thank Julien Benoit and François Lahouste for their comments and their files.

As usual, you can download the BCF Reader here, and check the code here.

Rooms to BCF

I am a huge fan of Tekla BIMSight. It’s powerfull, it’s free and very user-friendly. But like with many other project review solutions, I have difficulties to locate myself in the building while spinning around the 3D model.

It become even more tedious when you have to find a specific room in the model. There is no convenient way to retrieve its by a name or its number or zoom on it quickly.

A solution is to sort the Tekla BIMSight objects browser by Level and by Name to display every room in the model. You can then select a room and start create your clipping planes around it. This is not user-friendly. Furthermore, I haven’t always the luxury of working with IFC.

Object Browser

This is why I create a small application for creating a BCF note for every room of a building. This Revit plug-in save the location, the dimension and the name of all rooms to a BCF file.


When opening this file in Tekla BIMSight, we see every room neatly sorted by level in the Notes tab.


As you select one of these notes, Tekla BIMSight zoom on the selected room, and create nice clipping planes around it.

In Tekla

To do so, I am using XbimBCF, a great library for reading and writing BCF files. I just have to adapt it a bit since Tekla BIMSight does not support yet the second version of the BCF format.

This application is now more a proof a concept than an actual solution, but I will try to find the time to clean and share the code.

The BCF concept appears more and more appealing as I work with it. This format allow to develop small utilities like this one very quickly, and will be very useful for many tasks involving project review.

BFC Reader

I was talking on my previous post about creating a report from a Open BIM Collaboration Format. This format can be exported from Tekla BIMSight.

I am using the Open BIM Collaboration Format on a daily basis for taking notes during coordination meetings. I am using Tekla BIMSight to create these notes, but any model review solution could do the trick, as long as you can export BCF files from it.

These notes are quite useful for addressing coordination problems, but cannot be seen outside a model.

After the proof of concept I presented to you on my last post, I finally took the time to build a packaged application in order to create a Microsoft Word document from a BCF report.

BCF Reader

Aside from minor technical problems, I was most concerned by the possibilities to edit the style of the report before creating it, and avoid the tedious task to clean it up in Word after.

I finally selected a solution mixing Word template and styles. All you have to do after selecting you BCF report is to load a Word template. The application will automatically retrieve all styles in it, and you will be able to select them for each part of your report.
These parts are described in the picture below, where every information embedded in the BCF note is written down on the report.


You can then save your report in a new word document.

The application can be downloaded here, under the MIT licence.

The entire source code is also available on Bitbucket, feel free to use it for your own project.

Creating a report from a BCF file

I was talking on a previous post about BIMsight and the possibility to export its notes in the BCF format.

This BIM Collaboration Format (BCF) is a common development by Tekla and Solibri to create a standard for exchanging comments between building models. This format can accelerate dataflow during project review by exchanging only comments without having to rely upon the same format and large data exchange through Internet.

The BCF format is currently supported by Tekla Structures, Tekla BIMsight, ArchiCAD, Kubus BCF Manager, Solibri, Elvis, Kymdata’s CADS Planner softwares, DDS-CAD Viewer and DDS-CAD MEP. There is also plug-ins for Revit and Navisworks.

I am using Tekla BIMSight on a daily basis as an advanced BIM notebook. Every problem is addressed during the daily coordination meeting, and documented using notes in Tekla BIMSight.


But for documentation purpose, I also need a paper-based report, quite old fashioned, but handy when you have to work with people without Tekla BIMSight.

I created a little standalone program for converting BCF files to Word reports. These BCF files are created from my notes in Tekla BIMSight.

A BCF file is actually a compressed file, where every note is stored in its own folder, named with the note GUID:


In each of these folder, there is three files:


The markup.bcf file stores all metadata about the note: Its date, its title, its author, its various comment along with their dates, and so on. This is the main source of information for my daily coordination report.

snapshot.png is the first image associated with the note, and an essential part of my report too.

Finally, the viewpoint.bcfv store information about the position of the camera used to capture the snapshot. Since the very point of my report is to work outside the model, I won’t use it here.

I use the XSD Schema provided by Building Smart to create my C# classes and serialize the markup.bcf file.

To write down this report, I use the great DocX library to create a Word 2010 file.

With this little program, I create automatically a nice Word report from my coordination notes, and can share my comments with everyone who does not have Tekla BIMSight.


Use Navisworks Batch Utility to convert Revit files

A few days ago, I had to convert a large set of Revit files to NWC in order to create a general Navisworks File Set.

I used the Navisworks Batch Utility, accessible through the Navisworks main menu :


Batch Utility

You first have to select files to be included in your Navisworks File Set.

To quickly retrieve the list of Revit files to be converted, I’m using the Windows Command Prompt. I was quite afraid of this tool not so long ago, but it is actually pretty simple.

Windows Command Prompt

First, go to the root folder of your project:

cd C:\Projects\myRevitProject

and type :

dir /s /b *.rvt >ListRevitFiles.txt

This line requires a bit of an explanation:

  • dir : command for searching and displaying file in the current directory
  • /s : search in the current directory and all its subdirectories
  • /b (or bare) : remove for each file its metadata to display only the file path
  • *.rvt : search specifically for Revit files
  • >ListRevitFiles.txt : the ‘>’ character allows us to output the result of our research to a text file (here ListRevitFiles.txt) instead of displaying it.

We get the results of our research as text file listing paths to every Revit model contained in our project folder:


Back on the Navisworks Batch Utility, we open this text file to import file paths: File -> Open -> Select ListRevitFiles.txt

File List

As we want to create a single Navisworks File Set (.nwf), we select the “As Single File” Tab, and set the path to our future Navisworks File.

As Single File

I also select “View file on output” to automatically start Navisworks when conversions are done.

We add a path to a log file in order to know what may happen, and hit “Run Command”.

Here, I was confused by the fact that nothing seems to happen, but after checking my computer processes, I was able to see that the Navisworks Scene Convert Server was up and running.

Windows Processes

After a while, Navisworks starts automatically and appends every previously created .nwc file to a new Navisworks File Set.


I am also using this feature to create a NWD file for a set of Revit file.

To do so, you just have to select the “Multiple file” tab and define a target folder for the export.

As Multiple Files

The Navisworks Batch Utility will convert every Revit file to a NWC cache file, and made it a NWD on the run.


Drawings in Navisworks

One of the main complain I heard from Navisworks is to only be able to see a 3D view of the model and not the drawings created from it. It is why I use Design Review to review drawings produced within Revit.

On the other hand, Design Review is generally not powerful enough to display large 3D models, and in this case, Navisworks has to be used.

I recently discover a solution for combining the best of these two applications by integrating DWF files in Navisworks.

To showcase this function, I create a new Navisworks model and append a Revit model in it.


To be able to see sheets produced within the Revit model, I export them in a new DWF file from Revit:


This DWF file can be loaded into Navisworks through the Broject Browser menu. Just hit the Import Sheets & Models button to load the content of this DWF file. We can see its sheets displayed in the Project Browser window:


After a right-click -> Prepare All Sheets/Models, we can display these drawings in Navisworks just like in Design Review:


Every element in these views is selectable, and its properties are displayed as well.

An interesting feature is the ability to select an element and display it in another view. Just select the element, right-click and hit Find Item in Other Sheets and Models. Navisworks display every views were we can find the selected element.


This feature present in Revit was missing in Design Review and allows for a quick review of elements from the drawings to the 3D view. On the other hand, some markup tools present in Design Review are not available in Navisworks, and we don’t have the ability to import these markup back in Revit.

Tekla BIMsight

As a regular user of Autodesk product, I am using Navisworks as my main coordination and project review software.

But recently, one of my client ask for BIMSight, a solution developed by Tekla for the project coordination. If I have already try it, I have never had the opportunity to implement it on project scale. I can now share my first impression on this solution.


One of the main advantage of Tekla BIMSight is its price. Since it can be downloaded freely on the Tekla website, it can be given to anyone working on the project without bothering about licence fee. Furthermore, it is largely user-friendly, and can be used by anyone, even without a training phase.

It provide all main functionalities of a good project review software, like models compilation, project review and annotation, clash detection…

Possibilities for input format are pretty limited, since it can only import DWG and IFC files, but these formats are enough for most situations.

Tekla BIMSIght provide pretty good clash detection features, with most of the usual fonctionnalites : clash statuses, tagging, sorting and grouping, and so on.

The presentation of the clash result are also pretty good, but there is no function to export a clash report in PDF or HTML as we have in Navisworks, for example.

There is set of tools for creating notes that save a viewpoint in the model. Once done, you can add comments and markups on this view or link objects to this viewpoint. BIMsight provide also the ability for different users to respond to comments and keep an history of these responses.


One of the most interesting part of these notes is the possibility to export them in the BCF format, in order to be able to import them in another software. This functionnality can be really powerfull, and I will describe it more precisely in a future post.

Finally, I am quite impress by BIMSight. Tekla manage to provide a fully functional model review solution without even make us pay for it, which is pretty remarkable is this market.

Parts Management in Digital Project

Because of its industrial origins, Digital Project give all its power in pieces-oriented construction project where the building can be divided in a bunch of small parts easily manageable one by one. One of my current project is the design of a set of precast concrete pieces for a stone-covered looking facade.

We have something like 2000 unique pieces of glass fiber reinforced concrete to organize, model and design. We use Digital Project for modeling these pieces, insert them in a global model for coordination purpose and extract their production drawings.

Following the production of these pieces, from the basic design to the creation of shop drawings, requires a little more investment than the usual Excel data-sheet and highlights the need for new production follow-up tools.

First, all pieces references are stored in a SQL database linked to various Excel data-sheets for visualization purpose.

These pieces are organized in a global .CATProduct, used for coordination and visualization. The main .CATProduct  datatree is regularly parsed with an .NET routine in order to check its coherence with the production records.

All .CATPart and .CATProduct are stored on a Subversion server where we can retrieve the whole editing history for each piece and cross-check it with our production records.
While reading the CATIA tree, I came through a lot of errors, mostly solved by cleaning the incriminated CATPart. After some research, it appears than the CATDUA function for checking and cleaning CATPart cannot be accessed through the CATIA API. Instead, I used the CATDUA V5 Batch utility with an hand-made configuration xml file in order to have only specific CATPart cleaned.

All data retrieved from our production records, the CATIA data tree and the SVN log are sorted and summarized to create a sound overview of our production.

These tools used here made us realise the need for a global and standardized way to follow the progress of BIM deliverable. Autodesk’s purchase of Glue and Vela System to create a global cloud-based solution along with the creation of GTeam by Gehry Technology seems to be the beginning of this new trend of product.

4D planning

A 4D construction, or planning simulation, include everything referring to the integration of time-related data directly into a 3D building model.

One of the most broadly used functionality of this kind of model is to present the main planning. A 4D model is always a great communication tool to present the construction schedule. Clients love these animations in which they can see their future building growing. You might have seen the procedure for building the new Chernobyl cover made by Vinci  and Bouygues :

But to me, the most interesting and realistic feature of a 4D model is the analysis of specifically tricky parts of the building. Define formworks rotation and positioning in intricate areas is commonly realized with time-based clashes detection, in order to optimize casting of complex shapes. A 4D planning can also be used for creating virtual mockups of complex building system (façade elements for example) and simulate their construction procedure.

There are a lot of talks around the concept of 4D BIM these days. All project managers crave for precise schedules and quantities estimations, and linking construction planning tasks with building model objects seems the best way to achieve it.

But, with regards to my experience in the matter, carry out a trully usefull 4D model can be very challenging. Make a movie from your roughly defined 4D model is pretty easy, but divide your model cleverly enough in order to link each element to its task in the general planning can be really painful.

I am used to the TimeLiner tool in Navisworks to create a dynamic 4D model for presentation purposes. If a property like a task code is already defined in Revit, the procedure is quite easy; you just have to import your Gantt diagram from Microsoft Project and your model from Revit in Navisworks; then automatically link them together using this task code. If no properties are defined, linking objects to tasks has to be done manually, and it is a long and pretty boring process.

Navisworks Optimization

Since I have been using Navisworks for clash detection, I have tried to find out how to optimize my results, in order to avoid sorting manually thousands of irrelevant clashes, and export a proper final report.

First of all, the model itself seems to be the most important part for clash detection. Modeling all openings in structural elements in order to avoid sorting all meaningless intersections with MEP features is a major prerequisite. But there are many other best practices for modeling in order to make the clash reviewing process easier, such as defining precise modeling rules for structural elements connections (joints between beams and columns, or intersections between columns and slabs).

But still, even with the most carefully designed model, you will probably still have a lot of clashes to sort.

This is when a good workflow for the whole team is important. Some plug-ins, like the Navisworks Keyboard Shortcuts found on BIM Manager, can be very useful at this point. For our part, we used to make a first sort by ourselves, eliminating obviously irrelevant clashes and roughly grouping other ones by location, then transfer to the coordination team for review.

This is when a good clash report is needed, along with the model. The standard html report extract from Navisworks was missing some information, mostly about plan location, and we were asking for an Excel format, so we developed a VB.Net application to exploit results from Navisworks.

We first parse the .xml report in order to extract main information about clashes, such as names, coordinates, trades involved and so on, and then paste them in a formatted Excel template. We also add the Navisworks screenshot.

Using the coordinates of the main 2D grid lines, we are able to automatically identify the localization of the clash, in order to find it easily on the 2D shop drawings if necessary.

With this report and the .nwd “snapshot” of the model, the coordination team was able to work efficiently on these clashes, especially for intricate parts of the building where 2D drawings are almost useless.

I still have to run tests on the 2013 version of Navisworks which integrate 2D grids directly on the model, hoping this will improve our process.