# Presentation: 118342

## Expressik LightCpp ProjectC++ Open Source SDK for STEP data management

- 10th NASA-ESA Workshop on Product Data Exchange
- ESA / ESTEC, Noordwijk, The Netherlands
**March, 26-28 2008**

- Mathieu Marache, Eric Lebègue

## What is CSTB ?

**Centre Scientifique et Technique du Bâtiment**
**A French « partially » public funded organism for research and validation of new materials, tools and methodologies for the construction sector**
**After the “Grenelle de l’Environnement”, one of the most important actor for Sustainable Development of buildings and cities  **

## Why CSTB and construction sector in a NASA-ESA Workshop ?

**Construction sector is facing more and more cooperation problems in design and maintenance phases**
- For taking into account these **Sustainable Development** objectives
- Structural, thermal, acoustic, security, comfort...
**A building is becoming as much complex as a spacecraft !**
**It is possible to share technology between space and construction sectors**
- STEP (IFC in AEC), VR technologies...
**A huge potential of users in the Construction sector **
- For improving the reliability and competitiveness of PDE solutions

## The IITAS Scope Industrial Implementation of STEP-TAS

- ESARAD

- TAS-IEF

- STEP-TAS SDK
- (software libraries)‏

- Baghera View
- (Reference Viewer,
- CNES)‏

- THERMICA

- TAS-IEF

- CORATHERM/CIGAL2

- TAS-IEF

- STEP-TAS
- Protocol

- STEP-TAS
- Dictionary

- STEP-TAS
- Acceptance Testsuite

*Category 1:**Proprietary elements*

*Category 2:**ESA **Open source elements*

***Scope of the project***

## Baghera View

**A Reference Viewer for the European Space Industry**
- For STEP-TAS and AP203
**STEP converters development phase**
- To be used as validation tool
**Industrial data exchange phase**
- To be used by sender and receiver of the data, for :
- Checking 3D geometry
- Checking assemblies and properties
- Reporting the exchanged data
**Download at : **
- _[http://salle-immersive.cstb.fr/en/](http://salle-immersive.cstb.fr/en/)_

## eXpert : an equivalent project for the construction sector

**IFC**

**Existent buildings****recovering**
**** **Allsystems **
**Rastertech**

**Materials**
**Databases**
**** **Edibatec**
***CSTB (Elodie)******‏***

**CAD**
** **
**** **Abvent**
**Autodesk**
**Bentley**
**Gehry Technologies**
**Nemetschek**

**Structural **
**Analysis **
****** ****Graitec **
**Robobat**
**Tekla**

**Other ****Environmental**
**Analysis**
**** **BBS Slama**
**CSTB**

**Economic****Analysis**
**** **Attic+ **
**Aquitaine Informatique**

**Project**
**Management**
**** **Archimen**
**Labeo**
**Vizelia**

***IFC******Reference ***
***Viewer***
*********CSTB***

## Objectives of expressik LightCpp project

**To get an “open source” C++ SDK solutions for STEP data reading/parsing, writing and management**
**SDK to be provided to STEP converters developers**
- For assisting the development (STEP formats and data models are complex)‏
- For sharing a common validated STEP data management level
- Free of license charges
**At the end : for getting better quality of STEP exchange**

## Context of expressik LightCpp generator

**Based on expressik generator (University of Manchester)****‏**
**Collaboration (technical and co-funding) between ESA, University of Manchester and CSTB**
**Restrictive scope**
- STEP-TAS and IFC (no complex ANDOR instances)‏

## expressik : an early-bound approach of STEP models implementation

- EXPRESS

- Java

- C++

- STEP-11
- Model

*expressik*
- Generator

*expressik*
- C++ API

*expressik*
- Parser

- Generated
- C++ API

## Light Cpp reuses core expressik packages 

- EXPRESS

- Java

- C++

- STEP-11
- Model

*expressik*
- Generator

*expressik*
- C++ API

*expressik*
- Parser

- Generated
- C++ API

*Light Cpp*

## Comparison between Expressik project and CSTB work

**expressik Generator (University of Manchester)****‏**
- Standardized C++ API generation of any Express models
- Validation of rules and use of defined Express functions
**express2LightCpp (CSTB)****‏**
- Optimized C++ classes for « simple » Express models (i.e. no ANDOR inheritance) like IFC or TAS
- Various optimizations, fewer memory consumption, « lazy » loading of large instance files ...

## Light Cpp Generated API implementation

**Exploiting Standards...**
- ISO C++
- STL
** ... ****Cross-platforms API...**
- CMake : makefiles generation, unit testing and installers framework
- Doxygen : Documentation generator
**... ****Various patterns and enhancing functions **
- Classes visitors : Adding functionalities to the API
- Reference pointers : No C++ « delete » anymore

## Light CppLazy Loading concepts

**Partially unserialize a STEP-21 file**
**Dynamically instantiate an object only if needed**
**Optimize loading time and memory consumption**
**Writing of an object could be done in this lazy way (without instantiating it)****‏**

## LightCpp Validation

**C++ syntax generation**
- Validation with PyExpress EXPRESS atomic models testsuite
**STEP-TAS C++ generated classes**
- Validation with IITAS « Convenience classes » and associated examples
- Validation with Baghera View

## Expressik to be completedin the scope of a true Open Source project ?

**Full rules validation for LightCpp classes ?**
**Other physical formats for STEP instances R/W ?**
- XML
- HDF
**Data modeling mechanisms ?**
- Delete, Undo/redo...
**Other programming languages generation ?**
- Python (harmonization with the PyExpress project)
- Java
**...**

## General perspectives

**Providing a powerful Open Source SDAI should really allow a larger usage of STEP, across the world and across the industries**
**It should allow a larger usage for academic development and general extensions of semantic and non proprietary CAD data sharing**
**To be discussed, across the Atlantic ocean ?**
- Management, funding...

## Thank you for your attention

**CSTB Contact**
- Mathieu Marache – _[mathieu.marache@cstb.fr](mailto:mathieu.marache@cstb.fr)_
- Eric Lebègue – _[eric.lebegue@cstb.fr](mailto:eric.lebegue@cstb.fr)_
**Download Baghera View at :**
- _[http://salle-immersive.cstb.fr/en/](http://salle-immersive.cstb.fr/en/)_
- Item: Download