This is Part 5 in our series, "Ben Houston's Ultimate Guide to 3D File Formats".
Should you use the STEP 3D file format? Like with all 3D file formats, it depends on what you are trying to do. Here, I will talk about the strengths and weaknesses of the STEP file format so you can decide if it is right the task at hand.
The STEP 3D file format is a data exchange format applied in the computer aided design (CAD) industry. It is primarily used to transfer real-world mechanical and architecture designs between different CAD software tools. Common CAD software tools that support STEP files include AutoCAD, Fusion, SolidWorks, OnShape, PTC Creo, CATIA and ArchiCAD.
A major reason for its popularity as a data exchange format is that it is an official international standard. It was standardized by ISO committee in 1994 under the official name “ISO 10303-21.” Being a standard makes it easier for the various CAD software tools to implement support for it.
Wide Support by CAD Tools
There is no other CAD format that has such wide adoption among professional CAD tools. There is no CAD tool that we know of that has significant usage that does not support the STEP file format. Thus if your goal to achieve wide interoperability with a large variety of CAD systems, this is by far the best format to use.
Mathematically Perfect Surface Definition
The STEP 3D file format stores its data using a mathematical representation of curves referred to as NURBS. The NURBs curve specification is capable of storing data with exact precision. This level of precision can not be achieved using the polygon and triangle representations utilized by visualization-oriented OBJ, FBX, glTF and USDZ. The NURBS representation is used by CAD files because it allows for the final manufactured creations to have perfectly smooth curves, like nicely rounded iPhone cases or beautiful sweeps on car bodies.
No Materials or Textures
The STEP file format is focused on the transfer of shape and form and not on visual appearance. This is partly because of its historical roots back in the mid-1990s when CAD systems were simpler. In the last decade CAD software tools have invested a significant amount of effort to support material on the CAD designed objects. For example, in an architectural design, the CAD tool may allow you to specify different surfaces to be concrete, or painted or stonework. In a mechanical CAD design, the CAD tool may allow you to specify surfaces as rubber, brass, steel or even a colored plastic. This material data is unfortunately not supported by the STEP format. Thus when using STEP to transfer data between CAD tools these rich material and texture assignments are lost.
No Lighting or Cameras
Similar to the reason that STEP does not contain material and texture data, it also doesn’t contain lighting nor camera information. Again it is because when the STEP file format was designed in the mid-1990s, CAD software tools were just focused on representing and transferring the shape of the objects being designed. This means that you can not represent camera or lighting setups in CAD files, where as you can in FBX and USDZ files.
Can’t be Directly Rendered
NURBS, the mathematical surface representation used by STEP 3D files, can not be directly rendered using a GPU nor can it be loaded by most renderers. Rather it needs to be processed by a software algorithm that converts the mathematical surface representation ito a series of triangles. These surface “tessellation” algorithms are very complex, especially if you want efficient and fast results. Often people license these algorithms rather than writing it from scratch.
Complex Format Requirements
The STEP file format is relatively complex. Its data representation is very similar to a software programming language with an order set of procedural calls that can reference other procedural calls specified earlier. The specification, while complex, is open and well documented. This means that while it is a lot of work to implement, it is possible to implement it perfectly given sufficient time and attention.
The STEP 3D file format is a very useful file format for data transfer between CAD tools and from CAD tools to other 3D tools for the purpose of visualization. Its ability to represent perfect mathematical surfaces means that it meets the needs of engineers who want their designs to be manufactured. But its inability to represent materials, textures, lighting means that a model when transferring to a visualization tool will mean that it will have to be reworked in order to be usable.
Learn more about about Threekit's 3D capabilities here.