Overview

In 2022, ISO published the third edition of STEP AP242 and our libraries are ready for the latest full-fidelity semantic tolerances, tesselated models and point cloud data, UUIDs introduced by new STEP files, as well as the CAD assemblies with full-fidelity brep solid geometry that made STEP indispensable since 1995.

The third edition of STEP-NC AP238 was also published in 2022, and our libraries are ready for the new definitions for digital twin manufacturing, machine tool kinematics, integration with AP242, and machining process enhancements. STEP-NC AP238 has proven itself as the new machine control data for aerospace work. Our material removal simulator has been used in parallel robotic drill-and-fill tests, other libraries are being used by machine tool vendors for process integration, and we continue to rapidly respond to our customer needs with 30-40 point releases every year.

IFC continues to evolve, and recent IFC technical meetings have included thousands of attendees. Our libraries match the latest IFC 4x3, with continued automatic migration of older IFC4 and IFC 2x3 data. IFC translators now create advanced geometry previously only in STEP and our IFC mesher has expanded to match, now computing boolean removals and voids, and ready to reduce the cost of construction by allowing building projects to be assembled digitally for testing before delivery.

Very large STEP and IFC product models are now common, and we continue to evolve our graphics core to handle them. Over the past two years, our viewers have improved to handle models an order of magnitude larger, up to multi-gigabyte sizes, with faster meshing, smooth spinning, and coverage over more types of geometry.

AP242 Tolerance Model

All STEP Tools® software users get a common core of libraries with additional libraries and tools targeted at your particular application. Our knowledge of these standards is unmatched across the industry. Whatever your goal, we provide the tools that you can rely on to reach it.

We add new definitions to the libraries and tools as they become available, expand our meshers for STEP and IFC in conjunction with the CAD systems as they move to new types of geometry, and leverage the latest Part 21 Edition with new anchors and URL references, pack the most data in memory, with the best application performance. This includes the security and stability of thirty years of testing.

The STEP Tools® software stack is available on Windows, Linux, and Mac, including the new Apple M1/M2 platform, with others available upon request. We have also added support for Visual Studio 2022, and combined ARM/Intel universal libraries for simpler Mac building.

STEP CAD Exchange

STEP Stack

The third edition of AP242 covers 400 new definitions for semantic tolerances, additive setup, improved tesselated models and point cloud data, new types of hole features, annotated 3D model equivalence (A3M), and electrical wire harness.

These new definitions are on top of the 533 definitions added by the original edition for kinematics, assembly constraints, and PMI, so STEP now has over nine hundred new definitions beyond what AP214 and AP203e2 could handle.

Build a STEP importer or exporter with our libraries, read and write STEP models using C++ classes for the latest AP242e3 definitions or older AP203/AP214 models. Create meshes for visualization or analysis, build or use STEP assemblies, tolerances, and CAD geometry.

Use STEP Explorer to view geometry, assemblies, and semantic tolerances in the latest AP242 models with a completely reworked graphics core for fast performace on very large assemblies and files containing millions of instances. Our STEP checking and browsing tools to warn about potential problems in files, find and correct them.

The STEP components:

Meshing and Viewing a large assembly

The STEP Programming API has C++ classes for every type of data that can be found in a STEP file, whether it was written by an AP203 system in 1995, or the most modern AP242 third edition translator in 2022. The C++ classes make it easier to program with IDE tool tips and strong compiler type checking. You can read any STEP file, and write files for use with the latest features by the latest applications or for compatibility with older ones. STEP applications are also simple to package, with no need for extra runtime support.

The API also provides a mesher for STEP models that converts Brep geometry into triangular meshes for viewing or analysis. The mesh has full associativity back to the original geometry, so you can associate tolerances and PMI, or select faces in a viewer. The meshing API is now simpler, meshes are built faster, particularly for spline surfaces, and gives better results with offset surfaces, open loops, and singularities in UV space. Save meshes as AP242 tesselated models, JSON, XML, STL, Additive manufacturing file (AMF) or 3D Manufacturing Format (3MF).

This release has new product and shape indexes that simplify work with assemblies and give quick access to the assembly structure, geometry and transforms. Other groups of functions provide high-level operations to make or query STEP tolerance and PMI annotations, presentation, units, measures, and contexts. This release adds functions for making and interpreting STEP dates and functions to simplify migration to AP242.

STEP Stack

STEP sample projects help you get started quickly, with programs to facet assemblies, make STL from STEP, build b-rep geometry, make new assemblies, and traverse existing assemblies.

The latest AP242 tolerances and PMI are easy to create or use with the High Level Tolerance API. These functions are callable in .NET or Node.js and work with face callouts, geometric tolerances, dimensions, datums, and the wide range of modifiers supported by AP242 second edition!

Our STEP Viewing tools show the geometry, assemblies, and tolerances as 3D display, so you can see the contents as intended. This release handles the latest AP242 Second Edition tolerances and has a completely reworked graphics core for an order of magnitude faster performace than previous releases!

Analyze STEP files and test them for correctness with the STEP Check and Browse tool. You can batch check files or explore the contents interactively using the built-in web server. Build instance graphs, follow links forwards and backwards between objects, see the range of types in the file, look at the EXPRESS schema definitions, and browse STEP files that are hundreds of megabytes in size! The stack also includes batch checkers customized for AP214, AP209, and AP203.

Applications can also work with older IGES models using our IGES Read/Write API. This C++ library has classes for all definitions in IGES 5.3 and contains special routines to read and write that data in IGES formatted files.

STEP-NC CAM Exchange

STEP-NC CAM Stack

The third edition of STEP-NC AP238 publishes improvements developed during 15 years of testing with new definitions for digital twin manufacturing, machine tool kinematics, integration with AP242, and machining process enhancements.

This edition combines additive and subtractive manufacturing with measurement so that turbine blades can be repaired more quickly and accurately, or teams of robots can cooperate during the assembly of complex structures such as air frame wings.

The improvements and testing makes AP238 ready for CAM to CAM data exchange. The Digital Manufacturing Implementation Forum is now working to enable this data exchange with support from STEP Tools® software. There will be four meetings in 2023, with the first focus on data exchange of toolpaths.

Manufacturing industry needs CAM to CAM data exchange so that experts can define solutions for new materials and tooling. The solutions can be developed by cutter vendors and other manufacturing specialists and sent to users for integration into their CAM systems.

Sending the data as AP238 enables the deployment in the CAM system. In the CAM system it can be verified in the context of other operations, included in work instruction generation, and posted using trusted and tested tools. The alternate of sending the solution as Gcode for cut and paste on the machine tool is very risky.

STEP Tools has developed multiple tools to enable CAM data exchange. The STEP-NC DLL is an API that can read, write and verify AP238 data. A manufacturing simulator has been developed that uses AP238 as its native data format. The simulator integrates AP242 tolerances so that results can be checked for different tooling. Each tolerance can be verified to ensure its requirements are being met.

To help you get started quickly, the stack contains source code for several sample projects. The Hello World project creates a very simple process which you can customize with with your own semantics or to integrate data from other sources, like CAD models for your tools, raw stock, or final workpiece. The Print Tool Moves and Print Workingsteps projects demonstrate how to iterate over an as-planned process, reacting to the tool changes, operation changes, and individual tool moves. The Generate example builds on these projects and shows how to drive different machine tools from an AP238 process.

CAM Process Exchange

IFC BIM Exchange

IFC Stack

With our IFC BIM tools, you can build an IFC importer or exporter for your product, read and write any IFC model using C++ classes for the latest IFC4 or IFC2x3 definitions, create meshes for visualization or analysis, build or navigate IFC assemblies, geometry, and relationships.

We have updated our APIs for the latest IFC 4x3 ADD1 schema, extended our mesher to compute boolean removals and voids, and continued to refine parallel operation on trimmed spline surfaces and the full range of swept profiles. We also added a new product structure index that makes it easy to work with the IFC assembly relations (aggregates, contained in spatial structure) and continue to simplify work with placements, units and other common model structures.

Our IFC viewer displays building geometry and spatial structure, product structure and containment, computes boolean removals, clipping, and voids relationships. We have added support for dozens of new types of geometry and a completely reworked graphics core for fast performace on very large assemblies and files containing millions of instances. Our checking and browsing tools warn about potential problems in files and help you find and correct them.

Some of the IFC components we provide:

IFC Viewing With Computed Voids, Product Structure, and BuildingStorey Transparency

The IFC Programming API has C++ classes for every type of data that can be found in IFC files, from the latest IFC4x3 through IFC4, and IFC2x3. The C++ classes make it easier to program with IDE tool tips and strong compiler type checking. You can read any STEP file, and write files for use with the latest features by the latest applications or for compatibility with older ones. IFC applications are also simple to package, with no need for extra runtime support.

The API also provides a mesher that converts IFC geometry into triangular meshes for viewing or analysis. The mesh has full associativity back to the original geometry and product structure. The meshing API supports 35 more types of geometry including b-reps with trimmed surfaces, which are new to IFC4.

IFC sample projects help you get started quickly. Sample programs show how to create meshes for an IFC spatial structure, transform the components into the proper position in space, Create an IFC building with a simple block shape, GUIDs, owner history, units, and basic spatial structure. Create a standard wall and attache property sets and quantities to it. Recursively prints an IFC assembly — the spatial structure beginning with the IfcProject root. Find and print the properties associated with each IfcWall instance in an IFC file.

Analyze IFC files and test them for correctness with the IFC Check and Browse tool. You can batch check files or explore the contents interactively using the built-in web server. Build instance graphs, follow links forwards and backwards between objects, see the range of types in the file, look at the EXPRESS schema definitions, and browse IFC files that are hundreds of megabytes in size!

Applications can also process structural steel definitions using the CIMsteel Integration Standard with the CIS/2 EXPRESS API. This C++ library has classes for all definitions in the Logical Product Model for CIS/2. As with the IFC EXPRESS, classes make it easier to program with IDE tool tips and prevent type mismatches.

Digital Twins for Manufacturing

Digital Twin Stack

The new Python API opens our STEP-NC and STEP libraries to a new generation of lightweight applications for streaming data, building digital threads, and applying machine learning to manufacturing. Our Digital Twin tools for desktop and web display 3D part models for machining workpiece, tools, CNC, as well as removal simulation, PMI annotations, MTConnect positional data, QIF face status, and other aspects of a Digital Twin on the Digital Thread. The stack includes:

Use these interfaces to move data to and from the digital thread, drive machine tools, feed metrology or analysis with twin models, or any other use case of the ISO 23247 digital twin framework.

Applications can use the APIs to:

Robot Drill and Fill with Digital Twin

Core Capabilities

Core Capabilities

Our core libraries and tools are the foundation for your demanding digital twin and data exchange applications. These libraries read, write, and manipulate models described by EXPRESS schemas, which define the structures and constraints for STEP, STEP-NC, IFC, CIS/2, DSTV and other protocols.

Build applications with C++ classes generated from EXPRESS schemas for fast access and strong compiler type checking, advanced search and traversal features such as USEDIN, late-bound operations using the EXPRESS data-dictionary, perform CAD math for transforms, meshes, and other spatial operations, and control STEP physical files.

The ROSE Math API provides common engineering math operations. The API provides definitions for the mesh structures used by the STEP and IFC Meshers. It also has vector arithmetic and coordinate system transform functions, unit conversion, and bounding box resources. It also has utilities for writing mesh data to STL, AMF, 3MF, XML and JSON structures. In this release we also added a variety of date and time functions for working with ISO 8601 timestamps.

The ROSE Core API contains the foundation classes for EXPRESS structures and the framework for grouping these objects as models in memory that you can read or write to files. This API is fast and solid, with over twenty five years of use and stress testing in commercial CAD applications with thousands of the most abusive files that our corporate customers could find.

The library reads and writes the latest 2017 third edition of the Part 21 file format, which adds a new ANCHOR section for externally visible names. ZIP archives are now defined for STEP data, and the UTF-8 encoding for string data is now allowed. The ROSE Core API handles these new capabilities transparently.

AP242 metrology applications are using the ANCHOR section to assign UUIDs to semantic tolerances for coordination with QIF and MTConnect. The example below shows some tolerances with UUIDs:

ISO-10303-21;
HEADER;
FILE_DESCRIPTION( (''), /* New Part 21e3 level */ '4;1');
FILE_NAME( [ ... Usual Header ...]);
FILE_SCHEMA (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF 
  { 1 0 10303 442 1 1 4 }'));
ENDSEC;

ANCHOR;
/* UUIDs for instances in the file */
<eb6fa56d-d799-47c8-af74-41fc1ae53e4c>=#10;  /* product_definition */
<c1e3e57c-e2ba-443d-a7bb-552d91bcfb56>=#972;  /* datum_feature */ 
<f4671b18-a842-491f-a9c3-0142e56ff848>=#776;  /* flatness_tolerance */ 
<8491e775-ec2d-4228-a874-591c82dea200>=#740;  /* datum */ 
ENDSEC;

DATA;
#10=PRODUCT_DEFINITION('','',#16,#28);
#11=PRODUCT_DEFINITION_SHAPE('','',#10);

[ ... ]

#740=DATUM('','',#11,.F.,'B');
#741=SHAPE_ASPECT_RELATIONSHIP('','',#972,#740);

[ ... ]

#776=FLATNESS_TOLERANCE('','',#777,#930);
#777=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.1),#754);

ENDSEC;
END-ISO-10303-21;

Platforms and Compilers

The STEP Tools® Development Stack is available for the operating systems and compiler combinations shown below. This release adds support for Visual Studio 2022, Mach-O universal libraries for ARM and Intel on MacOS, and updates our Linux compiler support for all distros currently in LTS back to RHEL7.

Platform Supported Compilers
Windows 10/11 32bit Visual Studio 2022 (VC++ 17), Visual Studio 2019 (VC++ 16), Visual Studio 2017 (VC++ 15), Visual Studio 2015 (VC++ 14), Visual Studio 2013 (VC++ 12), Visual Studio 2012 (VC++ 11), with the /MD option. Library versions for static and DLL linking.
Windows 10/11 64bit Visual Studio 2022 (VC++ 17), Visual Studio 2019 (VC++ 16), Visual Studio 2017 (VC++ 15), Visual Studio 2015 (VC++ 14), Visual Studio 2013 (VC++ 12), Visual Studio 2012 (VC++ 11), with the /MD option. Library versions for static and DLL linking.
MacOS 11+, M1/M2 ARM and Intel 64bit Clang (Xcode 12.0) with Mach-O universal libraries for ARM and Intel. Library versions for plain and position-independent static linking, and dynamic linking.
Linux Intel 64bit GCC 4.8 and newer, which covers all distros currently in LTS back to RHEL7. Library versions for plain and position-independent static linking, and dynamic linking.

Contact us to arrange other platforms or configurations. See the installation notes for Windows, MacOS, and Linux for details on each platform, library versions, C++ compilers and build flags.

The STEP Tools® libraries use several open source packages.