Skip to content

Release v0.0.4: Add Design Automation API support - #8

Merged
LeonardNoh merged 3 commits into
voidbox-ai:mainfrom
LeonardNoh:main
Oct 22, 2025
Merged

Release v0.0.4: Add Design Automation API support#8
LeonardNoh merged 3 commits into
voidbox-ai:mainfrom
LeonardNoh:main

Conversation

@LeonardNoh

Copy link
Copy Markdown
Contributor

Summary

Release py-aps v0.0.4 with comprehensive Design Automation API client and examples.

What's New

🤖 Design Automation API Client

Complete implementation of APS Design Automation (formerly Forge Design Automation) APIs:

  • Engines: List available engines (Revit, Inventor, AutoCAD, 3ds Max, Fusion 360)
  • AppBundles: Create, version, and manage custom plugins
  • Activities: Define automation workflows with parameters
  • WorkItems: Execute jobs with batch processing support
  • Service Limits: Query and manage quotas

📚 Documentation & Examples

  • Add automation/example.py with comprehensive smoke tests
  • Update README with Design Automation quick start examples
  • All examples integrate with auth client for token management
  • Collapsible version history in README

🔧 Module Improvements

  • Add automation/__init__.py with proper exports
  • Add automation/types.py for type-safe WorkItem/Activity/AppBundle specs
  • Support for presigned S3 form uploads
  • PKCE and token management integration

Key Features

  • Multi-Engine Support: Revit, Inventor, AutoCAD, 3ds Max, Fusion 360
  • AppBundle Management: Create, upload, version, and alias management
  • Activity Workflows: Define custom automation activities with parameters
  • WorkItem Execution: Single and batch job execution with polling
  • Type Safety: Dataclass-based specs for WorkItems, Activities, AppBundles
  • Presigned Uploads: S3 form upload support for AppBundle zip files
  • Region Support: us-east and eu-west regions

Files Changed

  • src/pyaps/automation/client.py (175 lines) - Design Automation API client
  • src/pyaps/automation/types.py (99 lines) - Type-safe dataclasses
  • src/pyaps/automation/example.py (367 lines) - Comprehensive examples
  • src/pyaps/automation/__init__.py - Module exports
  • README.md - Updated with automation examples and collapsible version history
  • pyproject.toml - Version bump to 0.0.4

PyPI Release

✅ Published to PyPI: https://pypi.org/project/py-aps/0.0.4/

Install with:

pip install py-aps==0.0.4
Example Usage
from pyaps.auth import AuthClient, Scopes
from pyaps.automation import AutomationClient

# Setup authentication
auth_client = AuthClient(client_id="...", client_secret="...")
token = auth_client.two_legged.get_token([
    Scopes.CODE_ALL, 
    Scopes.DATA_READ, 
    Scopes.BUCKET_CREATE
])

# Create automation client
auto = AutomationClient(token_provider=lambda: token.access_token)

# List available engines
engines = auto.list_engines()

# Create AppBundle
appbundle = auto.create_appbundle({
    'id': 'MyBundle',
    'engine': 'Autodesk.Revit+2023',
    'description': 'My Revit plugin'
})
auto.upload_appbundle_zip_from_create(appbundle, 'bundle.zip')

# Create Activity
activity = auto.create_activity({
    'id': 'MyActivity',
    'engine': 'Autodesk.Revit+2023',
    'commandLine': ['...'],
    'parameters': {...},
    'appbundles': ['Owner.MyBundle+prod']
})

# Execute WorkItem
workitem = auto.start_workitem({
    'activityId': 'Owner.MyActivity+prod',
    'arguments': {
        'inputFile': {'url': input_url, 'verb': 'get'},
        'outputFile': {'url': output_url, 'verb': 'put'}
    }
})

# Poll status
status = auto.get_workitem(workitem['id'])
Testing
✅ Successfully tested with live APS account
✅ Retrieved engines, appbundles, and activities
✅ All API examples execute without errors
✅ Package builds and installs successfully (32KB wheel, 27KB tarball)
Commits
53b4f62 DOCS: Make Version History collapsible
4f6e32f RELEASE: Bump version to 0.0.4
9cd93ec FEAT: Add Design Automation API examples (653 lines)
Total Changes
4 files changed (automation module)
653 lines added in automation commit
Successfully deployed to PyPI

Update automation module with auth integration, simplified examples without zip dependencies, and proper __init__.py exports.
Add Design Automation API support with comprehensive examples and update README.
@LeonardNoh
LeonardNoh merged commit 4e7b443 into voidbox-ai:main Oct 22, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant