Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Welcome to the BIM-Bot-services wiki!
Some parts of this page have been moved from https://github.com/opensourceBIM/BIMserver/wiki/External-services
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.
- HTTP is used for the transportation of data (https://www.w3.org/Protocols/rfc2616/rfc2616.txt)
- JSON is used to describe structured data, where possible. In a few cases data can only be transmitted via HTTP GET parameters or HTTP headers.
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 special page has been made for that: https://github.com/opensourceBIM/BIM-Bot-services/wiki/Building-a-client-application
Build your own "Service Provider" (
A special page has been made for that: https://github.com/opensourceBIM/BIM-Bot-services/wiki/Building-a-service-provider