{"id":37476312,"url":"https://github.com/ricaun-io/forge-api-dotnet-oss.design.automation","last_synced_at":"2026-01-16T07:22:02.434Z","repository":{"id":171067096,"uuid":"647354169","full_name":"ricaun-io/forge-api-dotnet-oss.design.automation","owner":"ricaun-io","description":"Autodesk Forge Oss + DesignAutomation for .NET 6.0","archived":false,"fork":false,"pushed_at":"2025-02-21T17:54:18.000Z","size":6104,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-17T04:34:05.321Z","etag":null,"topics":["autodesk","autodesk-designautomation","autodesk-forge","autodesk-platform-services"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ricaun-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ricaun-io"}},"created_at":"2023-05-30T15:42:03.000Z","updated_at":"2025-09-16T02:56:55.000Z","dependencies_parsed_at":"2024-08-21T01:01:17.504Z","dependency_job_id":"7035b0fc-fd53-49d6-b7d8-917f9f57cd2a","html_url":"https://github.com/ricaun-io/forge-api-dotnet-oss.design.automation","commit_stats":null,"previous_names":["ricaun-io/forge-api-dotnet-oss.design.automation"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/ricaun-io/forge-api-dotnet-oss.design.automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricaun-io%2Fforge-api-dotnet-oss.design.automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricaun-io%2Fforge-api-dotnet-oss.design.automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricaun-io%2Fforge-api-dotnet-oss.design.automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricaun-io%2Fforge-api-dotnet-oss.design.automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ricaun-io","download_url":"https://codeload.github.com/ricaun-io/forge-api-dotnet-oss.design.automation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricaun-io%2Fforge-api-dotnet-oss.design.automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autodesk","autodesk-designautomation","autodesk-forge","autodesk-platform-services"],"created_at":"2026-01-16T07:22:01.703Z","updated_at":"2026-01-16T07:22:02.403Z","avatar_url":"https://github.com/ricaun-io.png","language":"C#","funding_links":["https://github.com/sponsors/ricaun-io"],"categories":[],"sub_categories":[],"readme":"# Autodesk.Forge.Oss.DesignAutomation\n\n[![Visual Studio 2022](https://img.shields.io/badge/Visual%20Studio-2022-blue)](https://github.com/ricaun-io/forge-api-dotnet-oss.design.automation)\n[![Nuke](https://img.shields.io/badge/Nuke-Build-blue)](https://nuke.build/)\n[![License MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Build](https://github.com/ricaun-io/forge-api-dotnet-oss.design.automation/actions/workflows/Build.yml/badge.svg)](https://github.com/ricaun-io/forge-api-dotnet-oss.design.automation/actions)\n[![.NET 6.0](https://img.shields.io/badge/.NET%206.0-blue.svg)](https://github.com/ricaun-io/forge-api-dotnet-oss.design.automation)\n[![Nuget](https://img.shields.io/nuget/v/ricaun.Autodesk.Forge.Oss.DesignAutomation?logo=nuget\u0026label=nuget\u0026color=blue)](https://www.nuget.org/packages/ricaun.Autodesk.Forge.Oss.DesignAutomation)\n\n### PackageReference\n\n```xml\n\u003cPackageReference Include=\"ricaun.Autodesk.Forge.Oss.DesignAutomation\" Version=\"*\" /\u003e\n```\n\n### Requirements\n\n- [.NET 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) or later\n- A registered app on the [Autodesk Platform Service](http://aps.autodesk.com). \n\n### Dependencies\n\n* [forge-api-dotnet-oss](https://github.com/ricaun-io/forge-api-dotnet-oss)\n* [forge-api-dotnet-design.automation](https://github.com/Autodesk-Forge/forge-api-dotnet-design.automation)\n\n### Configuration\n\nBy default the Forge credentials could be defined with the following environment variables:\n\n```bash\nAPS_CLIENT_ID=\u003cyour client id\u003e\nAPS_CLIENT_SECRET=\u003cyour client secret\u003e\n```\n\nor\n\n```bash\nFORGE_CLIENT_ID=\u003cyour client id\u003e\nFORGE_CLIENT_SECRET=\u003cyour client secret\u003e\n```\n\n#### Region\n\nYou can define the region of the bucket. [Available regions](https://aps.autodesk.com/en/docs/data/v2/reference/http/buckets-POST/)\n\n```bash\nAPS_CLIENT_BUCKET_REGION=\u003cregion\u003e\n```\n\nor\n\n```bash\nFORGE_CLIENT_BUCKET_REGION=\u003cregion\u003e\n```\n\n#### Custom\n\nYou can define a custom header to be sent with each Design Automation requests to the Forge API.\n**The custom header is only enabled if the engine is deprecated.**\n\n```bash\nAPS_CLIENT_CUSTOM_HEADER_VALUE=\u003cyour custom header\u003e\n```\n\nor\n\n```bash\nFORGE_CLIENT_CUSTOM_HEADER_VALUE=\u003cyour custom header\u003e\n```\n\nThe custom header follow pattern `x-my-custom-header: engine value is {0}`. (The value `{0}` is replaced with the engine+version.)\nThe header gonna be `x-my-custom-header` and the value `engine value is Autodesk.Revit+2023` when using the engine `Autodesk.Revit+2023`.\n\n### Samples\n\nThis repository contains each sample of the [Autodesk Step-by-Step Tutorial](https://aps.autodesk.com/en/docs/design-automation/v3/tutorials/).\n\n* [Autodesk Tutorial for 3dsmax](https://aps.autodesk.com/en/docs/design-automation/v3/tutorials/3dsmax/) - [DA_3dMax.cs](Autodesk.Forge.Oss.DesignAutomation.Samples/DA_3dMax.cs)\n* [Autodesk Tutorial for Autocad](https://aps.autodesk.com/en/docs/design-automation/v3/tutorials/autocad/) - [DA_AutoCAD.cs](Autodesk.Forge.Oss.DesignAutomation.Samples/DA_AutoCAD.cs)\n* [Autodesk Tutorial for Inventor](https://aps.autodesk.com/en/docs/design-automation/v3/tutorials/inventor/) - [DA_Inventor.cs](Autodesk.Forge.Oss.DesignAutomation.Samples/DA_Inventor.cs)\n* [Autodesk Tutorial for Revit](https://aps.autodesk.com/en/docs/design-automation/v3/tutorials/revit/) - [DA_Revit.cs](Autodesk.Forge.Oss.DesignAutomation.Samples/DA_Revit.cs)\n\n## API Reference\n\nThe package use the namespace `Autodesk.Forge.Oss.DesignAutomation`.\n\n### DesignAutomationService\n\n`DesignAutomationService` class contain the methods to interact with the Oss and Design Automation API. \nInternally 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.\n\n#### MaxDesignAutomationService\n```csharp\nIDesignAutomationService designAutomationService = new MaxDesignAutomationService(\"AppName\")\n{\n\tEngineVersions = new[] { \"2021\" },\n};\n```\n#### AutoCADDesignAutomationService\n```csharp\nIDesignAutomationService designAutomationService = new AutoCADDesignAutomationService(\"AppName\")\n{\n\tEngineVersions = new[] { \"24\" },\n};\n```\n#### InventorDesignAutomationService\n```csharp\nIDesignAutomationService designAutomationService = new InventorDesignAutomationService(\"AppName\")\n{\n\tEngineVersions = new[] { \"2021\" },\n};\n```\n#### RevitDesignAutomationService\n```csharp\nIDesignAutomationService designAutomationService = new RevitDesignAutomationService(\"AppName\")\n{\n\tEngineVersions = new[] { \"2021\" },\n};\n```\n\n### Initialize\n\nInitialize `AppBundle` by creating and uploading the zip file to the Design Automation.\n\n```csharp\nawait designAutomationService.Initialize(\"Path/AppBundle.zip\");\n```\n\n### Run\n\nCreate the `Activity` and run the `WorkItem` and wait for the result, use the `Parameters` class to define the parameters of the `Activity` and `WorkItem`.\n\n```csharp\nbool result = await designAutomationService.Run\u003cParameters\u003e();\n```\n\n```csharp\nbool result = await designAutomationService.Run\u003cParameters\u003e((parameters) =\u003e {});\n```\n\n```csharp\nParameters parameters;\nbool result = await designAutomationService.Run\u003cParameters\u003e(parameters);\n```\n\n### Delete\n\nDelete all the resources created by the `Initialize` and `Run`. \n`AppBundle` and `Activity` gonna be deleted if exists.\n\n```csharp\nawait designAutomationService.Delete();\n```\n\n### Parameters\n\nThe `Parameters` class is used to define the parameters of the `Activity` and `WorkItem` using the `Attributes`.\n* `ParameterInputAttribute` - Define the input parameter of the `Activity` and `WorkItem`.\n* `ParameterOutputAttribute` - Define the output parameter of the `Activity` and `WorkItem`.\n\n### ParameterInputAttribute\nBase class `ParameterActivityAttribute` is used to update the `Activity` before send the request to the Design Automation API.\n* `ParameterActivityClearBundleAttribute` - Clear the `AppBundle` before update the `Activity`.\n* `ParameterActivityInputArgumentAttribute` - Define the input argument of the `Activity`.\n* `ParameterActivityInputAttribute` - Define the input parameter of the `Activity`.\n* `ParameterActivityInputOpenAttribute` - Define the input parameter of the `Activity` with `Open` file.\n* `ParameterActivityLanguageAttribute` - Define the language of the `Activity`.\n* `ParameterActivityScriptAttribute` - Define the script of the `Activity`.\n\n### ParameterWorkItemAttribute\nBase class `ParameterWorkItemAttribute` is used to update the `WorkItem` before send the request to the Design Automation API.\n\n* `ParameterWorkItemTimeSecAttribute` - Define the timeout of the `WorkItem`.\n* `ParameterWorkItemStringAttribute` - Define the string input in the `WorkItem`.\n* `ParameterWorkItemXrefTreeAttribute` - Define the `XrefTree` input in the `WorkItem`.\n* `ParameterWorkItem3LeggedTokenAttribute` - Define the `adsk3LeggedToken` token input in the `WorkItem`. (`token` is masked in the log.)\n\n## License\n\nThis project is [licensed](LICENSE) under the [MIT License](https://en.wikipedia.org/wiki/MIT_License).\n\n---\n\nDo you like this project? Please [star this project on GitHub](https://github.com/ricaun-io/forge-api-dotnet-oss.design.automation/stargazers)!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricaun-io%2Fforge-api-dotnet-oss.design.automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fricaun-io%2Fforge-api-dotnet-oss.design.automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricaun-io%2Fforge-api-dotnet-oss.design.automation/lists"}