Skip to content

Autodesk/moldflow-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Moldflow API

PyPI version Python versions License CI

Moldflow API is a Python wrapper library for the Synergy API, designed to simplify interactions with Autodesk Moldflow Synergy. This library provides a clean, pythonic interface to Moldflow's simulation capabilities, making it easier to integrate Moldflow functionality into your Python applications.

Prerequisites

Before you begin, ensure you have:

  • Windows 10/11
  • Python 3.10.x - 3.14.x
  • Autodesk Moldflow Synergy 2026.0.1 or later

Install

python -m pip install moldflow

Quick Start

from moldflow import Synergy

# Initialize the API
synergy = Synergy()

# Example: Get version information
version = synergy.version
print(f"Moldflow Synergy version: {version}")

See the full documentation for more in-depth examples.

For Development

1. Clone the Repository

git clone https://github.com/Autodesk/moldflow-api.git

2. Navigate to the Repository

cd moldflow-api

3. Set Up Development Environment

python -m pip install -r requirements.txt
pre-commit install

Usage

Building the Package

python run.py build

Building the Documentation

python run.py build-docs

The documentation version switcher (switcher.json) is automatically generated from git tags during the build process. Only tagged versions are included by default to ensure all links work correctly.

Options:

  • --skip-build (-s): Skip building before generating docs
  • --local (-l): Build documentation locally for a single version (skips multi-version build)
  • --skip-switcher: Skip generating switcher.json (useful for offline builds or custom switcher configurations)
  • --include-current: Include current working tree version from version.json in switcher (useful during development before tagging)
  • --incremental: Only build versions that don't have existing output directories (speeds up development by skipping already-built versions)

Debug command: To manually generate switcher.json without building docs:

python run.py generate-switcher

Development workflow: When working on a version bump before tagging:

# Build docs including your current unreleased version
# This will:
#  1. Build all tagged versions via sphinx_multiversion
#  2. Build current working tree version via sphinx
#  3. Add current version to switcher.json as latest
python run.py build-docs --include-current

Note: By default, if version.json contains a version newer than the latest git tag, it will be validated but NOT added to the switcher (to prevent broken links). Use --include-current to build and include it during development, or create a git tag to include it permanently.

Fast development iteration:

# First build (builds all versions)
python run.py build-docs --include-current

# Subsequent builds (only rebuilds current version, skips existing tagged versions)
python run.py build-docs --include-current --incremental

How --incremental works:

  • Checks which version directories already exist in docs/build/html/
  • For missing tagged versions: checks out each tag, builds docs, then restores your branch
  • For current version (with --include-current): only builds if directory doesn't exist
  • Useful during development to avoid rebuilding all historical versions every time

The documentation can be accessed locally by serving the docs/build/html/ folder:

cd docs/build/html
python -m http.server 8000

Then open http://localhost:8000 in your browser. The root automatically redirects to the latest version documentation.

Versioned Documentation:

  • Each git tag creates a separate documentation version (e.g., /v26.0.5/)
  • A /latest/ directory points to the newest version
  • Root (/) automatically redirects to /latest/
  • Run git fetch --tags before building to ensure all version tags are available

Running the Formatter

python run.py format

Options:

  • --check: Check the code formatting without making changes

Running Lint Checks

python run.py lint

Options:

  • --skip-build (-s): Skip building before linting

Running Tests

python run.py test
Option Alias Description
<tests>... - Test files/directories path
--marker -m Marker [unit, integration, core]
--skip-build -s Skip building before testing
--keep-files -k Don't remove the .coverage files after testing [for report generation]
--unit - Run Unit Tests
--core - Run Core Functionality Tests
--integration - Run Integration Tests
--quiet q Simple test output

Flag Combinations

Flag Combination Runs Unit Runs Core Runs Integration Runs Custom Marker
Default (no flags)
--unit
--core
--integration
--unit --core
--unit --integration
--core --integration
--unit --core --integration
--all
--marker foo ✅ (foo)
--unit --marker bar ✅ (bar)
--integration --marker baz ✅ (baz)

Running specific test files

python run.py test tests/api/unit_tests/test_unit_material_finder.py

API Documentation

For detailed API documentation, please visit our online documentation.

Key modules include:

  • synergy: Main interface to Moldflow Synergy
  • study_doc: Study document management
  • mesh_editor: Mesh manipulation and analysis
  • material_finder: Material database interactions
  • plot: Results visualization

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to contribute to this project. Here's a quick overview:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests (python run.py test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Versioning

We use Semantic Versioning. For available versions, see the tags on this repository.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Support

Code of Conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.

About

Python interface for Autodesk Moldflow

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages