{"id":51293084,"url":"https://github.com/autodesk-platform-services/aps-dotnet-blazor-samples","last_synced_at":"2026-06-30T12:03:12.524Z","repository":{"id":366799056,"uuid":"1174340660","full_name":"autodesk-platform-services/aps-dotnet-blazor-samples","owner":"autodesk-platform-services","description":"A sample .NET Blazor web application demonstrating how to use Autodesk Platform Services for AEC","archived":false,"fork":false,"pushed_at":"2026-06-23T10:55:48.000Z","size":134,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-23T12:41:52.830Z","etag":null,"topics":["aec","autodesk-data-management","autodesk-design-automation","autodesk-revit","blazor-server","csharp","sample"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/autodesk-platform-services.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-06T10:30:05.000Z","updated_at":"2026-06-23T10:55:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/autodesk-platform-services/aps-dotnet-blazor-samples","commit_stats":null,"previous_names":["autodesk-platform-services/aps-dotnet-blazor-samples"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/autodesk-platform-services/aps-dotnet-blazor-samples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-dotnet-blazor-samples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-dotnet-blazor-samples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-dotnet-blazor-samples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-dotnet-blazor-samples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autodesk-platform-services","download_url":"https://codeload.github.com/autodesk-platform-services/aps-dotnet-blazor-samples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autodesk-platform-services%2Faps-dotnet-blazor-samples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34965643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["aec","autodesk-data-management","autodesk-design-automation","autodesk-revit","blazor-server","csharp","sample"],"created_at":"2026-06-30T12:03:11.918Z","updated_at":"2026-06-30T12:03:12.511Z","avatar_url":"https://github.com/autodesk-platform-services.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Autodesk Platform Services .NET Blazor Samples\n\n![platforms](https://img.shields.io/badge/platform-windows%20%7C%20osx%20%7C%20linux-lightgray.svg)\n[![Automation API](https://img.shields.io/badge/Automation-v3-green.svg)](http://developer.autodesk.com/)\n[![Revit-2026](https://img.shields.io/badge/Revit%20API-2026-lightgrey.svg)](http://autodesk.com/revit)\n[![.NET](https://img.shields.io/badge/.NET-10.0-512BD4?logo=dotnet)](https://dotnet.microsoft.com/)\n[![C#](https://img.shields.io/badge/C%23-14.0-239120?logo=csharp)](https://docs.microsoft.com/en-us/dotnet/csharp/)\n[![license](https://img.shields.io/:license-mit-green.svg)](https://opensource.org/licenses/MIT)\n\n---\n\nA Blazor Server web application demonstrating how to use [Autodesk Platform Services (APS)](https://aps.autodesk.com/) with .NET 10. The sample showcases three key capabilities powered by the **APS Automation API** and **Data Management API**:\n\n- **Create Revit Models** – Programmatically create Revit cloud models inside Forma for Construction) projects.\n- **Manage Revit Links** – Add or remove Revit links between models using a visual link matrix.\n- **Create Sheets** – Batch-create sheets in Revit cloud models.\n\nThe app uses 3-legged OAuth to authenticate users via their Autodesk account, then lets them browse their hubs of Forma for Construction and projects through a folder explorer, configure automation jobs, and track their real-time status.\n\n![thumbnail](thumbnail.png)\n\n---\n\n\u003e **⚠️ Disclaimer**  \n\u003e This is a **vibe-coded sample solution** - an exploratory proof-of-concept developed iteratively. It demonstrates patterns and possibilities but may not follow all production-grade practices. This README was generated by **GitHub Copilot** based on analyzing the actual codebase, ensuring documentation matches implementation.\n\n---\n\n## Usage\n\n1. Sign in with your Autodesk account via the **Sign In** button on the home page.\n2. Choose one of the three workflows from the home page cards:\n   - **Create Revit Models** – select a project and target folder, fill in the model configuration, and submit.\n   - **Manage Revit Links** – select a project, build a link matrix between models, and apply it.\n   - **Create Sheets** – select a project and Revit model, define the sheet list, and submit.\n3. Track job progress on the corresponding tracking page; results are updated in real time.\n\nhttps://github.com/user-attachments/assets/8d185426-96b4-4d91-8dba-1b3a168ee8ce\n\n---\n\n## Development\n\n### Prerequisites\n\n- [Autodesk Platform Services app credentials](https://aps.autodesk.com/myapps/) (Client ID \u0026 Client Secret) with the following APIs enabled:\n  - Data Management API\n  - Forma for Construction API\n  - Automation API\n- A provisioned **Forma for Construction** account with at least one hub and project\n- **Automation Activity** deployed for [APS Automation API Revit MCP Tools Sample](https://github.com/autodesk-platform-services/aps-automation-api-revit-mcp-tools-sample)\n- [.NET 10 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/10.0)\n- A valid **Callback URL** registered on your APS app (e.g. `https://localhost:7000/api/auth/callback`)\n\n---\n\n### Steps to build and run the sample locally\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/autodesk-platform-services/aps-dotnet-blazor-samples.git\n   cd aps-dotnet-blazor-samples\n   ```\n\n2. **Configure app settings**\n\n   Open `appsettings.json` (or use [.NET User Secrets](https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets)) and fill in your credentials:\n\n   ```json\n   {\n     \"Forge\": {\n       \"ClientId\": \"\u003cyour-client-id\u003e\",\n       \"ClientSecret\": \"\u003cyour-client-secret\u003e\",\n       \"CallbackUrl\": \"https://localhost:\u003cport\u003e/api/auth/callback\",\n       \"AutomationActivity\": \"\u003cyour-activity-alias\u003e\"\n     }\n   }\n   ```\n\n   Using User Secrets (recommended):\n\n   ```bash\n   dotnet user-secrets set \"Forge:ClientId\" \"\u003cyour-client-id\u003e\"\n   dotnet user-secrets set \"Forge:ClientSecret\" \"\u003cyour-client-secret\u003e\"\n   dotnet user-secrets set \"Forge:CallbackUrl\" \"https://localhost:\u003cport\u003e/api/auth/callback\"\n   dotnet user-secrets set \"Forge:AutomationActivity\" \"\u003cyour-activity-alias\u003e\"\n   ```\n\n3. **Run the application**\n\n   ```bash\n   dotnet run\n   ```\n\n   Navigate to `https://localhost:\u003cport\u003e` in your browser.\n\n---\n\n### Deployment\n\nWhen deploying to a hosting environment (e.g. Azure App Service):\n\n- Set the four `Forge:*` values as environment variables or application settings.\n- Ensure the **Callback URL** registered on your APS app matches the deployed URL.\n- Automation API workitems use ngrok-style HTTP callbacks on the `/da` path — configure any reverse proxy to pass that path through without HTTPS redirection.\n\n### Known limitations\n\n- Job status is stored in-memory; restarting the application clears pending job history.\n- The Automation API activity must already exist and be published before running the sample.\n\n### Additional resources\n\n- [Autodesk Platform Services documentation](https://aps.autodesk.com/developer/documentation)\n- [Automation API](https://aps.autodesk.com/en/docs/design-automation/v3/developers_guide/overview/)\n- [Data Management API](https://aps.autodesk.com/en/docs/data/v2/developers_guide/overview/)\n\n---\n\n## License\n\nThis sample is licensed under the terms of the [MIT License](LICENSE). Please see the [LICENSE](LICENSE) file for full details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk-platform-services%2Faps-dotnet-blazor-samples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautodesk-platform-services%2Faps-dotnet-blazor-samples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk-platform-services%2Faps-dotnet-blazor-samples/lists"}