A comprehensive WPF-based sample application demonstrating how to integrate the Autodesk Data Exchange SDK's Connector UI components into a desktop application. This sample provides a complete reference implementation for building Windows applications that create and manage data exchanges.
- Overview
- Features
- Architecture
- Screenshots
- Prerequisites
- Installation
- Configuration
- Usage
- Project Structure
- Key Components
- Sample Data
- Testing
- API Reference
- Further Reading
- License
This sample application demonstrates the integration of the Autodesk Data Exchange SDK with a Windows desktop application using WPF. It showcases how to:
- Embed the Data Exchange Connector UI within your application
- Implement PKCE OAuth2 authentication with Autodesk Platform Services
- Create and manage data exchanges programmatically
- Handle multiple 3D file formats (STEP, IFC, OBJ, Mesh API)
- Provide real-time progress feedback and notifications
- Implement custom read/write models for exchange operations
Target Audience: Developers building Windows desktop applications that need to integrate with Autodesk's construction and design workflows.
- Integrate Data Exchange Connector UI within your WPF or WinForm application
- Real-time notifications and progress tracking
- Integrated 3D model preview for exchange selection
- PKCE OAuth2 implementation with APS (Autodesk Platform Services)
- Create new exchanges with custom metadata
- Update existing exchanges with new revisions
- Download and cache exchange data locally
- Search and filter exchanges with advanced criteria
The Connector UI provides a comprehensive workflow with four distinct screens:
- Home Screen: Entry point with project and exchange navigation
- Tooltip Notifications: Real-time feedback and status updates
- Create Exchange: Interactive creation workflow
- Exchange Management: Browse and manage existing exchanges
View and inspect 3D models directly within the Connector UI using the APS Viewer, without leaving the application interface.
Familiar search and selection interface that mirrors the user experience from Autodesk's hero applications like Revit, providing intuitive navigation and filtering capabilities.
- Visual Studio 2019 or later (recommended: Visual Studio 2022)
- .NET Framework 4.8 or .NET 8.0 SDK
- Windows 10 or later (x64 architecture)
-
APS Developer Account: Register here
-
Application Registration: Create an app with the following scopes:
- Data Management API
- Data Exchange API
-
Autodesk Construction Cloud: Active ACC account to store created exchange or load exchanges from
- Client ID: From your APS application
- Callback URL: Default:
http://127.0.0.1:63212/
git clone https://github.com/autodesk-platform-services/aps-dataexchange-connector.git
cd aps-dataexchange-connector
Follow the official SDK installation guide to add the NuGet package source in Visual Studio.
- Open
src/SampleConnector.sln
- Right-click on the solution → Restore NuGet Packages
- Build the solution (
Ctrl+Shift+B
)
Edit src/App.Debug.config
(for Debug builds) or src/App.Release.config
(for Release builds):
<configuration>
<appSettings>
<add key="AuthClientId" value="YOUR_CLIENT_ID" />
<add key="AuthCallback" value="http://127.0.0.1:63212/" />
<add key="ConnectorName" value="Your Connector Name" />
<add key="ConnectorVersion" value="1.0.0" />
<add key="HostApplicationName" value="Your Host App" />
<add key="HostApplicationVersion" value="1.0.0" />
<add key="LogLevel" value="Info" />
</appSettings>
</configuration>
Parameter | Description | Required |
---|---|---|
AuthClientId |
APS application Client ID | ✅ Yes |
AuthCallback |
OAuth2 redirect URI | ✅ Yes |
ConnectorName |
Display name for your connector | ❌ No |
ConnectorVersion |
Version of your connector | ❌ No |
HostApplicationName |
Name of your host application | ❌ No |
HostApplicationVersion |
Version of your host app | ❌ No |
LogLevel |
Debug, Info, Warning, Error | ❌ No |
- Build and run the solution from Visual Studio
- The application opens a web browser for APS authentication
- Sign in with your Autodesk credentials
- The Connector UI appears within the sample application
- Click Create Exchange in the UI
- Programmatically add metadata and properties (in your custom exchange model)
- Publish to Autodesk Construction Cloud
- View Exchanges: Browse existing exchanges from your ACC projects
- Update Exchanges: Add new revisions to existing exchanges
- Download: Retrieve exchange data in various formats
- Preview: View 3D models directly in the UI
Purpose: Core implementation of exchange operations
- Inherits from
BaseReadWriteExchangeModel
- Manages local exchange cache
- Handles progress notifications
- Implements geometry download/upload
- Programmatically retrieve and add data to exchange data model
Purpose: Utility for creating sample geometry and exchanges
- Supports multiple geometry formats
- Generates test exchanges with varied content
- Demonstrates best practices for element creation
Purpose: Main WPF window and application coordinator
- Initializes the Data Exchange SDK
- Configures authentication
- Hosts the Connector UI via
IInteropBridge
- Manages application lifecycle
- Authentication Flow: Test OAuth2 login/logout
- Exchange Operations: Create, update, and load exchanges
- UI Responsiveness: Verify progress indicators and notifications
Class | Namespace | Purpose |
---|---|---|
IInteropBridge |
Autodesk.DataExchange.UI.Core.Interfaces |
Main UI integration point |
ElementDataModel |
Autodesk.DataExchange.DataModels |
Geometry and metadata container |
IClient |
Autodesk.DataExchange.Interface |
Core SDK client |
DataExchange |
Autodesk.DataExchange.Core.Models |
Exchange data structure |
SDKOptionsDefaultSetup |
Autodesk.DataExchange |
Configuration setup |
- Autodesk Data Exchange SDK Documentation
- Autodesk Platform Services Developer Portal
- Data Exchange API Reference
- Console-based Data Exchange Sample - For non-UI implementations
- APS Tutorials - Additional platform samples
This sample code is part of the Autodesk Data Exchange .NET SDK beta program and is subject to the license terms covering the SDK. Please refer to the SDK license agreement for complete terms and conditions.
For technical support and questions:
- SDK Issues: Contact Autodesk Developer Support
- Sample Issues: Create an issue in this repository
- General Questions: Use the APS Developer Forum