Billie is a mapping engine dedicated to generate visual representations from building information models based on a visualization description.

1 Installation

Download and unpack the archive of the appropriate release from github. The alpha releases contain all modules plus two sample applications. The final version will be released in smaller specific packages.

2 Usage

There are two commandline applications to create visualizations: one uses precompiled configurations, the other loads configurations from visualization description files. Both commandline applications can be called with a script which comes as a Windows batch file and as a Unix shell script.

2.1 Configuration runner

The configuration runner (de.tudresden.cib.vis.sampleApps.ConfigurationRunner) loads a selected precompiled visualization configuration CONFIGNAME and applies it to a building information model loaded from BIMFILE.

configurationrunner.bat [CONFIGNAME [BIMFILE]]
./configurationrunner.sh [CONFIGNAME [BIMFILE]]

If no CONFIGNAME is given, all available configurations are listed. If no BIMFILE is given, a file selection dialog prompts for the respective input file or folder.

The sample configurations included in the alpha release are listed and described in section Sample configurations. For the creation of custom configurations, see section Precompiled Configurations.

2.2 DSL runner

de.tudresden.cib.vis.DSL.VisDSLRunner

dslrunner.bat CONFIGFILE [BIMFILE]
./dslrunner.sh CONFIGFILE [BIMFILE]

If no BIMFILE is given, a file selection dialog prompts for the respective input file or folder.

The DSL version of the visualization description is only implemented as a very rough sketch in the alpha release and does not yet reflect the functionality of the precompiled visualization descriptions. Only simple mapping without animation and interaction is possible as demonstrated with ifc_3d.vis. For the description of the visualization DSL see section DSL.

3 Precompiled Configurations

In order to create custom precompiled configurations, the class de.tudresden.cib.vis.mapping.Configuration has to be instantiated. It has a generified class signature to allow for the compile time compability check of the data accessor, mapper and scene graph. Due to type erasure, generics are useless in the case of configurations specified by a DSL (since this is only loaded at runtime), and thus the generic class signature should be replaced by some other mechanism in the future.

The class signature Configuration<E, C> is generified with the type of the data elements (E) to be mapped to visualization objects and the type of the condition (C) used to specify filter specifications. The type of the condition depends on the filter library used. The default filter library uses a condition oject Condition<E>. Other libraries could use strings or custom types to specify conditions.

A configuration holds the following entities: statistical functions to extract values by folding, globals to calculate and save general values, and mappings. These can be added by using the respective functions addStatistics(String name, Folding function), addGlobal(String name, Preprocessing function) and addMapping(Condition condition, PropertyMap mapping).

Examples of precompiled configurations can be found in the package de.tudresden.cib.vis.configurations. They are accessible through the configuration runner described earlier.

3.1 Statistics and globals

TODO

3.2 Mappings

A mapping is specified by giving a condition and a property map. The condition is then later used by a filter library to determine a set of objects to apply the property map. The default filter liberary uses a Condition object with a matches method returning a boolean value that indicates whether a given object is to be considered for mapping. The PropertyMap is generified with the type of the source data elements and the type of the target visualization elements. Property maps must implement the abstract configure method where the properties of the visualization elements can be set depending on properties of the source element and additional values from data preprocessing. Inside the configure method the source object can be accessed as data and the target object as graphObject.

TODO: example addMapping...

3.3 Updating mappings

Updating mappings change the properties of visualization objects created in advance. They can either be triggered by the advance of time to a specific point or by an event generated by user interaction. Accordingly, there are two different method signatures to add updates: addChange(int time, de.tudresden.cib.vis.scene.Change<T> change) and addChange(Event event, de.tudresden.cib.vis.scene.Change<T> change).

A Change is similar to a PropertyMap in that it has to implement a configure method in order to set properties of the visualization object. However, it does not create the object in question, but acts on an already existing object. The association of a change and the visualization object it operates on is currently created by defining the changes together with the initial visualization object setup in the property map.

TODO: example addChange...

3.4 TODO

4 DSL

The implementation status of the DSL is currently only partial. The documentation will grow as subsequent features are implemented.

The DSL is based on Groovy, which is suitable for DSLs due to its concise character and features such as closures and functional programming constructs. Groovy is a language for the JVM. It extends Java and all Java constructs can be used. Further documentation can be found on groovy-lang.org. A production DSL would restrict the usable language constructs, but in favour of academic liberty no such restrictions are built into the prototypical DSL implementation.

4.1 Basic mapping

A basic mapping rule is specified by giving the types of the source and target object, a condition and a mapping as follows:

vt.rule(EngineEObject, Polyeder){
  condition {
    data.object instanceof IfcBuildingElement
  }
  initial {
    graphObject.vertizes = data.geometry.vertizes
    graphObject.normals = data.geometry.normals
    graphObject.indizes = data.geometry.indizes
  }
}

The closure following condition is evaluated and should return true if the mapping should be applied to the object, false otherwise. The closure following the keyword initial is evaluated for all matching data objects, after the creation of a respective visualization object.

TODO

5 Sample Configurations

6 Sample Files

We are providing sample files from four different projects:

For each project there are two types of input files:

Sometimes the same contents can be expressed in different formats, e.g. schedule data in a multi model might either be present in the IFC, or as an ICAL, or as a custom XML file. Also, multi model containers exist in different versions --- as specific mefisto containers or as more general MMAA containers. Since Billie does not provide abstraction on the BIM input side, the different input formats require different visualization configurations. However, the sample files provided here cover only one specific of multiple potentially equivalent formats. Note that this has the effect, that for some visualization configurations there is no sample file provided, namely those which have an equivalent configuration with an equivalent input format.

The sample files with their appropriate visualization configurations for their respective format are given below. There is also a script file containing a list of all combinations in the Github repository and a zip archive containing all data files neatly packaged.

6.1 Carport

This sample project is a very simple synthetic project made for teaching purposes at CIB consisting of a slab and four columns.

6.2 EFH

This sample project features a two-storey single family house. It is based on demo data from the research project eWorkBau, the support of the German Federal Ministry of Education and Research BMBF (grant no. 01PF07045A) is gratefully acknowledged.

6.3 Highrise

This sample project features a multistorey office building. Is is based on demo data from the research project mefisto, the support of the German Federal Ministry of Education and Research BMBF (grant no. 01LA09001) is gratefully acknowledged.

6.4 Airport

This sample project features a multistorey office building. Is is based on demo data from the research project mefisto, the support of the German Federal Ministry of Education and Research BMBF (grant no. 01LA09001) is gratefully acknowledged.

7 Embedding

8 Extending

9 Contact and support

For discussion, questions, and support please subscribe to billie@listserv.dfn.de.

10 Theoretical background

The prototype is the result of the research carried out for my thesis with the working title "Configurable nD-visualization for Building Information Models".

In the architecture and construction sector, there is a strong tradition and a lot of competence in working with visual representations. With the rise of digital modelling, visual representations were decoupled from the information, which is now only an abstract mystic lump of data to most architects and engineers. Since visual representations are generated on the fly in dedicated software packages, architects and engineers have very few options to control visual representations. The work is based on the hypothesis that this is a conflict which constricts the creative work of architects and engineers and that the full potential of BIM can only be unlocked with accessible and configurable visual representations.

I have talked and written about the idea from different perspectives and about potential use cases at conferences during the previous years. You can find details in the following articles from conference proceedings and journals and in my thesis (printed or online).

Tauscher H. (2017): Configurable nD-visualization for complex building information models. PhD thesis, TU Dresden.

Tauscher H., Scherer R.J. (2016a): Billie: An extendible framework for the configurable visualization of information models. In: Emmitt S., Adeyeye K. (eds) Proceedings of the ID@50 Integrated Design Conference 2016, Bath, UK, pp 111–124., June 2016.

Tauscher H., Scherer R.J. (2016b): Divide and conquer, mix and match. a top–down and bottom–up approach to building information visualization. In: Complexity & Simplicity (ECAADe 34), Oulu, Finland, pp 611–620., August 2016.

Tauscher H., Scherer R.J. (2015a): Workshop: Developing building information model visualizations using a domain specific language. In: Realtime (ECAADe 33), Vienna, Austria, September 2015.

Tauscher H., Scherer R.J. (2015b): Specification of complex visualization configurations using hierarchically nested mapping rule sets. ITcon 20, pp. 40–50.

Tauscher H., Scherer R.J. (2014): Use cases for configurable building information model visualization. In: Fusion (ECAADe 32), Newcastle, UK, pp 485–494., September 2014.

Tauscher H., Scherer R.J. (2013a): Applied visualization methods for building information models with heterogeneous sources. In: Envisioning Architecture: Design, Evaluation, Communication Conference (EAEA11), Milan, Italy, pp 93–100., September 2013.

Tauscher H., Scherer R.J. (2013b): Utilizing hierarchical edge bundles in multi model visualization. In: Suter G., Wilde P. de, Rafiq Y. (eds) EG-ICE 2013: 20th International Workshop: Intelligent Computing in Engineering, Vienna University of Technology, pp 351–360., July 2013.

Tauscher H., Scherer R.J. (2012): Towards a configurable nD-viewer for building information models: A generic model for the description of visualization methods. In: Proc. 9th European Conference on Product and Process Modelling (ECPPM), Reykjavik, Iceland, pp 271–277., July 2012.

Tauscher H., Scherer R.J. (2011): Area cartograms in building product model visualization: A case study on the presentation of non-spatial object properties in spatial context with anamorphic maps. In: Respecting Fragile Places (ECAADe 29), Ljubljana, Slovenia, pp 444–450., September 2011.

Tauscher H., Voigt M., Scherer R.J. (2011): Integrating visual presentations of construction multi models: Visualization design space exploration. In: Bargstädt H.-J., Ailland K. (eds) ConVR 2011: Proceedings of the 11th International Conference on Construction Applications of Virtual Reality 2011, Weimar, Germany, pp 187–189., November 2011.