{"id":18249856,"url":"https://github.com/codecavepro/revitless-toolkit","last_synced_at":"2025-04-05T05:06:22.699Z","repository":{"id":41135494,"uuid":"73641614","full_name":"CodeCavePro/revitless-toolkit","owner":"CodeCavePro","description":"A cross-platform toolkit for reading metadata of .rfa, .rvt etc. Reading / writing hared sparameter and type catalog files WITHOUT Revit","archived":false,"fork":false,"pushed_at":"2024-10-03T09:45:50.000Z","size":3613,"stargazers_count":112,"open_issues_count":9,"forks_count":38,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-29T04:07:58.623Z","etag":null,"topics":["catalog","catalog-files","catalogue","display-units","enum","enumeration","metadata","ole","olefile","parameters","part-atom","revit","revit-api","rfa","rvt","shared-parameter-file","thumbnail","thumbnail-images","units","version"],"latest_commit_sha":null,"homepage":"https://codecave.pro/#projects","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/CodeCavePro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","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":null,"patreon":"salaros","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":"salaros","issuehunt":null,"otechie":null,"custom":"https://www.paypal.me/salarosUSA"}},"created_at":"2016-11-13T20:39:45.000Z","updated_at":"2025-01-31T15:53:44.000Z","dependencies_parsed_at":"2024-11-05T09:43:16.953Z","dependency_job_id":"2bd090bc-a12e-4ec8-9f56-c951ee06791b","html_url":"https://github.com/CodeCavePro/revitless-toolkit","commit_stats":null,"previous_names":["codecavepro/revit-toolkit"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeCavePro%2Frevitless-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeCavePro%2Frevitless-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeCavePro%2Frevitless-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeCavePro%2Frevitless-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeCavePro","download_url":"https://codeload.github.com/CodeCavePro/revitless-toolkit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247289427,"owners_count":20914464,"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":["catalog","catalog-files","catalogue","display-units","enum","enumeration","metadata","ole","olefile","parameters","part-atom","revit","revit-api","rfa","rvt","shared-parameter-file","thumbnail","thumbnail-images","units","version"],"created_at":"2024-11-05T09:41:36.694Z","updated_at":"2025-04-05T05:06:22.672Z","avatar_url":"https://github.com/CodeCavePro.png","language":"C#","readme":"RevitLESS Toolkit\n=============\n\nA cross-platform **Revit-less** toolkit for processing .rfa, .rvt and other files without [Revit](https://en.wikipedia.org/wiki/Autodesk_Revit)\n\n[![Revit API](https://img.shields.io/badge/Revit%20API-2017-447788.svg)](http://www.revitapidocs.com/2017/)\n[![NuGet version](https://img.shields.io/nuget/v/CodeCave.Revit.Toolkit.svg?label=NuGet)](https://www.nuget.org/packages/CodeCave.Revit.Toolkit/)\n[![Revit API](https://img.shields.io/badge/.NET%20Standard-2.0-484877.svg)](https://social.msdn.microsoft.com/Forums/vstudio/en-US/7035edc6-97fc-49ee-8eee-2fa4d040a63b/)\n[![Revit API](https://img.shields.io/badge/.NET%20Framework-4.5.2+-748478.svg)](https://social.msdn.microsoft.com/Forums/vstudio/en-US/7035edc6-97fc-49ee-8eee-2fa4d040a63b/)\n\n[![License](https://img.shields.io/github/license/codecavepro/revit-toolkit.svg)](https://github.com/CodeCavePro/revit-toolkit/blob/master/LICENSE.txt)\n[![NuGet downloads](https://img.shields.io/nuget/dt/CodeCave.Revit.Toolkit.svg?label=NuGet%20downloads)](https://www.nuget.org/packages/CodeCave.Revit.Toolkit/)\n[![GitHub downloads](https://img.shields.io/github/downloads/CodeCavePro/revit-toolkit/total.svg?label=GitHub%20downloads\u0026colorB=8e8cba)](https://github.com/CodeCavePro/revit-toolkit/releases)\n\n[![AppVeyor build status](https://img.shields.io/appveyor/ci/salaros/revit-toolkit/master.svg?logo=appveyor)](https://ci.appveyor.com/project/salaros/revit-toolkit/history)\n[![AppVeyor tests](https://img.shields.io/appveyor/tests/salaros/revit-toolkit.svg)](https://ci.appveyor.com/project/salaros/revit-toolkit/build/tests)\n[![Coverage Status](https://coveralls.io/repos/github/CodeCavePro/revit-toolkit/badge.svg?branch=master)](https://coveralls.io/github/CodeCavePro/revit-toolkit?branch=master)\n[![Read the Docs (version)](https://img.shields.io/readthedocs/revit-toolkit/latest.svg)](http://revit-toolkit.readthedocs.io/en/latest/)\n\nInstallation\n============\n\n**RevitLESS Toolkit** can be installed via [NuGet](https://www.nuget.org/packages?q=CodeCave.Revit.Toolkit)\nby using Package Manager in your IDE, `dotnet` binary or Package Console\n\n```bash\n# Add the CodeCave.Revit.Toolkit package to a project named [\u003cPROJECT\u003e]\ndotnet add [\u003cPROJECT\u003e] package CodeCave.Revit.Toolkit\n```\n\nor Visual Studio's Package Console\n\n```powershell\n# Add the CodeCave.Revit.Toolkit package to the default project\nInstall-Package CodeCave.Revit.Toolkit\n\n# Add the CodeCave.Revit.Toolkit package to a project named [\u003cPROJECT\u003e]\nInstall-Package CodeCave.Revit.Toolkit -ProjectName [\u003cPROJECT\u003e]\n```\n\nUsage\n=====\n\n**RevitLESS Toolkit** provides various tools, you can easily find the full list by browsing the [documentation](http://revit-toolkit.readthedocs.io/en/latest/).\n\n## Shared parameter file\n\nOne of the most interesting tools is Revit [shared parameter file](https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/Revit-Model/files/GUID-E7D12B71-C50D-46D8-886B-8E0C2B285988-htm.html) reading and manipulation.\n\n```cs\nvar sharedParamFile = new SharedParameterFile(@\"path/to/shared/parameter/file.txt\");\n\n// alternatively you can supply the content of the file\nvar sharedParamFile = new SharedParameterFile(File.ReadAllText(@\"path/to/file.txt\"));\n\n// .. or you can create a completely new (empty) shared file\nvar sharedParamFile = new SharedParameterFile();\n\n// .. or with some empty (with no parameters assigned yet) groups\nvar sharedParamFile = new SharedParameterFile(new Dictionary\u003cstring,int\u003e { { \"Identity Data\", 100 } } );\n\nsharedParamFile.Parameters.Add(\n    new Guid(\"61ff3d56-09d7-4049-8c78-4abe745e4e5a\"),\"EquipmentName\",\n    \"Identity Data\", // Referencing group by name\n    ParameterType.Text\n);\n\nsharedParamFile.Parameters.Add(\n    new Guid(\"b5a53ea4-55d9-497c-8488-6607faa11e5f\"), \"EquipmentServed\",\n    new SharedParameterFile.Group(\"Identity Data\", 100), // Creating group as object\n    ParameterType.Text\n);\n\nsharedParamFile.Parameters.Add(\n    new Guid(\"758c97dc-6b88-4fbd-9570-4affdc32f08d\"), \"EquipmentNumber\",\n    sharedParamFile.Groups.FirstOrDefault(g =\u003e \"Identity Data\".Equals(g.Name)), // Finding group dynamically\n    ParameterType.Text\n);\n\n\n// Create a group object\nvar electricalGroup = new SharedParameterFile.Group(\"Electrical\", 999);\n\n// Add some parameters assigned to this group\nsharedParamFile.Parameters.Add(\n    new Guid(\"5031db93-bb19-454e-bea4-0f77d60f15e6\"), \"ApparentPower\",\n    electricalGroup, ParameterType.ElectricalApparentPower\n);\nsharedParamFile.Parameters.Add(\n    new Guid(\"963abdb6-372f-496c-b99e-f11d8e0e5d20\"), \"Current\",\n    electricalGroup, ParameterType.ElectricalCurrent\n);\nsharedParamFile.Parameters.Add(\n    new Guid(\"c006d4d6-0b12-42ad-8078-fe38ab8b1eff\"), \"Phases\",\n    \"Electrical\", // Using group's name, because it's just added parameters with a group object having the same name\n    ParameterType.NumberOfPoles\n);\n\n// Write out shared parameters file to disk\nsharedParamFile.Save(\"path/a/new/shared/file.txt\");\n```\n\n## Catalog type file\n\nThis is a pretty useful tool for easily creating and then writing out Revit [type catalog files](https://knowledge.autodesk.com/support/revit-products/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Revit-Customize/files/GUID-FFA71D72-D4C5-416D-BF65-1757657C3CE9-htm.html).\n\n```cs\nvar catalogTypeFile = new TypeCatalogFile();\nvar iPhoneCommonParameters = new List\u003cIParameterWithValue\u003e\n{\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Manufacturer\", ParameterType.Text, \"Apple\"),\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Model\", ParameterType.Text, \"A1549\"),\n    new TypeCatalogFile.Parameter\u003cdouble\u003e(\"Width\", ParameterType.Length, 77.8, DisplayUnitType.DUT_MILLIMETERS),\n    new TypeCatalogFile.Parameter\u003cdouble\u003e(\"Depth\", ParameterType.Length, 6.9, DisplayUnitType.DUT_MILLIMETERS),\n    new TypeCatalogFile.Parameter\u003cdouble\u003e(\"Height\", ParameterType.Length, 158.1, DisplayUnitType.DUT_MILLIMETERS),\n};\n\ncatalogTypeFile.Add(\"MG562LL/A\", iPhoneCommonParameters.Concat(new List\u003cIParameterWithValue\u003e\n{\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"AssemblyCode\", ParameterType.Text, \"MG562LL/A\"),\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Description\", ParameterType.Text, \"iPhone 6 16GB Gold (GSM) T-Mobile\"),\n    new TypeCatalogFile.Parameter\u003cdouble\u003e(\"Price\", ParameterType.Currency, 299.90),\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Currency\", ParameterType.Text, \"$\"),\n    new TypeCatalogFile.Parameter\u003cint\u003e(\"Storage GB\", 16),\n    new TypeCatalogFile.Parameter\u003cbool\u003e(\"Unlocked\", ParameterType.YesNo, false),\n}).ToArray());\ncatalogTypeFile.Add(\"MG5D2LL/A\", iPhoneCommonParameters.Concat(new List\u003cIParameterWithValue\u003e\n{\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"AssemblyCode\", ParameterType.Text, \"MG5D2LL/A\"),\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Description\", ParameterType.Text, \"iPhone 6 64GB Gold (GSM) T-Mobile\"),\n    new TypeCatalogFile.Parameter\u003cdouble\u003e(\"Price\", ParameterType.Currency, 380.0),\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Currency\", ParameterType.Text, \"$\"),\n    new TypeCatalogFile.Parameter\u003cint\u003e(\"Storage GB\", 32),\n    new TypeCatalogFile.Parameter\u003cbool\u003e(\"Unlocked\", ParameterType.YesNo, false),\n}).ToArray());\ncatalogTypeFile.Add(\"MG3A2CL/A\", iPhoneCommonParameters.Concat(new List\u003cIParameterWithValue\u003e\n{\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"AssemblyCode\", ParameterType.Text, \"MG3A2CL/A\"),\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Description\", ParameterType.Text, \"iPhone 6 16GB Space Grey Unlocked\"),\n    new TypeCatalogFile.Parameter\u003cdouble\u003e(\"Price\", ParameterType.Currency, 600.0),\n    new TypeCatalogFile.Parameter\u003cstring\u003e(\"Currency\", ParameterType.Text, \"CAD\"),\n    new TypeCatalogFile.Parameter\u003cint\u003e(\"Storage GB\", 16),\n    new TypeCatalogFile.Parameter\u003cbool\u003e(\"Unlocked\", ParameterType.YesNo, true),\n}).ToArray());\n\n// Write out type catalog file to disk\ncatalogTypeFile.Save(\"path/a/new/shared/file.txt\");\n```\n","funding_links":["https://patreon.com/salaros","https://liberapay.com/salaros","https://www.paypal.me/salarosUSA"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecavepro%2Frevitless-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodecavepro%2Frevitless-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecavepro%2Frevitless-toolkit/lists"}