Sei sulla pagina 1di 6

An Open Platform for Processing IFC Model Versions*

Dr. Mohamed Nour**


Prof. Dr. Karl Beucke***

Bauhaus-Universität Weimar, Informatik im Bauwesen,


Coudraystr. 7, 99423, Weimar, Germany.

Abstract: The IFC initiative from the International Alliance of Interoperability has been developing since the
mid-nineties through several versions. This paper addresses the problem of binding the growing number of
IFC versions and their EXPRESS definitions to programming environments (Java and .NET). The solution
developed in this paper automates the process of generating early binding classes, whenever a new version
of the IFC model is released. Furthermore, a runtime instantiation of the generated early binding classes
takes place by importing IFC-STEP ISO 10303-P21 models. The user can navigate the IFC STEP model
with relevance to the defining EXPRESS-Schema, modify, delete and create new instances. These func-
tionalities are considered to be a basis for any IFC based implementation. It enables researchers to experi-
ment the IFC model independently from any software application.

Key words: IFC; EXPRESS; STEP, bindings; .NET; Java

where EXPRESS data constructs can be mapped one


1 Introduction to one to it. This is particularly the case, when con-
A tremendous amount of efforts has been exerted by sidering the inverse attributes, local and global rules
the IAI (International Alliance of Interoperability) [1] as well as derived attributes. These are always con-
in the past decade to bridge the gap between soft- sidered to be a short coming of the majority of re-
ware islands of automation. The output of these ef- search efforts that have been carried out in this field
forts is the IFC model [2] with its various versions. [4]. Even if programming languages can go around
A major problem facing IFC Software developments this by creating extra new user defined classes that
in research and educational environments is the EX- mimic the behaviour of EXPRESS data types, the
PRESS ISO 10303-P11 [3] definition of the IFC exchangeable STEP ISO 10303-P21 physical file
Model. EXPRESS is a modelling language but not a (Standard of Exchange of Product Data) [5] does not
programming language. Hence, it is inevitable to include some of the attributes, like the Inverse and
bind a programming language to EXPRESS sche- Derived Attributes.
mata that define the IFC model. Furthermore, it is In the meantime, IFC EXPRESS definitions
well known that there is no programming language have been changing through several development
stages since version 1.0 in the nineties of the last
﹡Supported by the InPro- Project, www.inpro-project.eu century. Each time a new IFC version is introduced,
To whom correspondence should be addressed. a new binding for the programming languages has to
﹡﹡E-mail: mohamed.nour@daad-alumni.de; Tel: 49 3643 254216 be regenerated.
*** E-mail: Karl.beucke@bauing.uni-weimar.de; Tel: 49 3643584214
2

This paper presents a methodology that can help re-


searchers start using the IFC model in their own
2.1. EXPRESS
work and automates the regeneration of early bind- EXPRESS (ISO 10303-P11) is an object oriented fla-
ing programming libraries for any IFC model ver- voured modelling language aimed at providing formal
sion. The main deliverables are solutions that enable: definition constructs for the ISO (International Stan-
• Binding IFC EXPRESS definitions to pro- dard Organization) product data representation and ex-
gramming languages (Java and/or .NET en- change. It is represented in both a textual format and a
vironments for any available IFC model graphical annotation format known as EXPRESS-G. A
version). detailed explanation of the language can be found at [7]
and a brief introduction to its use in IFC can be found
• Importing STEP ISO 10303-P21 and instan-
in [8].
tiating a runtime object oriented model.
Since the IFC model schema is defined in EX-
• Navigating the IFC Model through the IFC
PRESS ISO 10303-P11 and since EXPRESS is not a
model instances (IFC STEP) and the defin-
programming language, there is an inevitable need for
ing EXPRESS meta-model. binding the IFC EXPRESS definitions to a program-
• Carrying out operations on the IFC object ming language. The EXPRESS definition of the IFC
model: model contains hundreds of interrelated entities and
o Population inheritance relationships that have to be mapped to the
o Modification associated programming language.
o Deletion There are mainly two types of bindings available for
• Exporting the runtime IFC object oriented the EXPRESS-Schema binding process. First is the
model into STEP-P21 format. late binding, where a data dictionary is used to provide
o Exporting models and sub-models. access to attributes stored within a generic data struc-
• Importing IFC models and generating run- ture. The main advantage of this approach is its sim-
time corresponding objects with reference to plicity through the use of a single interface that is im-
the early binding Java/.NET libraries. plemented on all objects. The main disadvantage is that
it can not perform any type checking of attributes
The main focus of this paper is on the automatic
against the EXPRESS-Schema definitions [9]. The
generation of early binding libraries for any avail-
second approach is the Early Binding approach, where
able IFC model version’s EXPRESS definition.
the entire IFC EXPRESS schema is mapped to the un-
However, the process of generating mappings be-
derlying programming language data structure. This
tween IFC versions to map a population of an IFC approach is more complex to implement, but has the
model from one version to another is out of the advantage of being able to perform type conformance
scope of this paper. For this purpose, the reader can checking, which is a great advantage for ensuring the
refer to the work done by R. W. Amor et al [6]. validity of the IFC model.
In the meantime, the quality of mapping the data
structures from the IFC EXPRESS definition to the
2 The Open IFC Platform programming languages vary a lot according to the
The developed platform depends on generating bind- ability to model EXPRESS data entities, types and
ings of the IFC EXPRESS schemata to programming rules.
languages. The platform enables the generation of new A third approach is a mixture between the early and
early binding libraries for any available IFC EXPRESS late binding approaches. It depends on manually creat-
schema. The coming sections describe in detail both ing a mapping of a subset of the EXPRESS definitions
the process of bindings generation and processing IFC known as the working set which contains a set of IFC
model data through the exchanged IFC STEP models. elements that has proved to be frequently used in the
exchange process. The rest of the entities are lately
bound at runtime (i.e. late binding). This approach has
3

the type checking advantages against the EXPRESS


schema from the early binding and the simplicity of the
late binding with regards to entities that are not of
great value to the underlying application or the ex-
change process.
In the scope of the research presented in this paper a
pure early binding approach was adopted. The Java
Compiler Compiler [10] and reflection [11] technolo-
gies are used to generate early binding Java or .NET
classes of any IFC EXPRESS schema. This has led to
the following advantages in dealing with the IFC
model:
1- Type checking conformance with the EX-
PRESS schema.
2- Mapping the EXPRESS language Explicit as
well as the Inverse attributes that are not in-
Fig. 2 Java library documentation showing the inheri-
cluded in the IFC STEP exchange format.
tance hierarchy of the IfcBezierCurve Java Class
3- Identifying Optional attributes.
4- Provision of all meta-data of the IFC model that responds to the appearance of any new
EXPRESS types and entities regarding attrib- version of the IFC model.
ute names, valid value types and inheritance As an example, the automatic generation of a binding
trees. library to the IFC2X3 EXPRESS definition has led to
5- The automatic generation of a new binding the generation of 980 Java classes representing 117
Defined Types, 164 Enumerations and 653 Entities of
the IFC2X3 EXPRESS schema definition. The process
of generating the binding classes in both Java
and .NET libraries did not take more than 40 seconds.
Fig. 2 is an example of the documentation of a gener-
ated early binding Java Class that corresponds to the
EXPRESS definition of the IFC entity (IfcBezierCurve)
shown in figure 1. It can be noticed that both of them
has the same inheritance tree descending from IfcRep-
resentationItem.
A mapping is done between the EXPRESS data
types and Java or .NET data types. For example, ag-
gregates like EXPRESS LIST, SET, and BAG are
mapped to Java HashSet, HashList with some extra
functionality that deals with objects identity for ele-
ments that descend from IfcRoot in terms of their
GUIDs (Global Unique Identifiers). In the mean time
other simple types like REAL and INTEGER are
mapped to Double and Integer respectively. In general,
there were no problems faced in mapping the simple
Fig. 1 The definition of an IfcBezierCurve entity in EX-
data types from EXPRESS to Java or .NET. The main
PRESS ISO 10303-P11 showing inheritance, INVERSE problems were faced in mapping some EXPRESS
and DERIVE attributes types and enumerations, which were solved using in-
terfaces and specially written classes that mimic the
4

EXPRESS definition. developed by the author [12] as shown in fig.3 part B.


The IFC STEP entities are parsed and interpreted at
2.2 STEP-ISO 10303-P21 runtime to their Java or .NET counterpart objects with
The main aim of the STEP standard (The Standard for the help of the early binding classes as shown in fig.3
the Exchange of Product Model Data) is to define part A.
standards for the definition and exchange of computer- Fig. 3 shows the entire view of the developed sys-
interoperable product information all over the lifecycle tem. The early binding .NET and Java libraries are
of a product [3] from early design to demolition. generated to any IFC model version once (as shown in
STEP-P21 (SPF: STEP Physical File) is considered part A of fig.3) and kept as a Java archive (jar) or
to be a neutral file format for data exchange between a .NET dynamic link library (dll) for further use at im-
software applications. Thus, applications exchanging porting IFC STEP models. In part B of fig.3, any
information by using STEP-P21 have to establish their IFC/STEP model can be imported provided that its
own pre and post processors to convert information version corresponds to the generated early bindings
from their own data structures to STEP and vice versa. generated in part A of fig.3. This is done through a
It is worth also mentioning that the latter often results STEP-P21 parser and interpreter that is responsible for
in information loss due to the inability of some appli- reading the IFC/STEP input and creating the necessary
cations to re-export data that is irrelevant to their own runtime objects (instances) of the early binding librar-
data structures. ies.
STEP is the exchange format for data instances that
represent entities defined in the EXPRESS meta-model.
It can be resembled to a class and its instance relation-
ship.

Fig. 4 Navigating the imported IFC/STEP model in-


Fig. 3 The overall view of the developed platform. Part stances
"A" for producing early bindings to any IFC Model Fig. 4 shows a graphical user interface where the user
Version EXPRESS Schema (done once). Part "B" for can navigate the IFC model instances and see the at-
creating runtime objects at time of reading IFC STEP
tributes’ names, values, whether they are optional or
models (done each time for importing IFC models)
not and the inverse attributes, as shown at the bottom
of the figure. If the attribute’s values are not primitive
2.2.1. Importing STEP Models types, they appear as buttons that could be clicked to
In order to be able to deal with the IFC model in- further access the referenced objects and so forth.
stances, a STEP-ISO 10303-P21 parser and interpreter Hence, it enables the user to explore the entire IFC
using the Java Compiler Compiler technology were model and the interrelationships between entities.
5

is quite fast and satisfies the various needs for process-


2.2.2. SDAI ing the imported data including modification, deletion
In order to be able to deal with the imported IFC model, and creation of new IFC instances. In addition to the
there is a need to get access to the attributes of the cre- navigation and visualization of the IFC models data
ated runtime objects. The SDAI (Standard Data Access type checking is done successfully. Any attribute value
Interface) is a STEP API for EXPRESS defined data. that does not conform to the original EXPRESS
The SDAI protocols contain a description of the opera- schema definition results in triggering exceptions. New
tions and functionalities that should be satisfied by the IFC instances could be created, exported by the plat-
bindings. The SDAI is described by several ISO stan- form. They could also be imported and viewed suc-
dards’ documents. STEP Part 22 [13] contains a func- cessfully in other IFC compatible software applications.
tional description of t he SDAI operations, while parts The full validation of the exported models by both the
23 [14] and 24 [15] describe how these operations are EDM database and EXPPRESSO has shown no errors.
made available in programming languages. In general, Finally, IFC models with sizes ranging from 5KB to 40
the only purpose of this interface is the definition of MB could be processed easily without remarkable de-
rules that the generated .NET/Java classes must im- ficiency in performance.
plement to get access to their inner attributes [16].
4 Conclusions and Recommendation
3 Testing and Validation for further research
The testing and validation for the entire platform was In order to be able to deal with the different IFC model
done on the basis of the following criteria: versions, there is a need to establish a binding with the
1- Generating early binding libraries for several IFC EXPRESS-P11 definition of each IFC model version.
model Versions. This is particularly the case when using early bindings
2- Importing various IFC STEP Model Versions (popu- to programming languages like Java and .NET. The
lations) and performing type checking for all attributes Java Compiler Compiler technology can be used for
according to the pre-defined early binding attributes’ creating both ISO 10303 STEP-P21 and EXPRESS-
types. P11 parsers for reading IFC STEP files and defining
3- Creating new Instances and integrating them to the early bindings to programming languages respectively.
In the meantime, the established platform together
imported models and re-exporting the IFC models. It
with the use of the ISO 10303 SDAI parts 22 and 23
should be mentioned that the imported IFC version is
facilitate the processing of any IFC model version. The
unchanged when exporting IFC STEP model to other
created platform acts as abase for processing IFC mod-
applications.
els belonging to various IFC model versions. It enables
4- Importing the exported models after modifications the navigation through the IFC/STEP model instances
and instantiation of new data by other IFC software with reference to their meta-model definition (EX-
applications, e.g. several CAD applications like Archi- PRESS). It also enables the creation of new instances,
CAD [17] and ADT [18] in addition to other applica- deletion and modification of instances in addition to
tions like Solibri Model Checker [19] and various IFC exporting the modified models to any other IFC com-
viewers like TNO [20] and the various IFC tools of the patible application. Furthermore, 2D and 3D CAD
Forshungszentrum at Karlsruhe [21]. visualizations, in addition to the IFC hierarchical tree
5- Full validation by EDM (Express Data Manager) structure are supported.
[22] and EXPRESSO [23] for checking against the de- There are several areas for future development like
fining EXPRESS schema versions. the development of model server functionalities such
6- Testing the capabilities to handle IFC models with as partial model exchange, IFC object versioning, crea-
different sizes. tion of domain models and business objects, queries
The results showed that the generation of the bindings based on space and semantic parameters and finally
6

collaborative teamwork and change management as- matik . In Jan Zimmermann, Sebastian Geller (eds), Braunschweig.
pects. Shaker Verlag, Aachen. October 2004, pp. 231 – 237. ISBN 3-
ACKNOWLEDGEMENTS 8322-3233-4
“The result presented in this paper is part of [13] ISO 10303-22, Industrial Automation Systems and Integra-
InPro (http://www.inpro-project.eu) tion --- Product Data Representation and Exchange. Part 22:
- an integrated project co-funded by the Implementation Methods: Standard Data Access Interface,
European Commission within the Sixth 1998
Framework Programme (2002-2006).” [14] ISO 10303 23, Industrial Automation Systems and Integra-
tion --- Product Data Representation and Exchange. Part 23:
References
Implementation Methods: C++ language binding to the
[1] IAI, International Alliance for Interoperability, http://www.iai- Standard Access Interface
international.org [15] ISO 10303 24, Industrial Automation Systems and Integra-
[2] IFC, ISO/PAS 16739, Industry Foundation Classes, Release 2X, tion --- Product Data Representation and Exchange. Part 23:
Platform specifications, 2005, available at http://iso.nocrew.org Implementation Methods: C language binding of Standard
[3] ISO 10303-11 EXPRESS. Industrial automation systems and Access Interface
integration – Product data representation and exchange – [16] Loffredo D., Efficient Database Implementation of EX-
part 11: Description methods: The EXPRESS language ref- PRESS Information, PhD Thesis, available from
erence manual, 1994. www.steptools.com, April 1998.
[4] Owolabi, A., Anumba C., El-Hamalawi A. and Colin C. De- [17]ArchiCAD – Graphisoft, versions 7.0, 8.0, 9.0, 10.0 and
velopment of an Industry Foundation Classes Assembly 11.0 ('PreProc - EDM 4.5.0033')
Viewer, Journal of Computing in Civil Engineering, Vol. 20 [18]Architectural Desktop 2006, 'IFC-Utility 2x for
No.2, March/April 2006, pp. 121-131 ADT V. 2, 0, 4, 15’, www.inopso.com
[5] ISO 10303-21 STEP. Industrial Automation Systems and In- [19] Solibri IFC Optimizer – www.solibri.com
tegration — Product Data Representation and Exchange — [20] TNO, IFC Viewer, available from
Part 21: Implementation Methods: Clear Text En-coding of http://www.ifcbrowser.com/
the Exchange Structure, ISO 10303-21:1994 (E), ISO, Ge- [21] IFC Visualization tools from Forschungszentrum Karlsruhe,
neva, 1994. http://www.iai.fzk.de/www-extern/index.php?id=1138
[6] Amor, R.W. and Ge, C.W. Mapping IFC Versions, Proceed- [22] Express Data Manager, EDM database from Jotne
ing: ECPPM 2002, eWork and eBusiness in Architecture, EPM Technology, http://www.epmtech.jotne.com/
Engineering and Construction, Ziga Turk & Raimar Scherer [23] EXPRESSO for Linux and Windows, National In-
(eds) ,2002 Balkema, Rotterdam stitute for Standards and Technology, NIST,
[7] Schneck, D. and Wilson P. Information Modelling: The Ex- http://syseng.nist.gov/se-interop/tools/expresso
press Way; 1994, Oxford University Press, New York, ISBN
0-19-508714-3
[8] International Alliance for Interoperability (IAI). The EX-
PRESS definition language for IFC development. 2001
[9] Loffredo D. Fundamentals of STEP implementation, STEP
Tools, Inc. 1999 available at www.steptools.com/library/
[10] Java Compiler Compiler (JavaCC). The Java Parser Gen-
erator, obtained from https://javacc.dev.java.net. The source
for Java Technology Collaboration, Java .NET 2005.
[11] Using Java Reflection, Article, Obtained from
http://java.sun.com/developer/technicalArticles/ALT/Reflect
ion/, 2008.
[12] Nour, M. M. A STEP ISO-10303 Parser, 16th Forum Bauinfor-

Potrebbero piacerti anche