Clean STEP Data: The Unromantic Skill of Exchanging Models Between CAD Systems

Nobody gives you a medal for a clean STEP file, and yet I have spent more hours of my career wrestling with broken ones than on almost anything else. The pattern is always the same. The customer sends a model, the translator swallows it, and the part appears on screen looking utterly harmless — until you measure it and find it is in millimetres where you work in inches, or the flange you need to mate is a single giant spline with no single flat face, or a sheet body floats in space twenty millimetres above where it belongs. The sales engineer shrugs, the project pauses, and someone with a tired face starts the fifteen-hour rebuild. I have been that tired face. This article is the checklist I wish someone had handed me the first time.

Why STEP is still the least bad answer

Before the checklist, a short defence of STEP, because every multi-CAD shop eventually has this argument. Native formats are wonderful when both sides run the same software and the same version, and they are a hostage situation otherwise. IGES is the grandfather format and it stays alive mainly because old machines and old suppliers will not let it die, but its trimmed surface handling is a museum piece. STEP is not perfect either — but it is the only neutral format wide enough that three different CAD products can read and write it without one of them doing the translation twice.

Format Good at Painful at My verdict
Native (same CAD) Everything Nothing — if versions match Best, but only when both sides match
STEP AP214 Solids, colours, product structure PMI and complex history My default for mechanical parts
IGES Legacy surfaces and old suppliers Trimmed geometry, precision drift Last resort for very old partners
Parasolid/X_T Clean B-rep on same engine Not universal, license history Great when the partner is licensed

The practical consequence: when I am the one setting up the exchange protocol with a partner, I ask three questions in order. Do we share the same CAD and version? Then send native. Do we share the engine family? Then consider the kernel format. Otherwise, STEP AP214 with a one-page exchange agreement, and the agreement is what saves the project, as we are about to see.

The one-page exchange agreement that prevents 90 percent of trouble

Almost every STEP disaster I have seen shares the same root cause: nobody agreed in writing what the file should contain. So before the first file moves, I type out a short agreement and send it to the partner. It is genuinely one page, and it says five things. First, the units — millimetres, and the STEP file must state them inside the file, not silently assume them. Second, the coordinate system — global origin, what axis is up, and where the part is positioned relative to that origin, because a part that is correct but parked two metres away in a giant global grid is a part that will break an assembly. Third, whether we need the B-rep history or a dumb solid; for most of my interface work I want a dumb solid without construction history, because history translates badly and a clean solid mates faster. Fourth, whether sheet bodies are allowed or everything must be solid, because a sheet body that looks like a face in the preview is a gap in the assembly. Fifth, what the deliverable is — STEP AP214, not AP203, for parts, because AP214 carries the product structure and colours we actually use.

That agreement has taken me from a world where every file was a gamble to a world where I can open a partner model and trust it. If a file still surprises me, I have a written standard to point at, which is much easier than a phone conversation about who forgot what at 6 p.m.

What to check in the first five minutes of opening

When the STEP lands, I do a five-minute inspection before I let it anywhere near an assembly. First, the measurement sanity check: I measure one known feature and compare it with the drawing, like a hole that should be Ø 18 mm or a boss height of 24.5 mm. If the numbers are off by a factor of 25.4, the units are the problem and I stop right there — translating a part after the fact is legal but dangerous, because dimensions that were toleranced in the original now move to places their author never intended.

Second, the bounding box and origin. I read the reported extents and the coordinates of the first vertex, and I compare them with the expected position. A part that should sit at the origin but arrives at x=381,543 mm tells me the partner exported from a full machine layout, and I need to ask for the isolated component rather than fight the coordinate drift in my own assembly.

Third, the body check. I look for the body count and the face count in the feature tree, and I glance at whether the model is one solid or a pile of separate sheets. If I have eight sheet bodies where I expect one solid, I do not start repairing yet — I go back to the partner and ask them to export a single solid, because repairing their export in my tool is a permanent tax on every future exchange.

Fourth, and this is the one I am most stubborn about: the precision. STEP stores a tolerance value per file, and translators differ in what they write. A file that arrives with a sloppy tolerance can show gaps between faces that look like they should touch, and no amount of pretty rendering fixes a real gap. I check the stated precision against my own model tolerance before I trust mating.

A STEP file is a promise about geometry, and the terms of the promise are in the options dialog, not in the email.

When the model is broken, repair in this order

No matter how good the agreement, occasionally a model arrives with a defect that has to be fixed locally, usually because the deadline will not wait for a round trip. I have a strict order of repair, because the order determines whether I am patching for an hour or rebuilding for a day.

  1. Repair the import defaults first: change the tolerance, the stitch gap, and the healing options, and re-import. This fixes more than half of all “broken” models and costs ten minutes.
  2. Heal surfaces and knit solid bodies next. One model I fix per month is a casting whose imported body has a dozen hairline gaps along the split lines; the knit tool closes them if the gaps are under tolerance, and I refuse to accept a model that a heal pass cannot close.
  3. Trims and edge extensions after that: the famous “onder-extended surface” where two faces should meet but do not quite reach each other. Extending and trimming one face by hand is fine for one feature; if it is everywhere, that is a translator failure and it goes back to the sender.
  4. Only as a final, documented act do I rebuild a feature: replace a lost fillet, redraw a hole that collapsed, re-create a thread that came in as a smooth bore. Every rebuild gets logged in my exchange notes, because a rebuilt feature is no longer exactly what the sender intended, and the next engineer must know it.

I keep a small fraction of my soul for the day I rebuilt three hundred and forty holes on a valve body because the translator dropped every helical thread as a plain bore. It took two days. The drawing said the threads were M14 x 1.5. I could see them in the original file. The partner’s export options had quietly excluded threads, and nobody read the option dialog until it was too late. That is the story I tell when someone says exporting is boring.

Pitfalls I have paid real money to learn

Pitfall How it shows up Prevention
Units assumed, not stated Part is 25.4x too small or large Put mm in writing; verify one measurement on open
Exported from full machine layout Part sits thousands of mm from origin Ask for isolated component; agree origin in the sheet
Threads and holes excluded Bores arrive as plain holes State what must be preserved in the agreement
Sheet bodies passed as solids Invisible gaps in the assembly Require solid bodies only
Sloppy file precision Faces that should touch have gaps Check stated tolerance; align with your model precision
History translated as garbage Exploding feature tree, slow assemblies Request dumb solids for interface work

The one habit that pays for this whole article

If I could leave you with a single habit, it is this: keep an exchange log. A simple table with the date, the part, the sender, the CAD of both sides, the export options used, what was verified, and what had to be repaired. It sounds like admin, but it is the one thing that turns a chaotic multi-CAD relationship into a predictable one. After three exchanges with the same supplier, my log tells me exactly which options to demand and which checks to run, and the fourth exchange is silent and boring — which, in this corner of engineering, is the highest praise.

Good exchange protocol is not glamorous, and it will never make a slide deck for the marketing team. But it is the difference between a supplier relationship that ships on time and one that dies in a call about a flange that will not mate. The flange does not care what software drew it. The tiniest bit of written discipline about units, origin, and options is what actually makes it fit.

A multi-CAD story you can smell from here

We once ran a project where our team designed the head on one CAD platform and a partner designed the body on another, and the two halves had to meet on a flat face with twelve tapped holes and a locating spigot. The first exchange was a comedy of errors. The body arrived in inches while our drawing was in millimetres, the spigot was a full 1.5 mm smaller than the hole on our side, and the tapped holes had arrived as smooth bores because the partner’s export had dropped the thread definitions. Rebuilding the bodies took three days, and the meeting where we all stared at a hole that was the wrong size will stay with me, because the fix was not engineering at all. It was the exchange agreement we had not written.

On the second project with the same partner we had the one-pager in place. Units: millimetres. Origin: spigot centre at world zero on the parting plane. Content: solid bodies only, threads included as modeled features, no construction history, STEP AP214. We received the first sample, ran the five-minute check, and everything lined up within 0.05 mm. The whole interface mated on the first attempt. Nobody sent a single angry email. That boring result was the best engineering outcome of that entire year, and it lived entirely in a file format option dialog and one short document.

When to refuse the exchange entirely

There is a professional judgment call hiding in all of this, and I want to be honest about it. Sometimes the right answer is not a better STEP file, it is no exchange at all. If the geometry is so complex — sculpted surfaces, dozens of blend chains, precision-critical mating — that translation will corrupt it, the responsible move is to keep the design in one CAD family and exchange drawings and fixture data instead, or to build a shared neutral model that stays authoritative.

I have walked away from exchanges exactly twice in my career, both times over geometry that simply did not survive translation. The projects cost a little more in coordination, and they cost far less than a steady drip of silent, millimetre-level corruption inside a quality-critical assembly. You should not hear that as an excuse to hoard your models; rather, hear it as the boundary that makes the honest exchange cases work better. When you know why you are exchanging — and when you are not — the everyday STEP handshake becomes a routine you can trust.

So the actual skill this whole article is really about is not clicking export. It is being the person who writes down the rules before the first file moves, who measures once before trusting, and who keeps the little log that turns chaos into pattern. If you do that, the unromantic STEP file becomes the most dependable colleague in your whole multi-CAD room. I would take a dependable translator over a charming native format any day, and I have earned that opinion the hard way, one missing flange at a time.