ricaun.Autodesk.Forge.Oss.DesignAutomation
                                
                            
                                3.1.1
                            
                        
                            
                                
                                
                                    Prefix Reserved
                                
                            
                    dotnet add package ricaun.Autodesk.Forge.Oss.DesignAutomation --version 3.1.1
NuGet\Install-Package ricaun.Autodesk.Forge.Oss.DesignAutomation -Version 3.1.1
<PackageReference Include="ricaun.Autodesk.Forge.Oss.DesignAutomation" Version="3.1.1" />
<PackageVersion Include="ricaun.Autodesk.Forge.Oss.DesignAutomation" Version="3.1.1" />
<PackageReference Include="ricaun.Autodesk.Forge.Oss.DesignAutomation" />
paket add ricaun.Autodesk.Forge.Oss.DesignAutomation --version 3.1.1
#r "nuget: ricaun.Autodesk.Forge.Oss.DesignAutomation, 3.1.1"
#:package ricaun.Autodesk.Forge.Oss.DesignAutomation@3.1.1
#addin nuget:?package=ricaun.Autodesk.Forge.Oss.DesignAutomation&version=3.1.1
#tool nuget:?package=ricaun.Autodesk.Forge.Oss.DesignAutomation&version=3.1.1
Autodesk.Forge.Oss.DesignAutomation
PackageReference
<PackageReference Include="ricaun.Autodesk.Forge.Oss.DesignAutomation" Version="*" />
Requirements
- .NET 6 or later
- A registered app on the Autodesk Platform Service.
Dependencies
Configuration
By default the Forge credentials could be defined with the following environment variables:
APS_CLIENT_ID=<your client id>
APS_CLIENT_SECRET=<your client secret>
or
FORGE_CLIENT_ID=<your client id>
FORGE_CLIENT_SECRET=<your client secret>
Region
You can define the region of the bucket. Available regions
APS_CLIENT_BUCKET_REGION=<region>
or
FORGE_CLIENT_BUCKET_REGION=<region>
Custom
You can define a custom header to be sent with each Design Automation requests to the Forge API. The custom header is only enabled if the engine is deprecated.
APS_CLIENT_CUSTOM_HEADER_VALUE=<your custom header>
or
FORGE_CLIENT_CUSTOM_HEADER_VALUE=<your custom header>
The custom header follow pattern x-my-custom-header: engine value is {0}. (The value {0} is replaced with the engine+version.)
The header gonna be x-my-custom-header and the value engine value is Autodesk.Revit+2023 when using the engine Autodesk.Revit+2023.
Samples
This repository contains each sample of the Autodesk Step-by-Step Tutorial.
- Autodesk Tutorial for 3dsmax - DA_3dMax.cs
- Autodesk Tutorial for Autocad - DA_AutoCAD.cs
- Autodesk Tutorial for Inventor - DA_Inventor.cs
- Autodesk Tutorial for Revit - DA_Revit.cs
API Reference
The package use the namespace Autodesk.Forge.Oss.DesignAutomation.
DesignAutomationService
DesignAutomationService class contain the methods to interact with the Oss and Design Automation API.
Internally uses the ParameterArgumentService to convert a class with Attributes to convert in the Activity and WorkItem to send the request to the Design Automation API.
MaxDesignAutomationService
IDesignAutomationService designAutomationService = new MaxDesignAutomationService("AppName")
{
	EngineVersions = new[] { "2021" },
};
AutoCADDesignAutomationService
IDesignAutomationService designAutomationService = new AutoCADDesignAutomationService("AppName")
{
	EngineVersions = new[] { "24" },
};
InventorDesignAutomationService
IDesignAutomationService designAutomationService = new InventorDesignAutomationService("AppName")
{
	EngineVersions = new[] { "2021" },
};
RevitDesignAutomationService
IDesignAutomationService designAutomationService = new RevitDesignAutomationService("AppName")
{
	EngineVersions = new[] { "2021" },
};
Initialize
Initialize AppBundle by creating and uploading the zip file to the Design Automation.
await designAutomationService.Initialize("Path/AppBundle.zip");
Run
Create the Activity and run the WorkItem and wait for the result, use the Parameters class to define the parameters of the Activity and WorkItem.
bool result = await designAutomationService.Run<Parameters>();
bool result = await designAutomationService.Run<Parameters>((parameters) => {});
Parameters parameters;
bool result = await designAutomationService.Run<Parameters>(parameters);
Delete
Delete all the resources created by the Initialize and Run.
AppBundle and Activity gonna be deleted if exists.
await designAutomationService.Delete();
Parameters
The Parameters class is used to define the parameters of the Activity and WorkItem using the Attributes.
- ParameterInputAttribute- Define the input parameter of the- Activityand- WorkItem.
- ParameterOutputAttribute- Define the output parameter of the- Activityand- WorkItem.
ParameterInputAttribute
Base class ParameterActivityAttribute is used to update the Activity before send the request to the Design Automation API.
- ParameterActivityClearBundleAttribute- Clear the- AppBundlebefore update the- Activity.
- ParameterActivityInputArgumentAttribute- Define the input argument of the- Activity.
- ParameterActivityInputAttribute- Define the input parameter of the- Activity.
- ParameterActivityInputOpenAttribute- Define the input parameter of the- Activitywith- Openfile.
- ParameterActivityLanguageAttribute- Define the language of the- Activity.
- ParameterActivityScriptAttribute- Define the script of the- Activity.
ParameterWorkItemAttribute
Base class ParameterWorkItemAttribute is used to update the WorkItem before send the request to the Design Automation API.
- ParameterWorkItemTimeSecAttribute- Define the timeout of the- WorkItem.
- ParameterWorkItemStringAttribute- Define the string input in the- WorkItem.
- ParameterWorkItemXrefTreeAttribute- Define the- XrefTreeinput in the- WorkItem.
- ParameterWorkItem3LeggedTokenAttribute- Define the- adsk3LeggedTokentoken input in the- WorkItem. (- tokenis masked in the log.)
License
This project is licensed under the MIT License.
Do you like this project? Please star this project on GitHub!
| Product | Versions Compatible and additional computed target framework versions. | 
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. | 
- 
                                                    net6.0- Autodesk.Forge.DesignAutomation (>= 5.1.2)
- ricaun.Autodesk.Forge.Oss (>= 3.0.0)
 
- 
                                                    net8.0- Autodesk.Forge.DesignAutomation (>= 6.0.2)
- ricaun.Autodesk.Forge.Oss (>= 3.0.0)
 
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 3.1.1 | 216 | 2/21/2025 | |
| 3.1.0 | 171 | 1/24/2025 | |
| 3.0.0 | 197 | 12/18/2024 | |
| 2.1.0 | 165 | 12/13/2024 | |
| 2.0.0 | 280 | 8/20/2024 | |
| 1.0.8 | 395 | 12/7/2023 | |
| 1.0.7 | 245 | 10/4/2023 | |
| 1.0.6 | 277 | 8/26/2023 | |
| 1.0.5 | 316 | 8/9/2023 | |
| 1.0.4 | 336 | 6/30/2023 | |
| 1.0.3 | 315 | 6/17/2023 | |
| 1.0.2 | 319 | 5/31/2023 | |
| 1.0.1 | 295 | 5/31/2023 | |
| 1.0.0 | 281 | 5/30/2023 |