AutoCAD Web Migration Guide¶
How to migrate ConstructiVision from AutoLISP/VLX (desktop-only) to AutoCAD Web and the Autodesk Platform.
Warning
AutoLISP is NOT compatible with AutoCAD Web
AutoLISP, Visual LISP, VLX, FAS, and ARX are desktop-only technologies. They cannot run in AutoCAD Web, AutoCAD mobile apps, or any cloud-based Autodesk product. A complete rewrite to JavaScript or .NET is required for web compatibility.
Compatibility Matrix¶
Technology |
AutoCAD Desktop |
AutoCAD Web |
AutoCAD Mobile |
|---|---|---|---|
AutoLISP (.lsp) |
✅ Yes |
❌ No |
❌ No |
Visual LISP (.vlx/.fas) |
✅ Yes |
❌ No |
❌ No |
ObjectARX (.arx) |
✅ Yes |
❌ No |
❌ No |
DCL Dialogs (.dcl) |
✅ Yes |
❌ No |
❌ No |
.NET (C#/VB) |
✅ Yes |
❌ No |
❌ No |
JavaScript API |
❌ No |
✅ Yes |
⚠️ Limited |
Forge/APS Design Automation |
N/A |
✅ Yes |
✅ Yes |
Migration Paths¶
Path 1: AutoCAD Web JavaScript API¶
Best for: Simple tools, UI customizations, lightweight automation
AutoLISP (.lsp) → Rewrite → JavaScript (AutoCAD Web API)
Capabilities:
Create/modify drawing entities
Custom UI panels
Event handling
Limited compared to desktop AutoLISP
Limitations:
No file system access
No external process execution
No COM/ActiveX
Subset of AutoCAD commands available
Path 2: Autodesk Platform Services (APS) Design Automation¶
Best for: Heavy processing, batch operations, server-side automation
AutoLISP (.lsp) → Convert → .NET Core → Deploy → APS Design Automation
Capabilities:
Full AutoCAD Core Console engine
Batch processing thousands of drawings
Server-side execution (no desktop required)
REST API integration
Requirements:
Rewrite to .NET (C#)
APS account and credits
Cloud infrastructure
Path 3: Hybrid (Desktop + Web)¶
Best for: Gradual migration, complex applications
Desktop: Keep VLX for power users
Web: JavaScript subset for basic features
Sync: Cloud storage (BIM 360, Autodesk Docs)
Step 1: Autodesk Developer Network (ADN) Membership¶
ADN provides technical support, early API access, and resources for serious development.
ADN Tiers¶
Tier |
Cost (Annual) |
Benefits |
|---|---|---|
ADN Open |
Free |
Forums, documentation, basic samples |
ADN Standard |
~$1,000 |
Technical support cases, API previews |
ADN Professional |
~$2,500 |
Priority support, beta programs |
Registration Process¶
Go to: https://aps.autodesk.com/
Create Autodesk Account (if not existing)
Navigate: Developer Portal → Join ADN
Select Tier: Start with ADN Open (free)
Complete Profile: Company info, development focus
Accept Agreement: ADN Terms of Service
What You Get¶
API Documentation: Full reference for all Autodesk APIs
Sample Code: GitHub repositories with examples
Support Forums: Community help from Autodesk engineers
Forge/APS Credits: Free tier for testing Design Automation
Beta Access: Early access to new APIs (higher tiers)
Step 2: Autodesk Platform Services (APS) Account¶
Formerly “Forge” — this is required for any cloud/web development.
Setup Process¶
Portal: https://aps.autodesk.com/
Sign In with Autodesk Account
Create Application:
Application Name: “ConstructiVision Web”
Description: Brief summary
Callback URL: Your app’s OAuth callback (e.g.,
https://yourapp.com/callback)
Get Credentials:
Client ID (public)
Client Secret (keep secure!)
Enable APIs:
Data Management API
Design Automation API
Model Derivative API (for viewing)
API Scopes¶
Scope |
Purpose |
|---|---|
|
Read files from cloud storage |
|
Write files to cloud storage |
|
Create new files/folders |
|
Design Automation (run AutoCAD in cloud) |
|
View converted models |
Step 3: Autodesk App Store Account¶
To distribute your application commercially or freely.
Publisher Registration¶
Go to: https://apps.autodesk.com/
Click: “Become a Publisher”
Complete Application:
Company/Individual name
Contact information
Tax information (W-9 for US, W-8BEN for international)
Bank account for payments (if selling)
Review Period: 5-10 business days
Approval Email: Publisher dashboard access granted
Publisher Agreement Highlights¶
Revenue Split: Autodesk takes 25% of paid app sales
Free Apps: No fees, but must meet quality standards
Content Rules: No malware, no IP infringement, must work as described
Support Requirement: You must provide user support
Step 4: Code Signing Certificate¶
Required for desktop AutoCAD plugins distributed via App Store.
Why Code Signing?¶
AutoCAD SECURELOAD: Warns/blocks unsigned code by default
Windows SmartScreen: Blocks unsigned EXE/DLL
App Store Requirement: Mandatory for submission
User Trust: Professional appearance, verified publisher
Certificate Types¶
Type |
Cost (Annual) |
Validation |
|---|---|---|
Standard Code Signing |
$200-400 |
Organization validated |
EV Code Signing |
$400-700 |
Extended validation, hardware token |
Recommended: EV Code Signing (better SmartScreen reputation)
Certificate Providers¶
Provider |
Standard |
EV |
|---|---|---|
DigiCert |
$474/yr |
$674/yr |
Sectigo (Comodo) |
$189/yr |
$319/yr |
GlobalSign |
$249/yr |
$449/yr |
SSL.com |
$139/yr |
$239/yr |
Purchase Process¶
Select Provider: (Sectigo/SSL.com for budget, DigiCert for reputation)
Choose Certificate Type: EV recommended
Validation Process:
Organization documents (business license, articles of incorporation)
Phone verification call
Domain verification (if applicable)
EV Additional: Notarized documents, hardware token shipped
Receive Certificate: 1-5 business days (Standard), 1-2 weeks (EV)
Signing Your Code¶
For ARX/DLL (Windows):
# Using signtool (Windows SDK)
signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "MyPlugin.arx"
# Verify signature
signtool verify /pa "MyPlugin.arx"
For VLX (AutoLISP): VLX files cannot be directly code-signed. Options:
Wrap in signed installer (MSI/EXE)
Use AutoCAD’s TRUSTEDPATHS instead of signing
Convert to .NET (which can be signed)
Step 5: Convert AutoLISP to JavaScript (Web)¶
AutoCAD Web JavaScript API Basics¶
// autocad-web-api.js
// Get the AutoCAD Web API
const Acad = window.Autodesk?.AutoCAD;
// Create a line (equivalent to LISP command "LINE")
async function createLine(startPoint, endPoint) {
const doc = await Acad.DocumentManager.MdiActiveDocument;
const db = doc.Database;
const line = new Acad.DatabaseServices.Line();
line.StartPoint = new Acad.Geometry.Point3d(startPoint[0], startPoint[1], 0);
line.EndPoint = new Acad.Geometry.Point3d(endPoint[0], endPoint[1], 0);
const btr = await db.GetModelSpace();
await btr.AppendEntity(line);
}
// Equivalent AutoLISP:
// (command "LINE" startPoint endPoint "")
Mapping AutoLISP to JavaScript¶
AutoLISP |
JavaScript (Web API) |
|---|---|
|
|
|
User input via HTML/Canvas |
|
|
|
Selection set API |
|
Entity property access |
|
HTML/CSS panels |
|
JavaScript |
What CANNOT Be Converted¶
AutoLISP Feature |
Web Limitation |
|---|---|
|
No external process execution |
|
No shell access |
|
No registry access |
|
No native plugins |
File I/O to local disk |
Browser sandbox |
COM/ActiveX |
Not available |
Step 6: Design Automation (Server-Side)¶
For heavy lifting that can’t run in browser.
Architecture¶
User (Browser)
↓
Your Web App (Node.js/Python/etc.)
↓
Autodesk Platform Services (REST API)
↓
Design Automation Engine (AutoCAD Core Console)
↓
Process DWG → Return Results
Setup Design Automation¶
1. Create App Bundle (.NET plugin):
// ConstructiVisionDA.cs
public class ConstructiVisionCommands
{
[CommandMethod("CVPROCESS")]
public void ProcessDrawing()
{
// Your ConstructiVision logic converted to C#
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
// Process panels, walls, etc.
}
}
2. Create Activity (defines what to run):
{
"id": "ConstructiVisionActivity",
"commandLine": "$(engine.path)\\accoreconsole.exe /i $(args[inputFile].path) /s $(settings[script].path)",
"parameters": {
"inputFile": { "verb": "get", "localName": "input.dwg" },
"outputFile": { "verb": "put", "localName": "output.dwg" }
},
"engine": "Autodesk.AutoCAD+24",
"appbundles": ["YourNickname.ConstructiVisionBundle+prod"]
}
3. Create WorkItem (job execution):
{
"activityId": "YourNickname.ConstructiVisionActivity+prod",
"arguments": {
"inputFile": { "url": "https://storage.../input.dwg" },
"outputFile": { "url": "https://storage.../output.dwg", "verb": "put" }
}
}
Pricing (APS Design Automation)¶
Tier |
Cloud Credits |
Cost |
|---|---|---|
Free |
100 credits/month |
$0 |
Pay-as-you-go |
Per credit |
~$0.04/credit |
Enterprise |
Volume |
Contact sales |
1 credit ≈ 1 minute of processing time
Step 7: App Store Submission¶
Submission Checklist¶
Working Application: Tested on target AutoCAD versions
Code Signed: All EXE/DLL/ARX signed with valid certificate
Icon: 400x400 PNG, clear and professional
Screenshots: 3-5 showing key features
Description: Clear, accurate, no misleading claims
Documentation: User guide or help file
Support URL: Where users can get help
Privacy Policy: If collecting any data
EULA: End user license agreement
Submission Process¶
Log in: https://apps.autodesk.com/Publisher
Create New App:
Title, description, category
Supported products (AutoCAD 2024, 2025, 2026, etc.)
Pricing (free or paid)
Upload Package:
ZIP/MSI containing your plugin
Must include installer or bundle structure
Add Assets:
Icon, screenshots, videos
Documentation files
Submit for Review:
Autodesk tests for malware, crashes, functionality
Review takes 5-10 business days
Address Feedback:
May require fixes before approval
Publish:
Goes live on App Store
App Bundle Structure¶
ConstructiVision.bundle/
├── PackageContents.xml # Manifest
├── Contents/
│ ├── ConstructiVision.dll # .NET plugin (signed)
│ ├── Resources/
│ │ ├── ConstructiVision.ico
│ │ └── help.html
│ └── Windows/
│ └── ConstructiVision.arx # Native plugin (signed)
└── README.txt
PackageContents.xml:
<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage
SchemaVersion="1.0"
ProductCode="{GUID-HERE}"
Name="ConstructiVision"
AppVersion="8.0.0">
<CompanyDetails Name="Your Company" />
<Components>
<RuntimeRequirements OS="Win64" Platform="AutoCAD" />
<ComponentEntry ModuleName="./Contents/ConstructiVision.dll" />
</Components>
</ApplicationPackage>
Timeline Estimate¶
Phase |
Duration |
Dependencies |
|---|---|---|
ADN Registration |
1-2 days |
Autodesk account |
APS Setup |
1 day |
ADN account |
Code Signing Certificate |
1-2 weeks |
Business documents |
Publisher Account |
5-10 days |
Tax documents |
Code Conversion (LISP → JS/.NET) |
2-6 months |
Developer resources |
Testing & QA |
1-2 months |
Converted code |
App Store Submission |
1-2 weeks |
All above complete |
Total |
4-9 months |
Cost Summary¶
Item |
One-Time |
Annual |
|---|---|---|
ADN Open |
- |
$0 |
ADN Standard |
- |
~$1,000 |
APS Account |
$0 |
$0 (free tier) |
Code Signing (EV) |
- |
~$300-500 |
Publisher Account |
$0 |
$0 |
App Store (25% of sales) |
- |
Variable |
Minimum Total |
$0 |
~$300-500 |
Decision Matrix: Desktop vs Web vs Design Automation¶
Requirement |
Desktop (VLX) |
Web (JS) |
Design Automation |
|---|---|---|---|
Complex geometry |
✅ Full |
⚠️ Limited |
✅ Full |
User interaction |
✅ Full |
✅ Good |
❌ Batch only |
File system access |
✅ Full |
❌ None |
⚠️ Cloud storage |
Offline use |
✅ Yes |
❌ No |
❌ No |
Batch processing |
⚠️ Slow |
❌ No |
✅ Excellent |
Installation required |
✅ Yes |
❌ No |
❌ No |
Cross-platform |
❌ Windows |
✅ Any browser |
✅ Any client |
Development effort |
Low (existing) |
High |
High |
Recommendation for ConstructiVision¶
Short-term (2026): Keep desktop VLX for existing users Medium-term (2027-2028): Develop Design Automation backend for batch operations Long-term (2029+): Web UI for basic panel design, DA for processing