How is document tolerance calculated when you open a STEP file?

I’m 99% certain that these were not the export settings used from the originating CAD program:


Where did Rhino get those 0.0508 and 1.0 numbers from?

If you Open a STEP file, Rhino reads the tolerance information supplied in the STEP file. Be warned that this can not always be trusted.
For many applications, the Units and Tolerances are just fields in an exporter, and not derrived from the file as it was modeled.

If you Import a STEP file, the Rhino tolerance is not overwritten. You should do a little testing to make sure objects are the correct size and tolerances. For tolerances, isolate a small part, Explode it, run RebuildEdges at default settings, then Join again.

Well, I know exactly what number we set in our exports, and it’s not the number that shows up in Rhino. Guess I’ll ask the same on their forum and see what the answer is.

Just to test, I exported the same file in IGES, and Rhino came up with a different number (and also “bad objects” after join).

This is a slightly different question.
You asked how Rhino gets the tolerance value when a file is OPENED.
I described how it is supposed to work.

You replied back with different details you did not include in your original post.
I will check that out today.

If I can repeat the problem, I’ll report it as a defect including the steps required and files if needed to repeat the problem.

If I can’t, I’ll ask you for specific files and steps to follow to reproduce the problem.

It’s possible the developer is doing something different now that I am not aware of. That happens too.

We’ll see where this goes.


Without an example I am unable to repeat the problem.
I drew a box and Twisted it 45 degrees to get a closed, solid, polysurface.
I did this in millimeters 0.001 tolerance, and inches in two different files.
In one I Exported and the other I used SaveAs, both using STEP AP214.

I OPENED the resulting STEP files and the tolerances settings were unchanged from what were set in Rhino.

Please supply a simple 3dm file and resulting exported STEP file that shows the problem.


I don’t get how you’d ever think a closed box that doesn’t even have any double curved surfaces or trimmed surfaces would ever reveal tolerance issues (especially since you even originated it from within Rhino)…

But anyway, I’ve uploaded the files I was testing to McNeel here and referenced this thread (please note that they are confidential, so don’t even show screenshots of them).

Both are exported from Siemens NX using 0.001 distance tolerance setting, and we tested them in Catia and had no issue during import and filleting.

Actually they did have compound curvature.
Did you not sse the 45 degree twist comment?Like this:

TwistBox.stp (24.9 KB)

Hopefully I’ll get a chance today to look at your NX files

I managed to catch the developer on a break.

This is the line in the NX STEP file that Rhino is using for model tolerance when Opening it:

#10025,‘DISTANCE_ACCURACY_VALUE’,‘Maximum Tolerance applied to model’);

Rhino tolerance:

1 Like

That’s super interesting, thank you!

I shall take this back to Siemens and see what they say.

(Also, yes, sorry I missed the twist, but I find that it’s often weird trim edges that cause “bad objects” and gaps in polysurfaces, wouldn’t you say?)

Indeed. Twists can be tricky, that’s why my simple example included one.
I should have included the image the first time.