entities forwards and backwards in the file (see entity #14 in the example above). Therefore the entire file has to be read into memory and tokenized before parsing. the format is not storage-efficient. For example assigning an RGB color code to an edge requires at least 6 other entities, and specifying a transformation requires at least 5 additional entities (PLANE, AXIS2_PLACEMENT_3D, a CARTESIAN_POINT, and 2 DIRECTION entities) the format is not well-defined. For example the same triangle can be encoded in a STEP file in many different ways (with FACET_BREP, ADVANCED_FACE, POLY_LOOP, EDGE_LOOP, as a MANIFOLD_SOLID_REPRESENTATION or as a SHELL_BASED_REPRESENTATION, etc.). An importer needs to recognize all variants in order to read a STEP file consistently. Most CAD software does not support the full set of STEP entries, and as such, are limited to a specific subset of STEP entities. For example Autodesk Knowledge Base, list of supported STEP entities. As a result, most CAD software have some sort of "Repair Geometry Data after Import" feature, which may or may not work. See also Industry Foundation Classes (IFC) Boundary representation IGES STL (file format) DXF Open CASCADE Technology - An Open Source STEP library which was used to build FreeCAD External links ANSI ISO-10303-21 - Official specification at ANSI STEP File Analyzer and Viewer - Analyze and view an ISO 10303 Part 21 STEP file Online STEP File Viewer STEP File Viewers STEPcode - Successor to NIST's STEP Class Library, the official C++ library to create STEP file importers and exporters References 021