Modelers that can be used with ODA SDKs

Vladimir Savelyev

February 07, 2019

The Modeler library is responsible for working with 3D models. It is used to read and write model data, to create new model objects (for example boxes, spheres, extrusions, etc.), to modify existing objects, and to render the objects.

ODA SDKs can be used with several different modeler libraries. The options are:

  • AcisBuilder (ModelerGeometry.tx) — Provided as a basic ODA SDK modeler and doesn’t require an additional fee.
  • Spatial ACIS® (SpaModeler.tx) — Commercial third-party library that should be purchased separately.
  • C3D (c3dModeler.tx) — Commercial third-party library that should be purchased separately.

All of the modelers can read and write .sat files and render a model in wireframe and shaded mode. In the case of ACIS and C3D modelers, Boolean operations and other 3dSolid methods will also work. Otherwise they return a “Not Implemented” status.

Spatial ACIS completely supports all surfaces of the .sat file format and has the widest set of functionality. Integration of 3D ACIS Modeler allows applications to:

More information is at

C3D Modeler for ODA products is a lightweight version of the full-featured C3D Modeler, and it supports the following functionality:

  • Create a sphere, box, frustum, torus, wedge, extrusion, pyramid, lofted solid, object, and more. (Available via methods in the OdDb3dSolid class.)
  • Perform Boolean operations between two solids.
  • Perform auxiliary functions for sections, slicing, interference checking, and more.

More information is at

AcisBuilder doesn’t support sweep by path, Boolean operations, fillet and some other advanced operations yet. But it is continuously developed, and this functionality is planned for future releases.

You can use some modeler commands in the “MODELER GEOMETRY” command group of the OdaMfcApp sample application. Just load the ModelerCommands.tx module.


AcisBuilder is built with ODA Kernel SDK. If you want to use the Spatial or C3D modeler, check the corresponding box in Project Generator:


In OdaMfcApp you can choose the modeler with the Tools -> Load Application dialog. First unload the currently used modeler by choosing it from list and clicking Unload. This is possible only if you didn’t perform a rendering yet, otherwise the module will be referenced and locked. Then click Load and choose the modeler you want to use.

You can change the currently used modeler with the following code:

// Try to load SpaModeler.tx
OdRxModule* pSpaModule = odrxDynamicLinker()->loadModule(OdSpaModelerModuleName);