Ruben de Laat edited this page Feb 23, 2018 · 8 revisions

Welcome to the BIM-Bot-services wiki!

Some parts of this page have been moved from


BIM is getting more popular and the amount of applications is ever increasing. A lot of applications could benefit from being able to communicate with each other. Because there are a many different data structures (such as IFC, BCF etc...) that can contain BIM data, a very simple and generic protocol has been developed, described in this document.

All communication is based on notifications.


  • A: Application that will be sending the notifications, examples:
    • A new revision is uploaded on a BIMserver, this BIMserver sends a notification
    • A user uses a Revit plugin to send a model to a service to check for specific requirements
  • B: Application that will be receiving the notifications (and returns data), in this document also called a "Service Provider", examples:
    • A BIMserver receives a notification via HTTP that contains an IFC file, this IFC file is stored, geometry is generated, and the results of one of the internal services is sent back (and also stored)
    • A PHP website receives a notification that contains a BCF-file. It stores the BCF on disk, unzips it, extracts and stores the images and other content and puts the rest in a database.


A should be allowed to initiate HTTP(S) connections to all instances of B that it wishes to communicate with.

B should be allowed to connect to over HTTP(S), and it should be running a basic web server

The OpenSource BIMserver can be configured for both roles. When configured to be role A, it will send notifications when new revisions are checked-in to projects. When configured as B, it will be able to receive notifications, run services and then send back the results (it can also optionally store the model+results).

Build your own "Client" (A)

A special page has been made for that:

Build your own "Service Provider" (B)

A special page has been made for that:

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.