Hi everybody,

is there anyone out there having experience with processing GD&T (Geometric Dimensioning and Tolerancing) information (for example from STEP using XDE)?

I tried to process a file ( expected to contain some tolerancing information within but without success...

I'm using OCC 6.3.0. I saw some comments on GD&T in the OCC 6.3.1 release notes. Does it work with OCC 6.3.1?

Any comments are welcome.

Thomas Paviot's picture

Hi Pawel,

I'm also interested in STEP data handling with OCC. I had a look to the sample STEP file you use, and also to the STEPAP214_* headers available in the /ros/inc directory.

For instance, the entity #98 is of type APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT. In the /ros/inc directory, you can see a header StepAP214_AppliedPersonAndOrganizationAssignment.hxx. I conclude (maybe too fast) that, for each entity defined in the EXPRESS file of the Application Protocol 214, there also is an OCC header to handle it.

However, if you consider the entity #5106, which is of type PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL, there is no header named StepAP214_PreDefinedGeometricalToleranceSymbol.hxx. I guess this part of the STEP file is purely ignored by the OCC parser. Did you get an error while parsing this file?

I guess the OCC dev team uses its own EXPRESS parser to generate the .idl or .hxx/.cpp files. What kind of parser is it? Is it complete, that is to say able to convert any STEP entity to an OCC class? If some entities are not covered by the OCC API, which ones and why? Could other AP be integrated to OCC (239-PLCS and 233-System Engineering are of a particular interest for me)?

Well, much more questions than answers in my post.


Pawel's picture

Hi Thomas,

I don't really have many answers either. However:

1. If you look at you will see they are still working on the topic (if there's anyone from CAX-IF reading this, please comment)... So I would not expect OCC to be an out of the box solution to work with a standard that's not really defined yet. That was also confirmed by the OCC team (I hope they don't mind me sharing this information).

2. A good starting point could be There you find a sample STEP file with tolerances and the STEP-NC Machine demo. You can use the application to load the file and see the tolerances. BTW the file can also be read using OCC. For some reason only some tolerances are read (although all necessary entities are defined in OCC headers, I guess) - I'm just about to investigate the problem.

3. Have a look at - could be interesting.

Anyway, in my case I don't have to rely on STEP. I'm just looking for a reliable mechanism to handle GD&T information.

I will surely look deeper into OCC. If there are any news I'll post here.


jelle's picture

hi Pawel,

using OCAF you can add arbitrary data to topology, but surely an OCC expert like you knows this, right?
so, I'm curious to know whether this might be a viable way to handle GD&T info.

anyway, its really great to see your interested in stepnc too, it seems very useful!


Pawel's picture

Hi Jelle,

using OCAF to store GD&T information is surely an option. However, it would be a pity to start an implementation if handling GD&T is going to become an integral part of OCC one day. The question is when?

Actually, GD&T is not necessarily connected with STEP-NC. What did you mean?