News about the BIMserver.org initiative

Elasstic project started

(updated after name change of project)

This week the EU co-funded research project “ELASSTIC” started. The overall objective of the ELASSTIC project is to improve the safety, security and resilience of large scale multifunctional building complexes to natural and man-made disasters by providing a methodology and tools which enable to include security and resilience from the early design and planning phase of such projects. BIM is an important part of the project, and BIMserver solutions are explicitly mentioned in the description of work. The project duration is 36 months.
Elasstic
In short BIMserver solutions are used as a BIM data store with event driven connections to simulation models. This fits our vision with BIMSie and we are very happy to have the opportunity to work with valuable partners like Siemens, Arcadis, Fraunhofer, Schüßler-Plan, Incode, North by Northwest and JA architects.

The projects can be split into a couple of cornerstones: BIM, Building Management systems (BMS), real time monitoring system (sensors), and Simulation models viewing results in a Multi Criteria Analyses (MCA) dashboard. An overview of the relation between these topics is shown in the overview picture.

BuildingSMART Denmark forum

We did an online keynote presentation yesterday during the BuildingSMART Denmark forum in Kopenhagen. The 15 minute presentation was recorded and is online. Have a look:

Thank you very much Jan Karlshøj for the invitation.

An overview of our favorite plugins

As you know BIMserver is a plugin oriented framework. Even the import/export serializers are plugins in the framework. Most of the ‘default’ stuff like merging, query and compare are also. We deliver some simple example plugins for these features to show how the frameworks could work. It is up to developers to fine-tune and tweak them to their needs. BIMserver also has ‘Render engine’ plugins. We see rendering geometry not as a BIMserver feature, but we provide an empty plugin space for external render engines.
Now some of you might wonder why stuff seems to work although some plugin spaces are ‘empty’. That is because we ship some external plugins standard with the BIMserver build. This blogpost gives a short overview.

The most famous external plugin for BIMserver is the ‘COBie’ plugin. It is mostly created by Chris Bogen from USACE. It gives import and export functions for COBie to BIMserver. Since COBie is a modelview of IFC the plugin basically maps COBie to IFC and back. Thanks Chris for a great job!

Then there is the most infamous plugin BimQL. BimQL is the open BIM Query Language created by Wiet Mazairac. He used BIMserver during the development along the way created a plugin to use BimQL in BIMserver. It is now a standard part of BIMserver, but still a plugin.

Also very unknown is the CityGML serializer. There are actually two of them. One we created ourselves back in 2009 for the GeoBIM initiative (creating a CityGML ADE extension for BIM). That was very experimental and we decided not to invest in that anymore. It is still out there for the ones who want to take up on it. Another CityGML serializer was made by Joran Jessurun from Eindhoven University of Technology. This one was made as a proof of concept in one of their projects and a course.

By now you are probably wondering how the Boolean operations and tessellation are done for CityGML (and some other serializers like Collada, and the WebGL output for BIM Surfer). That is indeed also a plugin. We call it ‘render engine’ and we ship two of those: The IFC Engine from TNO (update: now owned by RDF) and the open source IfcOpenShell from Thomas Krijnen. Thomas created this render engine based on opencascade in just a couple of days. He is finetuning it every since and creating other plugins for Blender and 3D Studio Max along the way. We are helping Thomas to get IfcOpenShell stable enough to make it the default render engine for BIMserver.

So that was an overview of some of our favorite external plugins. Do you have a plugin for BIMserver that we missed? Let us know!

License issues

Lately we get a lot of questions regarding the license of BIMserver. In this post we hope to clarify some of the questions. The BIMserver software is licensed under the GNU Affero General Public License version 3. The GNU Affero GPL is a modified version of the ordinary GNU GPL version 3. It has one added requirement: if you run the program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the program that it’s running. If what’s running there is your modified version of the program, the server’s users must get the source code as you modified it. We have to note that the BIMserver package you download is a combination of many different open source projects. The database that we ship with BIMserver by default is the BerkeleyDB from Oracle. But we also use Jetty, EMF, jQuery, ANTLR, log4j, and many, many more. Most of them have several different licenses.

Free
A common discussion surrounding open source software, is the word ‘free’. In our case we refer to the GNU text: “free software” means software that respects users’ freedom and community. Roughly, the users have the freedom to run, copy, distribute, study, change and improve the software. With these freedoms, the users (both individually and collectively) control the program and what it does for them. Thus, “free software” is a matter of liberty, not price. There are examples of open source software that you have to pay for to get it. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”. When talking about free software, it is best to avoid using terms like “give away” or “for free,” because those terms imply that the issue is about price, not freedom. There are several commercial software developers building plugins for BIMserver that are ‘free’ but not ‘for free’. This gives developers an option to make some money on selling plugins. In the WordPress ecosystem this is a common practice that many developers use to make a living.

GUIs, ObjectIDMs, modelcheckers, (de)Serializers and other plugins:
BIMserver is an open framework that uses several types of plugins. Derivatives of BIMserver code inherit the Affero GPL license. There is some legal grey area regarding what is considered a derivative work, but we feel strongly that all plugins (GUI’s, ObjectIDMs, modelcheckers, (de)Serializers, etc) are derivative work and thus inherit the Affero license. If you disagree, you might want to consider a different (open or closed source) project. We suggest some at http://opensourcebim.org/

Commercial development
In our philosophy and mission we stated that we want to be an open, reliable and stable platform for other developers to build on. That means we want to stimulate all developers to use BIMserver for their benefit. All developers… so not only open source developers. To help developers to interact and connect with a BIMserver we created several client libraries. We believe that lowering the threshold to use BIMserver included publishing libraries in as many different languages as possible. At this moment we publish a Java client, a PHP client and a Javascript client.

bimserver 1.2  project overview

BIMserver 1.2 project overview

 

All these clients are licensed under a different open source license: GNU Lesser General Public License. This license allows developers to use the library in proprietary software without the need to open source any of their own software. We feel it is a fundamental part of our mission to publish the libraries under this license to allow innovation in the industry.
Another way we lower the threshold is to give developers lots of possible ways to connect to BIMserver. There are multiple API interfaces to connect to BIMserver. At this moment SOAP (several versions), ProtocolBuffers and JSON are all stable options. WSDL files and other schema files are included in every BIMserver. Furthermore the interface of BIMserver is very well documented and the documentation is built into every BIMserver your download. Just type /admin/console.html at the end of the BIMserver URL you are running and you will have an extensive dashboard of the interface, including examples and debug options.

BIMserver API console

BIMserver API documentation console

We think the possibilities to use the open source BIMserver platform as a commercial developer are very broad. When your software tools interacts with BIMserver software through that API the license does not affect your work in any way. A good way to check if you are interacting or integrating with BIMserver software is to run a BIMserver and your own tool in a separate process (maybe even on a separate server). When you are in doubt, it’s always smart to contact us (via license@bimserver.org). Our experience learns that some people that are scared about the license issues, don’t have to be because of our open API interface solution.

First release candidate version 1.2

bimserver logoWe have launched the first release candidate of the 1.2 version of the BIMserver platform. It is available on our development website at Google code.

Some of the new features include the ability to add non-IFC data to the database. Users can now add ‘extended data’ to revisions and projects. Not all data can be added. This is controlled by the server administrator. Every BIMserver administrator has to authorize data schemas first so users, or external services can add extended data according to an authorised schema.

As beta-testers already saw, there is a new plugin type called ‘query plugin’. Wiet Mazairac created a plugin for the open BIM Query Language (BimQL.org) which is included in the BIMserver build. We also added an ‘internal service’ plugin that lowers the threshold for developers to build custom BIMservers for a specific feature. The clash-detection feature is now an internal plugin that will trigger on every ‘new revision’.

A big change we are very enthusiastic about, is the ability to subscribe (link) to external services. External services are webservices that run on a separate server (could be closed source) that handle a specific feature. At this moment there are services that do clash-detection (and return a BCF file); make a 2D HTML floorplan; do logging (for KPI project analyses); and there is even an external service that sends out an e-mail to all project members when there is a BCF returned from a clash-detection service. An external service can be triggered at a ‘new revision‘ and ‘new extended data’. In the future these triggerpoints will include all BIMserver log actions (like new user, new project, user added to project, etc) and we are working on data specific changes triggers (trigger only when doors are changed, or when a specific object with GUID is changes). In practice BIMserver sends out a notification to the external service and includes a token for authorization and authentication. Users can edit the subscription to external services and give out very specific tokens and authorizations. A list of external services will be hosted on our new plugin directory extend.bimserver.org. The list is dynamically loaded from any running BIMserver so it will be up-to-date all the time.
At this moment only a few external services are on the list, but many are in the making. The BIMserver team will not make any external services, but encourages developers to do so. The interface between BIMserver and the services is build according to the open standard BIMSie. This means that external services can also interact with each other and are not specifically build for bimserver.org. This way the BIMserver team tries to innovate the industry and stimulates actual working in a federated web service environment (in contrast to spending marketing budget to use the word ‘cloud’ as many times as possible).

The biggest change that end-users will notice is that there is no GUI included anymore. Any BIMserver that starts will get a configuration screen (to create an administrator, add smtp server, the usual stuff that was already in 1.1), but after that it will show the BIMserver logo with the status indicator ‘running’. This is a big change for all of us, but specially for end-users, that simply cannot use BIMserver out of the box. Yet we feel this is a necessary step we have to take. As our loyal followers know, BIMserver is an open platform to use and build on top. The GUI was always a reference implementation of ‘how a GUI could look like’. We always stimulated developers to build specific GUIs. Guys like BIM Surfer and bimsync did, but we hope more will follow. To accelerate the development of several different GUIs we decided to remove the one we made. With the 1.2RC1 release we invite developers to build as many new GUIs as you like. We think we made it a bit easier by adding a JSON protocol to the rich Service Interface. This might lower the threshold for Javascript developers to make a really cool looking GUI for BIMserver.

Wrapping up the 1.2 release of BIMserver is even more focused on positioning BIMserver as an open and stable platform for others to build on. BIMserver is becoming a platform more and more, and less a product ready for end-users. This is also why the 1.2 RC1 has two developer libraries in the download section.

We feel BIMserver has made some huge steps again. This time taking some risky decisions on the GUI part, but on the other hand innovating the industry again with the introduction of a staggering concept to easily link federated BIM services. This blogpost is an open invitation to all developers to reap the fruits and create your own product build on top of our platform.

Building Information Model Service Interface Exchange

 The bimserver.org team and our core partners TNO and Eindhoven University of Technology are closely involved in the new BIMSie standardization initiative from BuildingSMART. Together with software vendors and research partners from all over the world we are working on a “Building Information Model Service Interface Exchange”-standard. A first version is in review by the core team at this moment. Bimserver.org is now creating a prototype showing some new opportunities that will be possible thanks to this standardization initiative. The demo will be shown at the US Building Innovation Conference in January 2013. We hope to see you there.

 

Find a bug, get a mug!

As you might have noticed, work at BIMserver has not stopped. At the moment we have a strong focus on stability and support. To grow a community around BIMserver we like to launch a “Find a bug, get a mug!”-campaign. The deal is simple: when you find a bug, post a question on the support forum. When it really is a bug, we will fix it and send you a genuine BIMserver mug. We are starting this campaign to fix bugs and increase stability of BIMserver.  This campaign is not new, but we have new mugs that are more beautiful than the previous ones (and so far we only send out 5 mugs for minor bugs that were found).

By the way… you don’t have to find a bug to get a mug. Any help in fulfilling our goal is worth a mug. Join our philosophy and help make the world a better place!

Release 1.1.0 final is public

Today the BIMserver.org team is proud to announce that the final release of BIMserver 1.1.0 is public.

Open infrastructure:
After the previous release we expressed our intention to transform the BIMserver software from one big chunk of code, to a flexible cohesion of core modules and plugins. By doing this, we are lowering the threshold for people to create extensions, plugins and custom builds. In other words:  creating a stable, flexible, open infrastructure that everybody can use as a strong base to build something on top. We believe this is important for BIMserver to be able to grow into a movement that will be much bigger than just a couple of programmers.

Credits:
Because of the involvement of great developers and advanced users during the last couple of months, we are proud to have a BIMserver build with several external plugins. Many thanks and credits go to Chris Bogen (USACE) for their COBie plugin and Thomas Krijnen for the IfcOpenShell render engine plugin. Also many thanks to Catenda for intensely testing the framework. We hope your bimsync application will be a success! We are very thankful for the effort and are convinced it has made today’s release much more stable and reliable. Thanks to Rehno Lindeque for creating a connection between his Open Source WebGL Viewer (bimsurfer.org) and BIMserver. Many more developers are creating plugins that will be released for public (hopefully) very soon. We can’t say too much about it today, but we’ll keep you informed via this website. Finally a warm ‘thank you’ to all people that took the time to test or evaluate the BIMserver software and inform us about issues on http://support.BIMserver.org

We had a great year with lots of great talks with prominent people in the world of (open)BIM. We feel a growing interest for the BIMserver.org project and hope the 1.1.0 release will accelerate the use and appreciation of BIMserver.org.

New features:
Although the new, visible features for end-users are not jumping towards you from the screen…. there are some nice ones we would like to note:

  • The storing of incoming files: even when IFC files are corrupt (or for some other reason not stored in the database) the server manager can always obtain the original uploaded file.
  • Visualization is gone: we removed visualization from BIMserver. We think a server should be a server and not a visualization tool. We are teaming up with bimsurfer.org for visualization. Other visualization tools might also join our team in the future.
  • Internal performance updates: we’ve improved a great deal of memory usage in this release.
  • Caching of downloads: Both revision and queries  are now cached on server after the first download. This means any additional download (by any user) will have very fast retrieval . This speeds things up quite a bit in a multiuser environment where several people need to download a merged model or revision to their own computer.
  • Progress bar: lots have asked for it, now it’s there… a progress bar during checkin and download.

Some more technical new features for the people who love nerd-talk:

  • Ignore files renamed to ‘objectIDM’  and are now part of the plug-in structure (to be able to link them dynamically to serializers).
  • Ability to choose renderEngine and objectIDM for a (de)serializer. Default BIMserver is shipped with the TNO IFC Engine Series Library (closed source as a plugin) and open source IfcOpenShell. It’s up to you which one you use.
  • More server settings.
  • Low level calls: We’ve added ‘add’, ‘edit’, ‘delete’ calls in IFC objects through the BIMserver service interface. This allows every application to edit the IFC data without upload/download of a file.
  • Setup page after first startup: No default admin and password anymore. Just choose your own after first startup.
  • Database migrations: In the future, new versions of bimserver will update the database to the new structure (beta).
  • Enable and disable external plugins.
  • More info of your running server and improved logging
  • New protocol buffer interface: In addition to SOAP and REST interface, we now support Protocol Buffers. This is a major step towards real-time (streaming) communication with clients.
  • Client Libraries: Allows developers to ‘talk’ to the API of BIMserver very easy and gives access to the cool BIMserver stuff for their own application (both server-, as client-side).
  • Improved API, including technical documentation: on http://wiki.bimserver.org and JavaDoc of the interface API.
  • Notifications: subscribe your client to notifications on your server. BIMserver events will be published to a special protocol. We even created a ‘Satellite server’ example framework to demonstrate the power of this concept.

A full list of new features, enhancements and bugfixes (the release notes) can be found on our development site: http://dev.bimserver.org/

Download:
There are several builds. If you are looking for the ‘old fashioned one-click-and-it-runs-JAR-file’ you should download “bimserver-including_GUI-1.1.0-final.jar”. This is renamed because it is now a combination of the BIMserver and the GUI Interface (the HTML you get on the screen). When you use the BIMserver with GUI, please note that we do not support all webbrowsers. We test on Chrome (for multiple reasons) and know that Firefox and Safari also work pretty good. We do NOT support users with MS InternetExplorer so please do not use IE with BIMserver.

We also supply a WebArchive build, and both a Jar and WAR of BIMserver without the GUI. Examples of the Satellite server, libraries and other downloads are all available on http://download.bimserver.org  

Installation and setup instruction can be found in a screencast: http://www.youtube.com/watch?v=e6CjPuDknlc. Please note that the license of most of BIMserver has changed from GNU GPL v3 to GNU Affero GPL v3. More info on http://www.bimserver.org/license/

Philosophy:
On every new release people ask us why we do this… We even get question what your hidden business model is and how we rip off people without them noticing. None of this is true. Read our ‘Philosophy’ and guiding principles on http://bimserver.org/about/philosophy/ to understand us a bit more.

Future:
We have great plans for the future. We really believe we are at the edge of implementing a mayor change of how the industry uses BIM. If you understand and acknowledge our guiding principles, and want to team up with us, send us your plans and (broadest possible) motivation to contact@bimserver.org.

 

Third release candidate for 1.1.0

bimserver logo Today we are proud to release the 3rd 1.1.0 release candidate for BIMserver.org. Some new bugs, found by the community, are fixed. This release also has the ‘clash detection’ feature working again (although it will be obsolete after 1.1.0 final). This version has a major update for the ObjectIDM configurations and is tested intensely in a multiuser environment. Please read the full 1.1.0 release notes in our previous blogpost.

Download the 1.1.0-RC3 on download.bimserver.org or on our development site dev.bimserver.org.

Update on 1.1.0: Second release candidate

 After the first release candidate from last week, we’ve got some feedback from you. Thank you very much for that! Thanks to your testing efforts we can now release a second candidate for the 1.1.0 version.

Some bugs were fixed, and the Collada/KML export has improved. There are still issues with the clashdetection but we are working to fix those as soon as possible. Please read the full 1.1.0 release notes in our previous blogpost.

Download the 1.1.0-RC2 on download.bimserver.org or on our development site dev.bimserver.org.