{"id":18234340,"url":"https://github.com/e999b3/tyrx","last_synced_at":"2026-03-06T15:03:33.071Z","repository":{"id":261021260,"uuid":"880751736","full_name":"e999b3/tyrX","owner":"e999b3","description":"Harness the Power of IntelliSense to Supercharge Your Revit Workflow.","archived":false,"fork":false,"pushed_at":"2024-11-04T08:17:10.000Z","size":147,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-11T21:40:11.211Z","etag":null,"topics":["fsharp","revit","revit-addins","revit-api"],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/e999b3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-10-30T09:40:39.000Z","updated_at":"2024-11-04T12:00:05.000Z","dependencies_parsed_at":"2024-11-04T09:24:49.693Z","dependency_job_id":"13b768cd-1011-4515-a375-9eb9bad9c551","html_url":"https://github.com/e999b3/tyrX","commit_stats":null,"previous_names":["e999b3/tyrx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e999b3%2FtyrX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e999b3%2FtyrX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e999b3%2FtyrX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e999b3%2FtyrX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e999b3","download_url":"https://codeload.github.com/e999b3/tyrX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230788230,"owners_count":18280300,"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":["fsharp","revit","revit-addins","revit-api"],"created_at":"2024-11-04T21:03:19.633Z","updated_at":"2026-03-06T15:03:33.060Z","avatar_url":"https://github.com/e999b3.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tyrX\n\n**tyrX** is purpose-built for Autodesk Revit, starting with version 2025, seamlessly adapting to the transition to the .NET 8.0 framework introduced in this release. By dynamically targeting the specified `RevitVersion`, tyrX ensures compatibility with the appropriate framework and Revit API version, offering a streamlined and future-proof development experience. \n\nAs the successor to **tyRevit**, **tyrX** retains its lightweight architecture, delivering an optimized external command solution for Revit. It remains dedicated to empowering users to craft custom workflows in Revit using **F#** programming. With robust support for **IntelliSense** in both Visual Studio Community and Visual Studio Code, tyrX enhances coding efficiency and simplifies the development process, making it an indispensable tool for Revit developers.\n\n![intro](https://github.com/user-attachments/assets/c5360829-4fcf-46c9-b60c-6c290351cedc)\n\n## Installation\n\nTo install **tyrX**, follow these straightforward steps:\n\n### 1. Fork the Repository\nFork this repository to your own GitHub account.\n\n### 2. Download the Project\nYou can either:\n- Clone the repository using **GitHub Desktop**.\n- Download the ZIP file directly from the repository and extract its contents.\n\n### 3. Open the Project\n- Open the unzipped folder with **Visual Studio Code** or load the solution file in **Visual Studio**.\n\n### 4. Check RevitVersion and Compile\nDepending on your Revit version, change the constant **RevitVersion** in the .fsproj file. \n\n![image](https://github.com/user-attachments/assets/aaf0f17b-4114-451c-906e-63e613708f67)\n\nWhen compiling, Visual Studio will choose the targeted Revit API version to reference. If the chosen Revit major version is prior to 2025, the constant **TargetFramework** will be set to **net48**, otherwise it will target **net8.0-windows**.\n\n### 5. Edit the Add-in Path\nModify the `tyrX.addin` file to point to the correct path of the built assembly `rX.dll`.\n\n![image](https://github.com/user-attachments/assets/98498283-4524-4f56-8a62-2f240666bf67)\n\nChange the highlighted line `\u003cAssembly\u003e...\u003c/Assembly\u003e` to your own assembly path.\n\n### 6. Copy the Add-in File\nCopy the `tyrX.addin` file to the appropriate Revit add-in directory:\n\n- **For current user**: `%appdata%\\Autodesk\\Revit\\Addins\\\u003cRevitMajorVersion\u003e`\n- **For all users**: `%programdata%\\Autodesk\\Revit\\Addins\\\u003cRevitMajorVersion\u003e`\n\n### 7. Launch Revit\nStart **Revit** according to your version, and you are ready to go!\n\n\n## Usage\n\nOnce loaded into the Revit environment, the core application of **tyrX** will search for classes that implement the `IExternalCommand` interface within the compiled `rX.dll` assembly. These classes will then be loaded and recognized as add-ins within Revit.\n\n### Pre-compiled F# Scripts\nIn the root folder, you will find two F# scripts:\n- `DevCommandCompiler.fs`\n- `SelectedCommandCompiler.fs`\n\nThese scripts are set to be compiled into the assembly and can be accessed in Revit under:\n\n**Tab**: `Add-Ins`  \n**Panel**: `External`  \n**Drop-down button**: `External Tools`\n\n![tyrX Add-in Interface](https://github.com/user-attachments/assets/696761cc-a8c7-48f0-85bc-8db3387b592d)\n\n### Workflow\n\nMy preferred workflow when programming with F# for Revit is an iterative **try-and-error** approach. This involves making frequent changes to the code and testing them quickly. The most efficient way to do this is to **just save** my work-in-progress code and recompile it **only** by clicking the command button to run it. In fact, I use keyboard shortcuts to run my code, avoiding the time wasted searching for the right button to click. Once I'm satisfied with the code, or if I want to experiment with alternative solutions without losing my progress, I save a copy of the current code for comparison and further development.\n\nThis is where the two compiler scripts come into play.\n\n- **Develop Command Compiler**: The `DevCommandCompiler.fs` script is designed to compile the `cmd/develop.fs` file, enabling you to focus on problem-solving without distractions.\n- **Selected Command Compiler**: This command offers a drop-down list of all F# scripts located in the `cmd` folder, allowing you to select and execute any script easily. Once you’re done with `develop.fs`, simply duplicate it, give it a meaningful name, and keep it available for future use.\n\n### Key Benefits\n- **No Revit Restarts Needed**: There is no need to restart your Revit session! You can modify and test your scripts in the `cmd` folder as often as needed.\n- **Accelerate Your Workflow**: This approach encourages experimenting with different solutions, ensuring a fast and effective Revit coding experience.\n\nEnjoy exploring and refining your Revit coding workflow!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe999b3%2Ftyrx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe999b3%2Ftyrx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe999b3%2Ftyrx/lists"}