{"id":18153870,"url":"https://github.com/chuongmep/aps-toolkit","last_synced_at":"2025-04-14T14:21:55.182Z","repository":{"id":224528194,"uuid":"763490320","full_name":"chuongmep/aps-toolkit","owner":"chuongmep","description":"An Libray Unlock BIM Data With Autodesk Platform Services","archived":false,"fork":false,"pushed_at":"2025-03-11T08:26:56.000Z","size":62133,"stargazers_count":69,"open_issues_count":1,"forks_count":13,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2025-04-14T14:21:46.012Z","etag":null,"topics":["acc","ai","aps","aps-toolkit","autodesk-docs","autodesk-forge","automation","big-data","bim","bim360","data","data-analyst","data-science","database","forge","llm"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chuongmep.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2024-02-26T11:52:22.000Z","updated_at":"2025-03-26T19:16:32.000Z","dependencies_parsed_at":"2024-05-01T13:38:57.881Z","dependency_job_id":"724d4a39-ba7b-419e-9ff5-3ad16536f6d0","html_url":"https://github.com/chuongmep/aps-toolkit","commit_stats":null,"previous_names":["chuongmep/aps-toolkit"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chuongmep%2Faps-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chuongmep%2Faps-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chuongmep%2Faps-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chuongmep%2Faps-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chuongmep","download_url":"https://codeload.github.com/chuongmep/aps-toolkit/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248894949,"owners_count":21179154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["acc","ai","aps","aps-toolkit","autodesk-docs","autodesk-forge","automation","big-data","bim","bim360","data","data-analyst","data-science","database","forge","llm"],"created_at":"2024-11-02T03:08:19.178Z","updated_at":"2025-04-14T14:21:55.154Z","avatar_url":"https://github.com/chuongmep.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Platform](https://img.shields.io/badge/platform-Windows/MacOS/Linux-lightgray.svg) [![License: GNU v3](https://img.shields.io/badge/License-GNU-yellow.svg)](https://opensource.org/licenses/MIT)\n\n![ReSharper](https://img.shields.io/badge/ReSharper-2023-yellow) ![Rider](https://img.shields.io/badge/Rider-2023-yellow) ![Visual Studio 2022](https://img.shields.io/badge/Visual_Studio_2022-yellow) ![.NET Framework](https://img.shields.io/badge/.NET_6-yellow)\n\n[![Publish](../../actions/workflows/dotnet.yml/badge.svg)](../../actions)\n[![Nuget Version](https://img.shields.io/nuget/v/APSToolkit)](https://www.nuget.org/packages/APSToolkit)\n[![NuGet Downloads](https://img.shields.io/nuget/dt/APSToolkit.svg)](https://www.nuget.org/packages/APSToolkit/)\n\n![PyPI](https://img.shields.io/pypi/v/aps-toolkit?label=pypi%20aps-toolkit-python)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/aps-toolkit?label=pipy-download)\n\n\u003ca href=\"https://twitter.com/intent/follow?screen_name=chuongmep\"\u003e\n\u003cimg src=\"https://img.shields.io/twitter/follow/chuongmep?style=social\u0026logo=twitter\"\nalt=\"follow on Twitter\"\u003e\u003c/a\u003e\n\n## 🔩 APS Toolkit \n\nAPS Toolkit (Former is Forge) is powerful tool for developer,software enginner, AI engineer to explore `Autodesk Platform Services`(APS). It's built on top of [Autodesk.Forge](https://www.nuget.org/packages/Autodesk.Forge/) and [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json/). Forge Toolkit includes some features allow you to read, download and write data from `Autodesk Platform Services` and export to CSV, Excel, JSON, XML, etc.\n\n![APSToolkit](docs/APSToolkit.png)\n\n## ⚡ Features\n\n- [x] Read/Download SVF Model\n- [x] Read/Query Properties Database SQLite\n- [x] Read/Download Properties Without Viewer\n- [x] Read Geometry Data \n- [x] Read Metadata\n- [x] Read Fragments\n- [x] Read MeshPacks\n- [x] Read Images\n- [x] Export Data to CSV\n- [x] Export Data to Excel\n- [x] Export Data to Parquet\n\n## ⚙ Installation\n\n### .NET \n\nPlease follow latest update at [APSToolkit Nuget](https://www.nuget.org/packages/APSToolkit)\n\n```bash\n\u003cPackageReference Include=\"APSToolkit\" Version=\"1.*\" /\u003e\n```\n\n### Python \n\nPlease follow latest update at [APSToolkit Python](https://pypi.org/project/aps-toolkit/)\n\n```bash\npip install aps-toolkit --upgrade\n```\n\nBefore start you need setup your environment:\n\n```bash\nAPS_CLIENT_ID = \u003cyour client id\u003e\nAPS_CLIENT_SECRET = \u003cyour client secret\u003e\n```\nAdvanced setup for APS Toolkit environment:\n\n```bash\nAPS_REFRESH_TOKEN = \u003cyour refresh token\u003e\nAPS_ACCESS_TOKEN = \u003cyour access token\u003e\nAPS_CLIENT_PKCE_ID = \u003cyour client id\u003e\n```\n\n## ⭐ Getting Started\n\nI want export Revit Data To Excel 👇\n\n### .NET\n\n```csharp\nusing APSToolkit;\nusing Autodesk.Forge;\nusing APSToolkit.Database;\nusing APSToolkit.Auth;\nvar token = Authentication.Get2LeggedToken().Result;\nstring urn = \"\u003cDerivative URN\u003e\";\nvar RevitPropDbReader = new PropDbReaderRevit(urn, token);\nRevitPropDbReader.ExportAllDataToExcel(\"result.xlsx\");\n```\n\n### Python\n\n```python\nfrom aps_toolkit import Auth\nfrom aps_toolkit import PropDbReaderRevit\nauth = Auth()\ntoken = auth.auth2leg()\nurn = \"\u003cDerivative URN\u003e\"\nprop_reader = PropDbReaderRevit(urn, token)\ndf = prop_reader.get_data_by_category(\"Ducts\")\ndf.save_to_excel(\"result.xlsx\")\n```\n\n## 📚 Tutorials\n\n### .NET\n\nAll Tutorials are available under Jupyter Notebook at [.NET Tutorials](./docs/Tutorials)\n\n- [00. Jupyter Notebook And .NET Interactive](./docs/Tutorials/00.%20Jupyter%20Notebook%20And%20.NET%20Interactive.ipynb)\n- [01. Setup And Authentication](./docs/Tutorials/01.%20Setup%20And%20Authentication.ipynb)\n- [02. Explore Hubs - Projects - Items - URN](./docs/Tutorials/02.%20Explore%20Hubs%20-%20Projects%20-%20Items%20-%20URN.ipynb)\n- [03. Explore Versions Item and Derivative Urn](./docs/Tutorials/03.%20Explore%20Versions%20Item%20and%20Derivative%20Urn.ipynb)\n- [04. Explore General Metdadata With APSToolkit](./docs/Tutorials/04.%20Explore%20General%20Metdadata%20With%20APSToolkit.ipynb)\n- [04.01. Explore Revit Data With APSToolkit](./docs/Tutorials/04.01.%20Explore%20Revit%20Data%20With%20APSToolkit.ipynb)\n- [05. Explore Access APS Database And Execute Query](./docs/Tutorials/05.%20Explore%20Access%20Database%20And%20Query%20Items.ipynb)\n- [06. Explore SVF Format - Export SVF Viewer](./docs/Tutorials/06.%20Explore%20SVF%20-%20Export%20SVF%20Viewer.ipynb)\n- [07. Explore Update Revit Data Back To ACC](./docs/Tutorials/07.%20Explore%20Update%20Revit%20Data%20Back%20To%20ACC.ipynb)\n- [08. Explore Pull Data From ACC BIM360 API](./docs/Tutorials/08.%20Explore%20Pull%20Data%20From%20ACC%20BIM360%20API.ipynb)\n- [09. Explore Data Knowledge Use LLM Agent](./docs/Tutorials/09.%20Explore%20Data%20Knowledge%20Use%20LLM%20Agent.ipynb)\n- [10. Build Pipeline Data Process with APSToolkit](./docs/Tutorials/10.%20Build%20Pipeline%20Data%20Process%20with%20APSToolkit.ipynb)\n- [11. Visualization Data - Data Analyst](./docs/Tutorials/11.%20Visualization%20Data%20-%20Data%20Analyst.ipynb)\n- [12. Custom Python In .NET Interactive](./docs/Tutorials/12.%20Custom%20Python%20In%20.NET%20Interactive.ipynb)\n- [13. Custom Metadata Export](./docs/Tutorials/13.%20Custom%20Metadata%20Export.ipynb) \n\n\n### Python\n\nAll Tutorials are available under Jupyter Notebook at [Python Tutorials](./APSToolkitPython/Tutorials)\n\n- [00. Jupyter Notebook And Python](./APSToolkitPython/Tutorials/00.%20Jupyter%20Notebook%20And%20Python.ipynb)\n  - [00.01. Jupyter Notebook And Google Colab](./APSToolkitPython/Tutorials/00.01.%20Jupyter%20Notebook%20And%20Google%20Colab.ipynb)\n- [01. Setup And Authentication](./APSToolkitPython/Tutorials/01.%20Setup%20And%20Authentication.ipynb)\n- [02. Explore Hubs - Projects - Items - URN](./APSToolkitPython/Tutorials/02.%20Explore%20Hubs%20-%20Projects%20-%20Items%20-%20URN.ipynb)\n- [03. Explore Versions Item and Derivative Urn](./APSToolkitPython/Tutorials/03.%20Explore%20Versions%20Item%20and%20Derivative%20Urn.ipynb)\n- [04. Explore General Metdadata With APSToolkit](./APSToolkitPython/Tutorials/04.%20Explore%20General%20Metdadata%20With%20APSToolkit.ipynb)\n  - [04.01. Explore Revit Data With APSToolkit](./APSToolkitPython/Tutorials/04.01.%20Explore%20Revit%20Data%20With%20APSToolkit.ipynb)\n  - [04.02. Explore Compare Revit Data Versions](./APSToolkitPython/Tutorials/04.02.%20Explore%20Compare%20Revit%20Data%20Versions.ipynb)\n  - [04.03. Explore Acad Data With APSToolkit](./APSToolkitPython/Tutorials/04.03.%20Explore%20Acad%20Data%20With%20APSToolkit.ipynb)\n  - [04.04. Explore Navisworks Data With APSToolkit](./APSToolkitPython/Tutorials/04.04.%20Explore%20Navisworks%20Data%20With%20APSToolkit.ipynb)\n- [05. Explore Access Database And Query Items](./APSToolkitPython/Tutorials/05.%20Explore%20Access%20Database%20And%20Query%20Items.ipynb)\n- [06. Data Visualization - Analyst BIM Model](./APSToolkitPython/Tutorials/06.%20Data%20Visualization%20-%20Analyst%20BIM%20Model.ipynb)\n- [07. Explore Big Data Format Storage](./APSToolkitPython/Tutorials/07.%20Explore%20Big%20Data%20Format%20Storage.ipynb)\n- [08. Explore URL ACC Extract](./APSToolkitPython/Tutorials/08.%20Explore%20URL%20ACC%20Extract.ipynb)\n- [09. Explore SVF - Export SVF Viewer](./APSToolkitPython/Tutorials/09.%20Explore%20SVF%20-%20Export%20SVF%20Viewer.ipynb)\n\n## License\n\nMany source codes here are collected from open-source authors under the MIT License. Without their sharing and contributions, I wouldn't be able to do this. I am deeply grateful to them, and therefore, I hope that if you are using this tool, please thank them before thanking me and follow their licenses.\n\nThis project is licensed under the terms of the [gnu-gpl-v3.0](License). Some part of the project base on the licese follow the original project :\n\n- [forge-convert-utils](https://github.com/petrbroz/forge-convert-utils)\n- [UnityForgeImporter](https://github.com/chuongmep/UnityForgeImporter)\n- [forge-bucketsmanager-desktop](https://github.com/Autodesk-Forge/forge-bucketsmanager-desktop)\n- [ChoETL](https://github.com/Cinchoo/ChoETL)\n\n## Dependencies\n\n- [Autodesk.Forge](https://www.nuget.org/packages/Autodesk.Forge/) - The .NET SDK for Autodesk Forge.\n- [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json/) - Json.NET is a popular high-performance JSON framework for .NET.\n- [CsvHelper](https://www.nuget.org/packages/CsvHelper/) - Library to help reading and writing CSV files.\n- [EPPlus](https://www.nuget.org/packages/EPPlus/) - EPPlus is a .NET library that reads and writes Excel files using the Office Open XML format (xlsx).\n- [ChoETL](https://github.com/Cinchoo/ChoETL) - Cinchoo ETL is a code-based ETL framework for extracting data from multiple sources, transforming, and loading into your very own data warehouse in .NET environment. You can have data in your data warehouse in no time.\n- [SharpZipLib](https://github.com/icsharpcode/SharpZipLib) - SharpZipLib (#ziplib, formerly NZipLib) is a compression library for Zip, GZip, BZip2. \n- [Pandas](https://pandas.pydata.org/) - Pandas is a fast, powerful, flexible and easy to use open source data analysis and data manipulation library built on top of the Python programming language.\n- [Nuke](https://github.com/nuke-build/nuke) - Nuke is a cross-platform build automation system with C# DSL for tasks such as compiling code, copying files and folders, running unit tests, compressing files and building NuGet packages.\n\n## 👨‍🏫 Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## 🎁 Sponsors\n\n![](https://upload.wikimedia.org/wikipedia/en/thumb/0/08/JetBrains_beam_logo.svg/220px-JetBrains_beam_logo.svg.png)\n\nThanks [JetBrains](https://www.jetbrains.com/) for providing a free All product IDE for this project.\n\n---\n\n## Disclaimer\n\nThis is not an official Autodesk product to support for Autodesk Platform Services. Use it at your own risk. \n\nI'm not responsible for any data loss or any other issues caused by using this library, some features need require cost for using. Please read carefully the [Autodesk Forge](https://forge.autodesk.com/) and [Autodesk Platform Services](https://aps.autodesk.com/) terms of use. I'm just doing, testing , maintaining in free time, so feel free to contribute and make it better. \n\nUpdate : There is a new, official [Node.js/TypeScript SDK](https://github.com/autodesk-platform-services/aps-sdk-node) that's currently in beta but will be stabilized soon. That SDK will offer various benefits over forge-server-utils, for example, it will be easier to maintain and extend in the future as it's being auto-generated from OpenAPI specs. As soon as it's ready to use (which should be really soon), I would archive this project and point to the official SDK instead.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchuongmep%2Faps-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchuongmep%2Faps-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchuongmep%2Faps-toolkit/lists"}