Release cycle for 1.3.0 started

We just started our new release cycle for 1.3.0. We hope it will be a shorter cycle than the last time, but really can’t promise anything…. At this moment our RC1 is on google code but we intend to move released to github as soon as possible (update: we are now on github with 1.3.0 release)

As you can see on the closed issues a lot of work has been done. The main work was on improving memory use, plugin stability and stability. We also did a lot of work on the BIMSie concept of ‘remote services’. The main new  feature  in 1.3.0 is that we now have the option to generate geometry during checkin. This geometry calculation hás to be done by an IFC rendering plugin. At BIMserver we still want to focus on the server part, nog on the geometry stuff. After calculation, the geometry is  stored (as tessellated triangles) in the bimserver database with the original IFC object. This makes it easy for developers to retrieve IFC object information and geometry from the BIMserver framework. In the previous versions of BIMserver geometry calculation had to be done be the serializers. They could use the IFC rendering plugins, but it had to be done every time a call was made to the server. From now on you have the option to only do it once during checkin and have very fast reliable respons during use. At this moment there are two geometry calculation plugins available in BIMServer: the closed source IFC Engine from RDF, and the open source IfcOpenShell from Thomas Krijnen.

 

BIMserver isn’t BIMserver anymore: 5 years of quality focused BIM innovation

revision In October 2008 we started to build a ‘simple BIMserver’. Everybody told us it was impossible to store IFC in a central database and have multiple AEC project partners connect ‘live’  to that database. But nobody could tell us why that was impossible. In the margin of a research project about Augmented Reality, we decided to do some experiments to find out what the fuzz was all about. We found that indeed due to the nature of IFC (a network structure) it was very difficult, but with lots of creativity and intelligent programmers we managed to have a proof of concept at the end of 2008.

And then something strange happened. We actually published it under an open source license to share the knowledge. Something very ‘undone’ in our industry. We anticipated this would stir up things in the BIM world, but we couldn’t imagine it would have such a huge impact as it has today, almost 5 years later.

Lot’s of things happened in these 5 years and because we had the luxury not to have the requirement to make a profit with BIMserver, we could focus on the quality of the software. Our goal always was, and still is to help others make a profit with BIMserver. Today, BIMserver is seen as a solid start for others to build on. And many others take the benefit of the strong foundation that BIMserver is. There are many people that make a living with BIMserver ‘under the hood’ of their software.

We started with the idea that BIMserver would be the central point of contact of all AEC partners. Thanks to good research and feedback from the industry we now know that working with aspect models and federated data is much more effective. Somewhere along the way BIMserver transformed into a plugin driven framework with lots of other developers hooking in. It is not a surprise that we joined the open source BIM collective to make a strong fist for innovative BIM solutions.  At the moment we feel the good times for open source BIM and BIMserver are yet to come. We have a strong believe in the federated BIM concept and the BIMSie standard. More and more commercial spin offs are starting and we thing we are at the verge of a new business model for BIM and BIM software. We are very excited and look forward to a bright future for the AEC industry!

Moved to github

We’ve decide to move our development to github. As most of you developers saw we were pretty comfortable with Google Code using the automatic build process, issue system, etc. But we noticed more and more evolvement from developers in BIMserver. This raised the insurmountable question how to manage these efforts. After some research we decided to switch from svn to git version control. This allows more ad-hoc developers to create pull requests and lowers the threshold for collaboration. From this decision we rolled from one advantage in the other and finally ended up with github. We also decided a long time ago we want to intensify the collaboration with the guys from the open source BIM collective. Moving to github gives us the opportunity to have our codebase within their organisation profile.

Immediately after the 1.2.0 final release we moved the source code repository. Slowly we will also move the issues and wiki.

Release 1.2.0 final(ly)

At last the final version of BIMserver 1.2.0 is released. You can find it on our google code site.

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 reason why it took so long was because we had to change a lot in the interface to make it compliant with the new BIMSie API standard for BIM in the cloud. We are proud to be the first open source project that supports this initiative.

Statsbygg validation service: A use case example for BIMSie

It is publicly known that our team is leading the BIMSie standardisation concept for BIM in the cloud. In the beginning of this project we created an example of a floor supplier service that delivers a detailed IFC model with floors (obviously separated from the original model, but with the ability to merge this into one model on request).  More recently we created an example for Statsbygg to online check IFC models against the Statsbygg validation rules. The presentation is online at slideshare. The sourcecode of this demo is available on github. More to follow….

Update: Also created a similar service for the Dutch Rijksgebouwendienst (RGD BIM Norm).

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!

Evolvement in BIMSie

BIMserver.org is involved in the new BIMSie initiative from BuildingSMART Alliance. We intent to build BIMserver in compliance with the BIMSie standard API.  BIMserver.org is specifically involved (and interested) in the development of the ‘RemoteServiceInterface’ and the ‘LowLevelInterface’. Léon van Berlo presented his view on BIM in the cloud and BIMsie during the “Building Innovation Conference 2013”  in DC a couple of weeks ago. You can see the two video’s over here:

 

 

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.