AutoCAD 2027 ships with a new ObjectARX SDK. If you maintain C++ or .NET plugins for AutoCAD, this post covers what changed in the development environment, what the compatibility picture looks like, and where to find the full API delta.
Binary Compatibility & Development Environment
Not every AutoCAD release breaks compatibility. When two releases are binary compatible, a plugin compiled for the older one loads cleanly in the newer one without recompilation. AutoCAD 2027 is not binary compatible with 2026 or 2025 — a full recompile against new libraries is required.
| Release | Binary Compatible With | Windows — ObjectARX (C++) | Windows — Managed .NET | macOS |
|---|---|---|---|---|
| AutoCAD 2027 | 2027 only | VS 2026 v18.0, VC tools 14.44.35207 (recommended) VS 2022 v17.14.9 (C++ only) |
VS 2026 v18.0 + .NET 10.0 | macOS 15.4.1+, Xcode 16.3, Mono 6.1.2 |
| AutoCAD 2026 | 2026, 2025 | VS 2022 v17.10.4 | VS 2022 v17.10.4 + .NET 8.0 | macOS 14.3.1+, Xcode 15.4, Mono 6.1.2 |
| AutoCAD 2025 | 2025 only | VS 2022 v17.8.0 | VS 2022 v17.8.0 + .NET 8.0 | macOS 13.3+, Xcode 14.3, Mono 6.1.2 |
Note: Visual Studio 2022 (v17.14) uses the
v143toolset family but ships with MSVC toolset version 14.44.35207, which is sufficient to compile ObjectARX C++ projects for AutoCAD 2027. It cannot be used for Managed .NET development targeting AutoCAD 2027 — Visual Studio 2026 (v18.0, toolsetv145) is required for that.
Two version-specific identifiers to update in your build scripts:
- Linker library suffix:
26— e.g.acdb26.lib,acge26.lib,acui26.lib - Registry key:
R26.0(wasR25.1). Never hard-code this string — useacrxProductKey()orAcDbHostApplicationServices::getUserProductRegistryRootKey()at runtime.
Setting Up a C++ (ObjectARX) Project
ObjectARX applications are standard Windows DLLs compiled with an .arx extension. The project settings below are drawn from a typical SDK .vcxproj:
| Setting | Value |
|---|---|
| Configuration type | Dynamic Library (.arx output extension) |
| Platform toolset | v145 — Visual Studio 2026 (v18.0) uses the v145 toolset family.Visual Studio 2022 (v17.14) uses the v143 toolset family but includes MSVC toolset version 14.44.35207, which is sufficient to compile ObjectARX projects for AutoCAD 2027. |
| C++ language standard | stdcpp20 (C++20) |
| Conformance mode | true |
| Character set | Unicode |
| Additional include directories | $(ObjectARX)\inc;$(ObjectARX)\inc-x64 — both are required |
| Additional library directories | $(ObjectARX)\lib-x64 |
| Runtime library | Multi-threaded DLL (/MD) — set explicitly on release configs |
| Detect 64-bit Portability Issues | No — suppresses C4311 warnings from ObjectARX headers |
| Module definition file | $(ObjectARX)\inc\AcRxDefault.def — provided by the SDK, defines the required acrxEntryPoint and acrxGetApiVersion exports without a LIBRARY statement |
| Enable UAC | false |
| Additional dependencies | At minimum: rxapi.lib, acdb26.lib |
Note:
inccontains the common headers used across platforms;inc-x64contains 64-bit-specific headers. Both directories must be on the include path for a 64-bit ARX build.
Every ARX application must export two entry points. The minimal source and DEF file:
// main.cpp
#include "rxregsvc.h"
#include "acutads.h"
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* appId)
{
switch (msg) {
case AcRx::kInitAppMsg:
acrxUnlockApplication(appId); // allow unloading
acrxRegisterAppMDIAware(appId); // MDI-aware
acutPrintf("\nPlugin loaded.");
break;
case AcRx::kUnloadAppMsg:
acutPrintf("\nPlugin unloaded.");
break;
}
return AcRx::kRetOK;
}
Use AcRxDefault.def from the SDK’s \inc directory as the module definition file. It defines the required exports correctly and does not include a LIBRARY statement, so no rename is needed per project. Set it in the linker settings:
Linker → Input → Module Definition File
$(ObjectARX)\inc\AcRxDefault.def
Load the built .arx with (arxload "myapp"), the ARX command, or APPLOAD.
Setting Up a Managed .NET Project
The single most important change for 2027: managed applications must target .NET 10.0. AutoCAD 2025 and 2026 used .NET 8.0 LTS.
- Create a Class Library project in VS 2026 targeting .NET 10.0 (Long Term Support). Do not use the .NET Framework or Universal Windows variants.
- Edit the project file and set
TargetFrameworktonet10.0-windows, then add theFrameworkReference:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.WindowsDesktop.App" />
</ItemGroup>
</Project>
Note: If your project was on .NET 6 or earlier and never migrated to .NET 8, this
FrameworkReferenceelement is new — add it explicitly.
- Add references to
acdbmgd.dll,accoremgd.dll, andacmgd.dllfrom your AutoCAD installation. Set Copy Local = False for each — AutoCAD supplies them at runtime.
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
[assembly: CommandClass(typeof(MyPlugin.MyCommands))]
namespace MyPlugin
{
public class MyCommands
{
[CommandMethod("HELLO")]
public void HelloWorld()
{
var doc = Application.DocumentManager.MdiActiveDocument;
doc.Editor.WriteMessage("\nHello from .NET 10!");
}
}
}
Load the assembly in AutoCAD with the NETLOAD command, or add it to the startup suite via APPLOAD.
What’s New in the API
The 2027 SDK adds new members across the database (AcDb), geometry (AcGe), and runtime (AcRx) namespaces, new global utility functions, new MFC extension class methods, new constants, and removes several previously-deprecated members. The managed .NET libraries have been migrated to .NET 10 with a handful of new members and one removal.
The full, searchable API delta is on the Autodesk Help site:
- What’s New in Autodesk ObjectARX for AutoCAD 2027 (C++)
- What’s New in the Managed .NET API for AutoCAD 2027
A Few Things Worth Noting
Clean rebuild required. After updating your toolchain and library references, do a full clean rebuild — partial builds against old object files will fail at link time.
Clear the clipboard before LoadCatalogs(). Loading Tool Palette catalogs while ACTC clipboard data is present can crash AutoCAD. Clear it first:
IDataObject dataObj = System.Windows.Forms.Clipboard.GetDataObject();
if (dataObj.GetFormats().Any(f => f.Contains("ACTC")))
System.Windows.Forms.Clipboard.Clear();
ToolPaletteManager.Manager.LoadCatalogs();
Single-threaded only. ObjectARX does not support multi-threaded access. If your application spawns threads, ensure only one thread at a time touches the ObjectARX system.
Clear selection before aborting transactions.
acedSSSetFirst(NULL, NULL);
actrTransactionManager->abortTransaction();
.NET assemblies over a network cannot be loaded into AutoCAD without granting explicit trust permissions. Deploy locally.
Resources
- ObjectARX 2027 Release Notes
- Getting Started — C++ Developer’s Guide
- Setting Up an ObjectARX Project in Visual Studio
- ObjectARX and ObjectDBX Libraries Reference
- Getting Started — Managed .NET Developer’s Guide
- Create a New .NET Project
- What’s New — C++ API (2027)
- What’s New — Managed .NET API (2027)
- Tips and Techniques
- System Requirements

Leave a Reply