Language support by CAD platform
| Platform | C# / .NET | C++ | Python | Other |
|---|---|---|---|---|
| AutoCAD | Yes (.NET API) | Yes (ObjectARX) | Not official | AutoLISP, JavaScript |
| Inventor | Yes | Via COM | Via COM | iLogic, VBA |
| Revit | Yes | No | Dynamo / pyRevit | — |
| Fusion | No | Yes | Yes | JavaScript (posts) |
| SOLIDWORKS | Yes | Yes | Via COM | VBA macros |
| PTC Creo | Limited | Yes (TOOLKIT) | No | Java (J-Link), JavaScript |
| CATIA V5 | Via COM | Yes (CAA) | Via COM | VBA, CATScript |
| Siemens NX | Yes | Yes | Yes | Java, Knowledge Fusion |
"Via COM" means the application can be automated through its COM interface from that language, but it is not the primary supported route.
C# and .NET
Best for: most desktop add-ins for Autodesk products, SOLIDWORKS and NX.
- Modern language, excellent tooling and debugging.
- Rich UI with WPF, easy database and web API access.
- Large talent pool and good long-term maintainability.
C++
Best for: maximum performance, deep access and platforms where C++ is the main API (ObjectARX, Creo TOOLKIT, CATIA CAA).
- Custom objects and entities in AutoCAD (ObjectARX).
- Heavy geometry processing on large models.
- Longer development time and stricter version compatibility.
Python
Best for: Fusion add-ins, NX Open journals, Revit scripting through pyRevit or Dynamo, and data processing around CAD.
- Fast to write, great for prototypes and scripts.
- Huge ecosystem for data, Excel and AI.
- Less suitable where the platform does not officially support it.
# Fusion API: list all bodies in the active design
import adsk.core, adsk.fusion
def run(context):
app = adsk.core.Application.get()
design = adsk.fusion.Design.cast(app.activeProduct)
names = [b.name for b in design.rootComponent.bRepBodies]
app.userInterface.messageBox("\n".join(names))
VBA, AutoLISP and iLogic
These are ideal for quick automation by power users. For company-wide tools, we usually move proven scripts into C# add-ins for better UI, deployment and support.
How to choose
- Start from what the CAD platform supports best.
- Consider performance and depth of access needed.
- Think about who will maintain the code in five years.
- Keep business rules in a portable layer where possible.
The best language is the one the platform supports well and your team can maintain.
Multi-language CAD expertise
ENGIMANDI works in C#, C++, Python, Java, VBA and AutoLISP across all major CAD systems. Learn more about our AutoCAD API development and CAD customisation services.