Skip to main content

Prime Mesh Python client library 2026 R1 SP01

Reading and writing files

Last update: 29.04.2026

The FileIO class is used for all file-based data exchanges.

Native PMDAT format

PMDAT is the native file format for PyPrimeMesh. It contains all data associated with the active model.

This includes geometry, mesh, topology, controls, labels, and zones.

The model data can be read from and written to the PMDAT format using the FileIO.read_pmdat() and FileIO.write_pmdat() methods with parameters defined in the FileReadParams and FileWriteParams classes respectively.

from ansys.meshing import prime

# Start Ansys Prime Server and get the model
prime_client = prime.launch_prime()
model = prime_client.model

# Download and read an example PMDAT file
mixing_elbow = prime.examples.download_elbow_pmdat()
params = prime.FileReadParams(model=model)
prime.FileIO(model).read_pmdat(file_name=mixing_elbow, file_read_params=params)

Import CAD files

The FileIO.import_cad() method allows you to import CAD files and set parameters for importing files using the ImportCadParams class.

CAD reader routes

You can specify the import route for CAD files using the CadReaderRoute class.

params = prime.ImportCadParams(
    model=model, cad_reader_route=prime.CadReaderRoute.DISCOVERY
)
prime.FileIO(model).import_cad(file_name=mixing_elbow, params=params)

Alternatively, you can use the Mesh class in the Lucid API:

mesh_util = prime.lucid.Mesh(model=model)
mesh_util.read(file_name=mixing_elbow, cad_reader_route=prime.CadReaderRoute.DISCOVERY)

Five CAD import routes are available in PyPrimeMesh:

  • Program controlled: Chooses the CAD reader route based on the extension of the provided CAD file as follows:
    • Native for FMD, X_T, X_B, JT, PLMXML, and STL
    • Discovery for DSCO, SCDOC and SCDOCX
    • Workbench for all other extensions
  • Native: Natively supported file format extensions are FMD, Parasolid (X_T and X_B), JTOpen (JT and PLMXML), and STL.
  • SpaceClaim: Uses SpaceClaim to import supported CAD files from the SpaceClaim reader. Only the Windows platform supports importing files using the SpaceClaim reader. Ensure to install SpaceClaim for SpaceClaim reader.
  • Discovery: Uses Discovery to import supported CAD files from the Discovery reader. Only the Windows platform supports importing files using the Discovery reader. Ensure to install Discovery for Discovery reader.
  • Workbench: Uses Workbench to import supported CAD files from the Workbench reader. Ensure to install Workbench for Workbench reader.

To view the CAD files supported for the Workbench route on different platforms, see CAD Support on the Ansys website.

NOTE

  • Program controlled supports faceted data. Workbench supports BRep geometry(non-faceted) data. Discovery or SpaceClaim supports both BRep geometry and faceted data.
  • When deploying scripts using the Workbench CAD reader route, ensure that the user options for the installed application are consistent in the deployed environment.
  • When deploying scripts using the CAD configuration, ensure that the configuration is consistent in the deployed environment.
  • You must install and configure Workbench CAD readers or plug-ins (Ansys Geometry Interfaces) while installing Ansys Workbench.
  • To preserve shared topology, the Workbench CAD reader route must be used.
  • Patterned name selections are not supported for the SpaceClaim or Discovery CAD reader routes. To import patterned named selections, the Workbench CAD reader route can be used.

Append CAD files

The ImportCadParams.append parameter allows you to append a CAD file to the model:

params = prime.ImportCadParams(model=model, append=True)
prime.FileIO(model).import_cad(file_name="cad_to_append.dsco", params=params)

Alternatively, you can use the Mesh class in the Lucid API:

mesh_util = prime.lucid.Mesh(model=model)
mesh_util.read("cad_to_append.dsco", append=True)

Parametric CAD update

Parametric CAD update can be used while importing CAD files that have parameters defined that can be accessed by Workbench CAD readers.

This code gets existing CAD parameters while importing:

params = prime.ImportCadParams(model=model)
params.cad_reader_route = prime.CadReaderRoute.WORKBENCH
result = prime.FileIO(model).import_cad(file_name="parametric_cad.dsco", params=params)
>>> print(result.cad_parameters)

{'my_param': 1}

This code sets the parameters that are used for the import:

params = prime.ImportCadParams(model=model)
params.cad_reader_route = prime.CadReaderRoute.WORKBENCH
params.cad_update_parameters = {"my_param": 2}
result = prime.FileIO(model).import_cad(file_name="parametric_cad.dsco", params=params)
>>> print(result.cad_parameters)

{'my_param': 2}

Part management and creation

PyPrimeMesh has options for part management within the product structure while importing a CAD (Computer Aided Design) model. The CAD model is the top in product hierarchy. A CAD model can have one or more CAD assemblies. The CAD assembly or subassembly has different CAD parts. The CAD part has bodies or other geometric entities. Here is a typical CAD product structure from SpaceClaim:

image

The PartCreationType class decides whether to create a part per:

  • Model
  • Assembly
  • Part
  • Body

Model

When you import a CAD model and specify the PartCreationType parameter as MODEL, a single part is created that inherits its name from the CAD model name. The number of zones within the part is identical to the number of bodies within the CAD model.

image

Assembly

When you import a CAD model and specify the PartCreationType parameter as ASSEMBLY, a part per CAD assembly is created where the part name is inherited from the CAD assembly name. The number of zones within each part is identical to the number of bodies within the CAD assembly.

image

Part

When you import a CAD model and specify the PartCreationType parameter as PART, a part per CAD part is created that inherits the part name from the CAD part name. The number of zones within a part is identical to the number of bodies within the CAD part.

image

Body

When you import a CAD model and specify the PartCreationType parameter as BODY, a part per CAD body is created that inherits the part name from the CAD body name. The number of parts is identical to the number of bodies.

image

Import and export solver mesh files

Import solver mesh files

NOTE

All import methods have the optional parameter to append imported files to an existing model.

Export solver mesh files

NOTE

The FileIO.export_lsdyna_keyword_file() function is a beta API. The behavior and implementation might change in the future.

Read and write size field files

Native PSF format

Fluent Meshing format

The FileIO.import_fluent_meshing_size_field() method allows you to import Fluent Meshing’s size field (*.sf, *.sf.gz) file.

Connect with Ansys