Hi @brian
Before I can answer could you specify which STEP application protocol are you targeting?
What kind of data can be stored inside?
Another good question is are you trying to implement a seamless interface between CATIA / SW / Inventor and Rhino or simply exporter/importer.
It all depends on what you want Rhino to help the engineer with.
What will the data be used in Rhino for? Surface operations? Split, Trim, BooleanUnion, etc.
Currently, step files (coming from CATIA) and imported in Rhino create surfaces (or if you check the box to be joined in the importer gui), also polysurfaces.
There’s no solid object in Rhino. Bob also said we were never promised one.
If there was a solid object type all this might be much easier.
As a matter of fact if you try to implement an importer of an assembly from STEP (if the AP contains all the relations between the objects) into Grasshopper definition it will be much easier and with less loss of data because of the immutability of the components and the connections. Respectively, an exporter from Grasshopper with all dependencies and relations exported back to STEP.