CAD Customisation

CAD Customisation Using C#, C++, Python and APIs

The language you choose affects performance, maintainability and which CAD features you can reach. Here is how the main options compare.

Language support by CAD platform

PlatformC# / .NETC++PythonOther
AutoCADYes (.NET API)Yes (ObjectARX)Not officialAutoLISP, JavaScript
InventorYesVia COMVia COMiLogic, VBA
RevitYesNoDynamo / pyRevit—
FusionNoYesYesJavaScript (posts)
SOLIDWORKSYesYesVia COMVBA macros
PTC CreoLimitedYes (TOOLKIT)NoJava (J-Link), JavaScript
CATIA V5Via COMYes (CAA)Via COMVBA, CATScript
Siemens NXYesYesYesJava, 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

  1. Start from what the CAD platform supports best.
  2. Consider performance and depth of access needed.
  3. Think about who will maintain the code in five years.
  4. 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.

EM
ENGIMANDI CAD Team

We build CAD add-ins, automation and integrations for engineering and manufacturing companies worldwide.