Support site for Simplebim users
CityGML Add-on (BETA)

The CityGML add-on for simplebim can be used for converting complex high-detail IFC models into simple and streamlined CityGML models that can be used as part of city models.

This add-on is still under development and still has many shortcomings and bugs. It can be used for testing and we are happy to hear any feedback you may have. However, please read the lists of known limitations and bugs before sending us your feedback at support@datacubist.com. Our main focus has so far been on creating clean and lightweight CityGML models for the outer shell of the building.

The latest version of the add-on is 7.0 Beta4 which expires 30.6.2019. Beta4 requires Simplebim 7.0 SR3 or later.

Please note that simplebim 5 or 6 is no longer supported, so you need to have Simplebim 7 to run this add-on.

Installing

If you don't already have the installer, please let us know that you want to test this add-on and we will send you a download link.

The add-on does not have a separate license, but it has an expiration date after which it will no longer work. This is to ensure that you are using a fairly new beta version. If your version of the add-on expires, please ask us for an update. We try to organize the beta releases such there is no gap between the versions.

You can get our sample model (shown above) for testing here: GettingStarted-CityGML.zip From this model you can generate CityGML LOD1-3 representations without validation or preparation. You can use for example the FZK Viewer for looking at the resulting CityGML files. The installer for FZK Viewer can be found at https://www.iai.kit.edu/english/1302.php

Verifying the installation

When you start simplebim after installing the add-on you can verify that it is correctly installed from the simplebim About dialog. This dialog has a Add-Ons tab that lists all installed add-ons and their versions.

Using the add-on

With the add-on successfully installed you can normally import any IFC model or open any previously saved model. When the model is opened you will see a new button in the ribbon on the right side of the IFC export button.

 

If the model meets the requirements for CityGML conversion (more about that later) you simply click on the button to export a CityGML file. This opens a CityGML Options dialog where you can choose which LoD levels you want to export to the CityGML file. Please note that one CityGML file can contain multiple LoD:s.

The conversion needs to find the outer shell of the building. For this we use all the objects that are recognized as outer walls, door and windows from the viewpoint of CityGML. The reason we also include doors and windows are cases where the doors and windows fill a wall object completely or there is very little geometry left of the containing wall. However, sometimes the resolution works better if you leave out the doors and windows from the outer shell resolution. If you get a funny result with doors and windows included you can try to uncheck the 'Include Doors and Windows in Outer Shell Resolution' box and try again.

The outer shell optimizations are not needed if the model is clean and simple. However, most models are not and you can try if you can get a better version with one or a combination of the optimization options. The Offset Healing is useful if there are small gaps between the objects of the outer shell.

Validating the model for CityGML

The CityGML preview allows to see the roles of the IFC objects in the CityGML conversion. We apply a automatic detection based on properties defined in the IFC specification and populated my most architectural design applications. You can override this automatic detection using special CityGML properties and the preview shows you the result that is resolved from these two techniques.

You first need to apply the 'CityGML Setup' template that can be found in the CityGML template category. This template is installed with the add-on and it adds the necessary CityGML properties and sets basic validation rules. You can find instructions for applying templates here. You only need to apply this template once for model.

For creating or updating the CityGML preview please run the 'Create or update CityGML preview' tool. You can find instructions for running tools here. You can run this tool again after editing the model in simplebim for updating the preview to reflect the new situation.

The tool creates a 'CityGML Preview' group under Object Groups in the Objects palette. This group has the different CityGML roles as child groups and the child groups contain all the IFC objects that have been recognized to have that CityuGML role.

Do not edit these groups because it will have no effect on the CityGML conversion. These groups are simply created using the same logic used in the conversion and the conversion will not use these groups in any way.

Selecting a group will select all the objects in that group and the selection will be shown like any other selection in simplebim in the 3D, the Properties palette and other places.

The basic level of validation is to find out if objects with the required CityGML roles were found from the model. If not, this is shown using the normal validation system in simplebim.

The second level of validation is to make sure the roles are assigned correctly, for example that the outer walls don't contain balcony walls, railings etc.

Preparing the model for CityGML

Building detection

Each IFC building is exported as a separate CityGML building.

In order for a building to be valid it must contain at least one object with the OuterGroundSurface and one object with the OuterRoofSurface CityGML role.

Building storey detection

The outer shell of a building is resolved by building storey. Because of this the objects with the outer wall surface, outer window and outer door CitygML roles must together form a closed ring for each building storey of an IFC building.

We are working on allowing gaps in the building storey ring so that this requirement for a 'mathematically' closed ring is only temporary.

Automatic CityGML role detection

The automatic detection of the CityGML role uses properties typically found in architectural models. If these are not correct in your model you can use the Property Value Editor workspace in simplebim for correcting these. Alternatively, if you are the author of the IFC model, you can make changes in your native model. If you are not the author you have the option to communicate the issues to the author using BCF in simplebim.

These are the properties used for the automatic detection

IFC Object Class IFC Property or Rule CityGML Role
Wall Building Element Is External = Yes OuterWallSurface
Door Placed in a wall with Building Element Is External set to Yes OuterDoor
Window Placed in a wall with Building Element Is External set to Yes OuterWindow
Slab Slab Predefined Type = ROOF OuterRoofSurface
Slab Slab Predefined Type = BASESLAB OuterGroundSurface
Roof If the roof object has its own geometry, i.e. is not a container for slabs OuterRoofSurface
Plate Placed in a Curtain Wall with Building Element Is External set to Yes and has transparent (not opaque) appearance OuterWindow
Plate Placed in a Curtain Wall with Building Element Is External set to Yes and has opaque appearance OuterWallSurface
Member Placed in a Curtain Wall with Building Element Is External set to Yes OuterWallSurface

Using CityGML properties for overriding CityGML role

Applying the CityGML template adds a 'CityGML Object Class' property to all object classes. When you select this property in the Property Value Editor palette it will show all CityGML roles. Setting this property allows you to override the automatic detection for any object. You can for example:

Excluding objects

Any objects you exclude in simplebim will not be used in the CityGML conversion. This is often the fastest way for cleaning up the model. If for example balcony railings have been modeled as walls and are marked as external, you can simply exclude them instead of editing their 'Building Element Is External' property.

Automating edits

Because the detection of the CityGML role is driven by properties you can use simplebim templates for automating tasks that you find yourself repeating manually. You can find more information about templates here.

Advanced techniques

Roof parts

Sometimes roofs don't overlap walls but the upper surface of walls forms part of the roof. You can set the 'CityGML PartOfRoof' property to Yes for such walls and their upper surfaces will be also used when resolving the roof.

Priority roofs

Usually roofs can be resolved without additional information, but sometimes you need a lower roof to cut a roof that is located higher up, which is not the default behavior.

In the example above the red roof must be marked a a priority roof or it will not cut the roof above it resulting in a outer shell that is too big. You can set the 'C'ityGML PriorityRoof' property to Yes for such roofs.

Modeling helper objects

If the outer shell resolution fails you can model helper objects and use them in the CityuGML conversion. This technique allows you the 'straighten' the building and patch over modeling mistakes, inaccuracies and excess details to get a very clean CityGML output. Below are the steps if you are not the author of the model. If you are the author, you can model the helper objects directly into the native model instead, make a new IFC export and follow only the steps 5-7 below.

  1. Import the original or a trimmed IFC model from simplebim into your favorite modeling application
  2. For each building storey model a new slab or space object that traces the outer shell of the building. This is fast and easy to do because you can snap to the objects in the imported IFC model. The slab or space does not have to have the full height of the building storey, in fact it is better if it is just a 'slice' that hovers between the bottom and top of the building storey with some margin on both sides.
  3. Export only the new slabs or spaces to IFC
  4. Merge the IFC file you just created to the original IFC model already open in simplebim
  5. Exclude all wall objects, but leave the doors and windows included
  6. Set the role of the new slabs or spaces to OuterWallSurface
  7. Create the CityGML files with the 'Include Doors and Windows in Outer Shell Resolution" unchecked, which will filter out doors and windows from the building shell resolution but still include them in LoD3.

Known limitations and bugs

Notes

Bugs

Limitations