User:Konrado DJ/GSoc2015/Proposal/STEP Multiple Protocol Parsing

< User:Konrado DJ
Revision as of 13:01, 23 March 2015 by Konrado DJ (talk | contribs) (Previous Related work (patch))

Personal Information

Name: Djimeli Konrad Niba

E-mail address:

IRC-nick: konrado

Project priority : 2

Project Title: STEP Multiple Protocol Parsing


Standard for the Exchange of Product model data (STEP) is an ISO standard for the computer-interpretable representation and exchange of product manufacturing information which can be used to represent 3D objects in Computer-aided design (CAD) and related information. BRL-CAD makes use of the STEPcode project to implement its step-g importer, which is currently adapted to a specific STEP application protocol (AP).Some examples of commonly encountered application protocol includes AP203(Configuration Controlled Design) which defines the geometry, topology, and configuration management data of solid models for mechanical parts and assemblies, AP214(Automotive Design) which had everything an AP203 file includes, but adds colors, layers, geometric dimensioning and tolerance, and design intent, and AP242(Managed Model-based 3D Engineering) which has everything an AP203 and AP214 file includes, but adds updated kinematics support.The goal of the project is to make it possible for STEPcode to generate a parser, which supports multiple application protocols simultaneously.

Detailed description


STEPcode has the ability to generate c++ classes for the various STEP application protocols which are used for parsing STEP files. Developing a step-g parser that would have the ability to parse various STEP files could be achieved by determining the file schema using the FILE_SHEMA instance within the file header and then switching to appropriate parser but this would not be efficient as there would be so much repeated code generated and it would also lead to an increase in compile and build time of BRL-CAD thus the need for a unified parser. The ability to support many protocols within one framework is one of the key strengths of STEP. All the protocols are all built on the same set of Integrated Resource



Previous Related work (patch)

  1. vrml-g converter
    1. g-stl default top level objects conversion


  1. Developing merged schema EXPRESS file for at-least AP214 and AP203
  2. Generating unified C++ classes
  3. Enabling step-g to make use unified parser


27 April – 24 May Community Bonding

Initializing communication with mentor. Do more research on project, get setup and ready to begin coding. Learn more about STEP standards and EPRESS data modeling language.

25 May – 11 June (2 weeks)

Developing suitable merged EXPRESS file with supports for both AP214 and AP203

12 June – 20 June (1 week)

Rework exp2cxx to Generate C++ classes for merged EXPRESS filename

21 June – 29 June (1 week)

Documentation, test and cleanup of code. By this time the new parser should be able to read AP214 an AP203 files using p21read_sdai_MERGED_SCHEMA without errors.

30 June – 3 July (3 days) Mid term evaluation

3 June – 4 August (4 weeks)

Updating merged file to add support for AP242 and resolving issues involved with this update to ensure C++ classes are properly generated and handled.

4 August – 11 August (1 week)

Integrating new C++ parser with step-g.

12 August – 16 August (1 week)

Code cleanup and documentation.

17 August – 23 August (1 week)

Suggested “pencils down”. Further code cleanup, testing an documentation.

24 August – 28 August (4 days) Final Evaluation


I have no commitment within the Google summer of code period except for my end of semester exams which would run for about two weeks around 24 June– 11 July , but I would make up for the time by putting in more hour before this period guarantying of at-least 40 hours a week.

About Me

My change in department was because of my passion for coding and mathematics and also due to my low interest/motivation for electronic which was a large part of the engineering curriculum. This has given me the time to focus on the thing I am very passionate about and since this is the first year computer science is being offered as a major for the undergraduate level at my university, participating in the Google summer of code would be an encouragement to others who intend to enroll into this department. I am primarily a c/c++ programmer with special interest in computer graphics, computer networking, multi-threading and artificial intelligence.

Why Me

I have always had the interest of contributing to open-source and have made some contributions to BRL-CAD like development of a vrml-g converter. Working on the vrml-g converter has given me some experience on what geometry conversion is all about, thus higher chances of success in completing this project. I would also have the opportunity to gain more experience and learn lots of new things.

Why STEPcode

I choose STEPcode because having some experience contributing to BRL-CAD on geometry conversion and given that this project encourages cross collaboration between both STEPcode and BRL-CAD it would give me the opportunity to work with a wider range of experienced developers and also improve my knowledge of computer graphics.