What is an ASAT or ASAB file?
A SAT file stores ACIS entities such as bodies, faces and edges. An assembly, however, is built around a top-level assembly model that is not itself an entity, so it cannot be written to a plain SAT file. ASAT was introduced to solve this: it is a SAT-based format that records the assembly model, its sub-assemblies and component instances, and the part geometry they reference.
ASAT files (.asat) are written in ASCII text, while ASAB files (.asab) contain the same data in binary form. Binary files are smaller and faster to read and write, so ASAB is the usual choice in production, while ASAT is useful for debugging and for sharing test cases with support teams.
Monolithic vs. atomic assemblies
The ACIS Assembly Modeling component can save an assembly in two ways. Only monolithic files may use the .asat and .asab extensions, because they are designed to be read by any ACIS-based application.
| Save mode | How the assembly is stored | Typical use |
| Monolithic | All models of the assembly in a single ASAT or ASAB file | Exchanging complete assemblies with other applications |
| Atomic | The assembly split across several files so that sub-assemblies can be shared, for example one doorknob model reused by several doors | Managing reusable sub-assemblies inside one application, using its own file format and extension |
ASAT, ASAB, SAT and SAB compared
| Format | Content | Encoding |
| SAT (.sat) | Part data: bodies, geometry, attributes | Text |
| SAB (.sab) | Part data, same as SAT | Binary |
| ASAT (.asat) | Assembly model, product structure and part geometry | Text |
| ASAB (.asab) | Assembly data, same as ASAT | Binary |
What Is ASAT / ASAB Used For? Applications and Industry Use Cases
ASAT and ASAB are used when an ACIS-based application needs to keep a product as an assembly rather than as a single merged body: machines, equipment and other multi-part products whose hierarchy, component placement and reuse of parts matter for downstream work. A monolithic file lets a complete assembly travel from one ACIS-based tool to another in a single, portable file.
For software developers, ASAT and ASAB provide a ready-made persistence format for assemblies built with ACIS Assembly Modeling. They are also the target format when assemblies from other CAD systems are converted to ACIS while keeping their structure, instead of being flattened into one part.
Challenges or Common Pitfalls
Atomic saves require more work than monolithic ones. The application must provide its own file-handling logic to name and locate sub-model files, and the resulting files depend on that application, which is why they cannot use the standard ASAT and ASAB extensions. For a first integration, monolithic saves are the simpler and recommended option.
Not every assembly property has an equivalent in the format. Layers, instance-level color, instance-level units and attributes, suppressed or hidden states, hybrid assemblies and assembly cut features are not carried in ACIS assembly files, and mirror transforms need special handling.
When converting assemblies, it is also easy to end up with a flattened result by mistake. Translators often merge an assembly into a single part by default, so the conversion settings must explicitly request an assembly representation to obtain an ASAT or ASAB file.
How Spatial Helps
The Assembly Modeling component of the 3D ACIS Modeler provides APIs to save assemblies in monolithic or atomic mode and to restore both. For applications that only need to exchange ACIS data, 3D ACIS Exchange reads and writes SAT, SAB, ASAT and ASAB files and includes the Assembly Modeling APIs.
Our 3D InterOp SDK reads ASAT and ASAB files and writes monolithic ASAT and ASAB assemblies from ACIS R19 onwards. On import, it delivers the product structure and exact B-rep geometry, and it generates visualization data from that geometry.
When assemblies from other CAD formats are converted to ACIS, 3D InterOp can keep the hierarchy, assembly-level PMI, free parts at the root level and user-defined attributes at the root and sub-assembly levels. Mirrored instances are handled automatically by copying the instance and applying the transform to the copy.