# LearnRevitAPI > Learn the Revit API and pyRevit, one button at a time. LearnRevitAPI is where Erik Frits teaches the Revit API and pyRevit: how architects, engineers and BIM people automate Revit with Python and build their own tools. Below is the catalogue, generated from the site itself: every training with its courses, modules and lessons, a title and one line each, then everything else the site publishes. Lessons are read inside the platform: a free training needs an account, a paid one the training. The Revit API reference itself is not here: it lives at https://rvtdocs.com/mcp. ## Trainings - [Free pyRevit Course: Fast-Track](https://learnrevitapi.com/fast-track.md): Free pyRevit Fast-Track: 13 short lessons to set up pyRevit, build your first custom extension and start automating Revit today. (free with an account) - [pyRevit](https://learnrevitapi.com/fast-track/01-pyrevit/) - [Setup pyRevit](https://learnrevitapi.com/fast-track/01-pyrevit/01-setup-pyrevit/) - [Create Your Own Extension](https://learnrevitapi.com/fast-track/01-pyrevit/02-create-your-own-extension/) - [Anatomy of pyRevit](https://learnrevitapi.com/fast-track/01-pyrevit/03-anatomy-of-pyrevit/) - [Code-Editor](https://learnrevitapi.com/fast-track/02-code-editor/) - [Choosing Your Code Editor](https://learnrevitapi.com/fast-track/02-code-editor/04-choosing-your-code-editor/) - [Quick-Start VS Code](https://learnrevitapi.com/fast-track/02-code-editor/05-quick-start-vs-code/) - [Quick-Start Cursor IDE](https://learnrevitapi.com/fast-track/02-code-editor/06-quick-start-cursor-ide/) - [IDE Tour for Beginners](https://learnrevitapi.com/fast-track/02-code-editor/07-ide-tour-for-beginners/) - [First Button](https://learnrevitapi.com/fast-track/03-first-button/) - [Framework for new pyRevit Tools](https://learnrevitapi.com/fast-track/03-first-button/08-framework-for-new-pyrevit-tools/) - [Create Your First Button](https://learnrevitapi.com/fast-track/03-first-button/09-create-your-first-button/) - [Refine and add more features](https://learnrevitapi.com/fast-track/03-first-button/10-refine-and-add-more-features/) - [Stress-Test your tools](https://learnrevitapi.com/fast-track/03-first-button/11-stress-test-your-tools/) - [Super-Charge with AI](https://learnrevitapi.com/fast-track/03-first-button/12-super-charge-with-ai/) - [What's Next?](https://learnrevitapi.com/fast-track/03-first-button/13-whats-next/) - [21-Day pyRevit Challenge](https://learnrevitapi.com/join-challenge/) (paid, for members of this training) - [Week 1](https://learnrevitapi.com/pyrevit-challenge/week-1/) - [Week 2](https://learnrevitapi.com/pyrevit-challenge/week-2/) - [Week 3](https://learnrevitapi.com/pyrevit-challenge/week-3/) - [Week 4](https://learnrevitapi.com/pyrevit-challenge/week-4/) - [Bonuses](https://learnrevitapi.com/pyrevit-challenge/bonuses/) - [Academy](https://learnrevitapi.com/join-ai-lab/) (paid, for members of this training) - [LRA-Basics](https://learnrevitapi.com/academy/basics/) - [LRA-Advanced](https://learnrevitapi.com/academy/advanced/) - [LRA-Modern UI](https://learnrevitapi.com/academy/modern-ui/) - [LRA AI-Lab](https://learnrevitapi.com/join-ai-lab/) (paid, for members of this training) - [01. Quick-Start Setup](https://learnrevitapi.com/ai-lab/01-quick-start/) - [02. Feel the Vibes](https://learnrevitapi.com/ai-lab/02-feel-the-vibes/) - [03. Build pyRevit AI Engine](https://learnrevitapi.com/ai-lab/03-pyrevit-ai-engine/) - [LLM Wiki](https://learnrevitapi.com/ai-lab/llm-wiki/) - [Git for BIM Developers](https://learnrevitapi.com/ai-lab/git-for-bim-developers/) - [Live Call Recordings](https://learnrevitapi.com/ai-lab/live-calls/) ## Blog - [NEW pyRevit 7.0 (Fast-Engine, MCP, WebView2 + NEW UI Workflow)](https://learnrevitapi.com/blog/pyrevit-7.md): What is new in pyRevit 7.0: the faster engine, the built-in MCP server for AI agents, WebView2 windows and the new UI workflow. - [pyRevit MCP: Connect ANY AI Agent to Revit (Full Setup Guide)](https://learnrevitapi.com/blog/pyrevit-mcp-setup.md): Full pyRevit MCP setup guide: connect Claude, Codex or any AI agent to Revit so it can read your model and run pyRevit tools from a simple prompt. - [The Full pyRevit Course for Beginners (Setup → Your First Button)](https://learnrevitapi.com/blog/fast-track-pyrevit-course.md): Free pyRevit course for beginners: install pyRevit, set up your code editor and extension, and build your first custom Revit button from scratch. - [Convert Revit Coordinates with Revit API [Internal, Project, Survey]](https://learnrevitapi.com/blog/convert-coordinate-systems-in-revit-api-draft.md) - [The Ultimate Python Course For Beginners (Learn How To Code in 2026)](https://learnrevitapi.com/blog/12hr-python-course.md): Learn Python from zero in one free 12-hour course for beginners: the core concepts step by step, the foundation you need before you automate Revit. - [Revit API Course For Beginners (The Best Way To Get Started)](https://learnrevitapi.com/blog/intro-revit-api-course.md): Revit API course for beginners: what the Revit API is, how to read its documentation and how to write your first scripts. The best way to get started. - [pyRevit WPF Form for Asking user for Multiple Paths](https://learnrevitapi.com/blog/pyrevit-wpf-form-for-getting-file-paths.md) - [How to create Revit API Stubs for Autocomplete with pyRevit](https://learnrevitapi.com/blog/generate-revit-api-stubs-with-pyrevit-for-autocomplete.md) - [How to add Python 3 packages to pyRevit? (pandas, numpy, openpyxl...)](https://learnrevitapi.com/blog/add-python3-pyrevit-packages-like-numpy-pandas.md) - [How to Cut a Pipe/Duct in half with Revit API/](https://learnrevitapi.com/blog/split-pipe-or-duct-in-half-with-revitapi-breakcurve.md) - [How To Purge View Templates with pyRevit](https://learnrevitapi.com/blog/purge-view-templates-with-pyrevit.md) - [How To Purge View Filters with pyRevit](https://learnrevitapi.com/blog/purge-view-filters-with-pyrevit.md) - [Create Interactive Revit Reports with pyRevit Linkify](https://learnrevitapi.com/blog/create-interactive-revit-reports-with-pyrevit-linkify.md) - [Revit API Resources You Didn't Know About!](https://learnrevitapi.com/blog/revit-api-resources-for-beginners.md) - [How to Create IUpdater in Revit with pyRevit (Create Custom Features)](https://learnrevitapi.com/blog/how-to-create-iupdater-in-revit-pyrevit-doc-updater.md) - [Find Intersecting Rooms and Areas](https://learnrevitapi.com/blog/find-intersecting-rooms-and-areas-in-autodesk-revit.md) - [Disable Dragging Elements on Selection with pyRevit startup script](https://learnrevitapi.com/blog/stop-dragging-elements-on-selection-with-pyrevit-startup-script.md) - [Create 3D BoundingBox by using DirectShape](https://learnrevitapi.com/blog/create-3d-boundingbox-with-directshape-in-revit-api.md) - [Suppress Warnings in Revit API](https://learnrevitapi.com/blog/suppress-warnings-in-revit-api.md) - [Create Sections on the ScopeBox edges](https://learnrevitapi.com/blog/create-sections-from-scope-boxes-with-revit-api.md) - [pyRevit Hooks: How to create EventTriggers to Block CAD Imports in Revit API?](https://learnrevitapi.com/blog/pyrevit-hooks-event-triggers.md) - [How to Place Views on Sheets with Revit API?](https://learnrevitapi.com/blog/how-to-place-views-on-sheets-with-python-and-revit-api.md) - [Stop Wasting your Time on Revit Sections. Automate with Revit API!](https://learnrevitapi.com/blog/how-to-automate-window-sections-in-revit-api-and-python.md) - [How To Get Material Layers from Wall, Floors and Roofs](https://learnrevitapi.com/blog/how-to-get-material-layers-from-wall-types.md) - [How to Get Default Type in Revit API?](https://learnrevitapi.com/blog/get-default-element-types-with-revit-api.md) - [How To Cut FilledRegions with a Detail Line](https://learnrevitapi.com/blog/cut-filled-regions-with-detail-line-revit-api-tutorial.md) - [Get Elements with ElementParameterFilter](https://learnrevitapi.com/blog/get-elements-by-type-or-family-name.md) - [RevitAPI: Get/Create FilledRegionType](https://learnrevitapi.com/blog/create-filled-region-type.md) - [Isolate Elements with Revit API and python](https://learnrevitapi.com/blog/isolate-elements.md) - [Get Solid Fill Pattern in Revit API](https://learnrevitapi.com/blog/get-solid-fill-pattern.md) - [Copy Elements with RevitAPI + Python](https://learnrevitapi.com/blog/copy-elements-with-revit-api-python.md) - [Get TitleBlock from Sheet.](https://learnrevitapi.com/blog/get-titleblock-from-shees.md) - [Create Views with Revit API + python](https://learnrevitapi.com/blog/create-views-with-revit-api-python.md) - [Override Elements with Revit API (SetElementOverrides)](https://learnrevitapi.com/blog/override-graphics-in-view.md) - [Revit API: How to change associated Level in Walls?](https://learnrevitapi.com/blog/revit-api-how-to-change-associated-level-in-walls.md) - [Get Warnings with RevitAPI](https://learnrevitapi.com/blog/get-warnings-with-revitapi.md) - [How-To Offset CropBox of ViewPorts with Revit API](https://learnrevitapi.com/blog/how-to-change-cropbox-of-selected-viewports.md) - [How to Get All Categories in Revit API?](https://learnrevitapi.com/blog/get-all-categories-in-revit-api.md) - [Get ViewSheet from a given View](https://learnrevitapi.com/blog/get-viewsheet-from-given-view.md) - [Update ProjectBrowser with RevitAPI](https://learnrevitapi.com/blog/update-projectbrowser-with-revitapi.md) - [Match View's cropbox shape](https://learnrevitapi.com/blog/match-views-cropbox-shape.md) - [Get CropBox Id in Revit with Python.](https://learnrevitapi.com/blog/revitapi-get-cropbox-id.md) ## Podcast - [Behind the scenes of pyRevit Development with Roman Golev (pyRevit Pod-16)](https://learnrevitapi.com/podcast/py-pod-16-roman-golev.md) - [Revit Add-Ins That Test Themselves (Local LLMs + Mac Setup) [pyRevit Pod-15]](https://learnrevitapi.com/podcast/py-pod-15-yuusuf-dahlstrand.md): Yuusuf Dahlstrand on Revit add-ins that test themselves, running local LLMs for Revit development and a Mac setup that works. pyRevit Podcast #15. - [The Creator of pyRevit MCP on Real Limits of AI in Revit [pyRevit Pod 14]](https://learnrevitapi.com/podcast/py-pod-14-juan-david-rodriguez.md): Juan David Rodriguez, creator of pyRevit MCP, on what AI can and cannot do in Revit today and how MCP connects agents to your model. pyRevit Podcast #14. - [pyRevit + AI For Electrical Fabrication (pyRevit Pod#13)](https://learnrevitapi.com/podcast/py-pod-13-manuel-olvera.md): Manuel Olvera on using pyRevit and AI for electrical fabrication: the tools he builds to automate fabrication workflows in Revit. pyRevit Podcast #13. - [The Journey of pyRevit Challenge Hackathon Winner [pyRevit Podcast #12]](https://learnrevitapi.com/podcast/py-pod-12-hackathon-winner.md): Dimitris Koumantakis, winner of the first pyRevit Challenge hackathon, shows the tool he built and shares his journey into Revit automation. Podcast #12. - [The Building Coder on the Future of Revit API with AI | Jeremy Tammik - pyRevitPod #11](https://learnrevitapi.com/podcast/py-pod-11-jeremy-tammik.md): Jeremy Tammik, The Building Coder with 2,200+ Revit API blog posts, on his path to the Revit API and where it goes with AI. pyRevit Podcast #11. - [Vibecode pyRevit w Claude-Code with Alex Ritivoi (pyRevit-Pod #10 )](https://learnrevitapi.com/podcast/py-pod-10-alex-ritivoi.md): Alex Ritivoi, head of applied AI at 3XN, on vibe coding custom pyRevit tools with Claude Code without a programming background. pyRevit Podcast #10. - [@Aussie BIM Guru on AI, pyRevit, C# and coming back to Dynamo??? [pyRevit Pod #9]](https://learnrevitapi.com/podcast/py-pod-09-gavin-nicholls.md): Gavin Crump (Aussie BIM Guru) on AI, pyRevit, C# add-ins and why he is coming back to Dynamo as automation lead at Architectus. pyRevit Podcast #9. - [A 20-Year Revit Veteran on Revit, pyRevit & AI | pyRevit Podcast #8](https://learnrevitapi.com/podcast/py-pod-08-revit-veteran.md): Tay Otman, senior project architect in San Francisco with 20 years in Revit, on his path from Revit specialist to pyRevit, Revit API and AI. Podcast #8. - [Fully Agentic AI Development for pyRevit with Jonatan Jacobsson | pyRevitPodcast #7](https://learnrevitapi.com/podcast/py-pod-07-jonatan-jacobsson.md): Jonatan Jacobsson from a Swedish construction management firm on fully agentic AI development for pyRevit and the AI workflows he uses. pyRevit Podcast #7. - [Real-World pyRevit Hooks + PowerBI with David Vadkerti | pyRevit podcast #6](https://learnrevitapi.com/podcast/py-pod-06-david-vadkerti.md): David Vadkerti, architect, civil engineer and BIM manager, on real-world pyRevit hooks and connecting Revit data to Power BI. pyRevit Podcast #6. - [How Aussie BIM Guru became Automation Expert in AEC? pyRevit Podcast #4](https://learnrevitapi.com/podcast/py-pod-04-gavin-nicholls.md): How Gavin Crump, the Aussie BIM Guru, went from Dynamo and visual programming to Python, pyRevit and automation expert in AEC. pyRevit Podcast #4. - [The Programming Journey of pyRevit Dad (Ehsan Iran-Nejad) | pyRevit Podcast #3](https://learnrevitapi.com/podcast/py-pod-03-ehsan-iran-nejad.md): Ehsan Iran-Nejad, the creator of pyRevit, on his programming journey from architecture to software and ten years of building pyRevit. pyRevit Podcast #3. - [Deploy pyRevit for Teams using CLI with Jean-Marc Couffin | pyRevit Podcast #2](https://learnrevitapi.com/podcast/py-pod-02-jean-marc-couffin.md): Jean-Marc Couffin on deploying pyRevit for teams with the pyRevit CLI: how to roll out pyRevit and your own extensions to every PC. pyRevit Podcast #2. - [Create AI Assistant for Revit with Python and OpenAI | pyRevit Podcast #1](https://learnrevitapi.com/podcast/py-pod-01-openai-assistant.md): Learn how to integrate OpenAI into Revit with pyRevit and Python, and build your own AI assistant, in the first episode of the pyRevit Podcast. ## Code samples - [Simple pyRevit Script Template](https://learnrevitapi.com/resources/code-samples/pyrevit-template/) (free with an account) - [Filtered Element Collector](https://learnrevitapi.com/resources/code-samples/filtered-element-collector/) (free with an account) - [Revit API Parameters](https://learnrevitapi.com/resources/code-samples/parameters/) (free with an account) - [Revit API Selection](https://learnrevitapi.com/resources/code-samples/selection/) (free with an account) - [Revit API Transactions](https://learnrevitapi.com/resources/code-samples/transactions/) (free with an account) - [Translate C# to Python](https://learnrevitapi.com/resources/code-samples/translate-c-sharp/) (free with an account) - [Views & Sheets](https://learnrevitapi.com/resources/code-samples/view-sheets/) (free with an account) - [Create Elements](https://learnrevitapi.com/resources/code-samples/create-elements/) (free with an account) - [WPF Form Sample](https://learnrevitapi.com/resources/code-samples/wpf/) (free with an account) ## Guides - [pyRevit MCP Guide: Connect AI to Revit](https://learnrevitapi.com/guides/pyrevit-mcp/llms.txt): Set up the pyRevit MCP server step by step so your AI agent, Claude or Codex, can control Revit with prompts. Free guide with setup and troubleshooting. ## News - [🚧BIM Managers: Here Are 4 Ways to Control AI Assistant Access in Revit.](https://learnrevitapi.com/newsletter/block-ai-assistant.md) - [✨Guide on Creating Elements With Revit API - (Place Hundreds With a Click)](https://learnrevitapi.com/newsletter/guide-on-creating-elements-with-revit-api-place-hundreds-with-a-click.md) - [⚠️Stop Wasting Time Creating Views Manually (Here's First Step To Automate Views)](https://learnrevitapi.com/newsletter/stop-wasting-time-creating-views-manually-here-s-first-step-to-automate-views.md) - [🔽 Easy Guide On How to use Revit API Filters (Quick vs Slow vs Logical)](https://learnrevitapi.com/newsletter/easy-guide-on-how-to-use-revit-api-filters-quick-vs-slow-vs-logical.md) - [👉Your shortcut to mastering FilteredElementCollector in Revit API](https://learnrevitapi.com/newsletter/your-shortcut-to-mastering-filteredelementcollector-in-revit-api.md) - [➡️ How To Automate Shared Parameters in Revit in 3 Easy Steps.](https://learnrevitapi.com/newsletter/how-to-automate-shared-parameters-in-revit-in-3-easy-steps.md) - [🚀 Your First Step to Automating Parameters with Revit API](https://learnrevitapi.com/newsletter/your-first-step-to-automating-parameters-with-revit-api.md) - [🆎 How To Convert Units in Revit API With a Single Line Of Code.](https://learnrevitapi.com/newsletter/how-to-convert-units-in-revit-api-with-a-single-line-of-code-2.md) - [🚀Start Coding Faster By Looking Inside Your Elements First](https://learnrevitapi.com/newsletter/start-coding-faster-by-looking-inside-your-elements-first.md) - [👉 How To Prevent Revit Users from Selecting the Wrong Elements](https://learnrevitapi.com/newsletter/how-to-prevent-revit-users-from-selecting-the-wrong-elements.md) - [👉How Selection Really Works in Revit API (Basics for Beginners)](https://learnrevitapi.com/newsletter/how-selection-really-works-in-revit-api-basics-for-beginners.md) - [💻 Revit API Setup for Beginners (This will save you a lot of time!)](https://learnrevitapi.com/newsletter/revit-api-setup-for-beginners-this-will-save-you-a-lot-of-time.md) - [🔠Learn How to Translate C# to Python (Step-By-Step Beginners Guide)](https://learnrevitapi.com/newsletter/learn-how-to-translate-c-to-python-step-by-step-beginners-guide.md) - [🔎 Revit API Documentation For Beginners. (How to Get The Most out of It?)](https://learnrevitapi.com/newsletter/revit-api-documentation-for-beginners-how-to-get-the-most-out-of-it.md) - [⚙️Understand the Process of Creating Great Revit Add-Ins.](https://learnrevitapi.com/newsletter/understand-the-process-of-creating-great-revit-add-ins.md) - [💌Why Did LearnRevitAPI Newsletter Stop?](https://learnrevitapi.com/newsletter/why-did-learnrevitapi-newsletter-stop.md) - [🗺️Here’s How I’d learn Revit API if I had to start all over again](https://learnrevitapi.com/newsletter/here-s-how-i-d-learn-revit-api-if-i-had-to-start-all-over-again.md) - [💡What if I told you that there are thousands of code examples to learn from?](https://learnrevitapi.com/newsletter/what-if-i-told-you-that-there-are-thousands-of-code-examples-to-learn-from.md) - [🙋‍♂️Why One Revit User Became Senior BIM Specialist While The Other Stayed Behind](https://learnrevitapi.com/newsletter/why-one-revit-user-became-senior-bim-specialist-while-the-other-stayed-behind.md) - [📢LearnRevitAPI 2.0 Update: New Lessons and Platform Upgrade](https://learnrevitapi.com/newsletter/learnrevitapi-2-0-update-new-lessons-and-platform-upgrade.md) - [💡Pro Tip: How to Easily Get CropBox to Rotate Views with Revit API](https://learnrevitapi.com/newsletter/pro-tip-how-to-easily-get-cropbox-to-rotate-views-with-revit-api.md) - [🚀Master Sales Plan Automation in Revit (Beginner-Friendly)](https://learnrevitapi.com/newsletter/master-sales-plan-automation-in-revit-beginner-friendly.md) - [Are you making any progress with Revit API?](https://learnrevitapi.com/newsletter/are-you-making-any-progress-with-revit-api.md) - [🎯Revit API Starter Kit: 7 Code Samples Beginners Need to Know](https://learnrevitapi.com/newsletter/revit-api-starter-kit-7-code-samples-beginners-need-to-know.md) - [🧠 3 Mental Blocks Keeping You From Mastering Revit API](https://learnrevitapi.com/newsletter/3-mental-blocks-keeping-you-from-mastering-revit-api.md) - [✅ The 5 Skills That Top Revit Performers Are Learning Now](https://learnrevitapi.com/newsletter/the-5-skills-that-top-revit-performers-are-learning-now.md) - [📅 Where you could be one year from now…](https://learnrevitapi.com/newsletter/where-you-could-be-one-year-from-now.md) - [⛔Avoid these 9 most common Revit API mistakes beginners make](https://learnrevitapi.com/newsletter/avoid-these-9-most-common-revit-api-mistakes-beginners-make.md) - [🙋‍♂️LearnRevitAPI was made for 3 types of people. Are you one of them?](https://learnrevitapi.com/newsletter/learnrevitapi-was-made-for-3-types-of-people-are-you-one-of-them.md) - [This System Makes Revit Users 10X More Productive](https://learnrevitapi.com/newsletter/this-system-makes-revit-users-10x-more-productive.md) - [📦OOP in Revit API for Beginners](https://learnrevitapi.com/newsletter/oop-in-revit-api-for-beginners.md) - [📄What's New in Revit API 2026? Here are the biggest changes...](https://learnrevitapi.com/newsletter/what-s-new-in-revit-api-2026-here-are-the-biggest-changes.md) - [✅ Revit 2026 Python Support: Testing pyRevit & RevitPythonShell](https://learnrevitapi.com/newsletter/revit-2026-python-support-testing-pyrevit-revitpythonshell.md) - [⌨️The Programming Journey of Aussie BIM Guru (Gavin Crump)](https://learnrevitapi.com/newsletter/the-programming-journey-of-aussie-bim-guru-gavin-crump.md) - [LearnRevitAPI is Back Online 🚀!](https://learnrevitapi.com/newsletter/learnrevitapi-is-back-online.md) - [✨The New Modern Revit API Documentation for 2025](https://learnrevitapi.com/newsletter/the-new-modern-revit-api-documentation-for-2025.md) - [The Programming Journey of pyRevit Dad](https://learnrevitapi.com/newsletter/the-programming-journey-of-pyrevit-dad.md) - [⚡How to use pyRevit Hooks to create Event Triggers in Revit API?](https://learnrevitapi.com/newsletter/how-to-use-pyrevit-hooks-to-create-event-triggers-in-revit-api.md) - [✨ New Tutorial: Copy View Filters Across Views in Revit API](https://learnrevitapi.com/newsletter/new-tutorial-copy-view-filters-across-views-in-revit-api.md) - [💻I ignored pyRevit CLI for too long... Here's how to get started fast.](https://learnrevitapi.com/newsletter/i-ignored-pyrevit-cli-for-too-long-here-s-how-to-get-started-fast.md) - [⚙️How to modify Shared Parameters with Revit API and Python?](https://learnrevitapi.com/newsletter/how-to-modify-shared-parameters-with-revit-api-and-python.md) - [⏹️How-To Convert Internal/Survey/Project Coordinates with Revit API?](https://learnrevitapi.com/newsletter/how-to-convert-internal-survey-project-coordinates-with-revit-api.md) - [📢 pyRevit News + pyRevit CLI for Teams with Jean-Marc Couffin | pyRevit Hacker Podcast #2](https://learnrevitapi.com/newsletter/podcast-2-pyrevit-cli-for-teams-with-jean-marc-couffin.md) - [🧮 How to convert units in Revit API with a single line of code.](https://learnrevitapi.com/newsletter/how-to-convert-units-in-revit-api-with-a-single-line-of-code.md) - [🔥New Step by Step Tutorial for Revit API Beginners](https://learnrevitapi.com/newsletter/new-step-by-step-tutorial-for-revit-api-beginners.md) - [⛔The reason why many fail with Revit API... (don't fall into the trap)](https://learnrevitapi.com/newsletter/the-reason-why-many-fail-with-revit-api.md) - [#️⃣The art of writing clean python code with comprehensions.](https://learnrevitapi.com/newsletter/the-art-of-writing-clean-python-code-with-comprehensions.md) - [⛔ My 5 Biggest Mistakes with Revit API (You Can Avoid Them)](https://learnrevitapi.com/newsletter/my-5-biggest-mistakes-with-revit-api-you-can-avoid-them.md) - [🧐 Check if All Your Doors are tagged with Revit API](https://learnrevitapi.com/newsletter/check-if-all-your-doors-are-tagged-with-revit-api.md) - [🔽 How to Copy View Filters with Revit API in Just 3 Steps...](https://learnrevitapi.com/newsletter/how-to-copy-view-filters-with-revit-api-in-just-3-steps.md) - [⌛Stop Rushing. Learning to Code Takes Time.](https://learnrevitapi.com/newsletter/learning-to-code-takes-time.md) - [📊 Control Toggle Parameters in Revit with a Custom WPF Form](https://learnrevitapi.com/newsletter/control-toggle-parameters-in-revit-with-a-custom-wpf-form-and-pyrevit.md) - [📊How to Create Custom pyRevit Form with Multiple Buttons?](https://learnrevitapi.com/newsletter/how-to-create-custom-pyrevit-form-with-multiple-buttons.md) - [📄The Unusual Henry Ford Policy That Can Transform AEC Projects](https://learnrevitapi.com/newsletter/the-unusual-henry-ford-policy-that-can-transform-aec-projects.md) - [How to Be Lazy and Still Get More Done in Revit.](https://learnrevitapi.com/newsletter/how-to-be-lazy-and-still-get-more-done-in-revit.md) - [👀 Your First Look at the pyRevit Hacker Basics Course](https://learnrevitapi.com/newsletter/your-first-look-at-the-pyrevit-hacker-basics-course.md) - [🔍Get Existing Types Before Duplicating Them](https://learnrevitapi.com/newsletter/get-existing-types-before-duplicating-them.md) - [⌨️ What’s The Real Reason Behind Your Programming Journey?](https://learnrevitapi.com/newsletter/what-s-the-real-reason-behind-your-programming-journey.md) - [LearnRevitAPI May Disappear: What Should We Call It Next?](https://learnrevitapi.com/newsletter/learnrevitapi-may-disappear-what-should-we-call-it-next.md) - [🔥The #1 Mistake New Revit API Programmers Make.](https://learnrevitapi.com/newsletter/the-number-one-mistake-new-revit-api-programmers-make.md) - [AI Claims 80% of Your Code, But Here’s the Real Story](https://learnrevitapi.com/newsletter/ai-claims-80-of-your-code-but-here-is-the-real-story.md) - [The Most Important Skill for Programmers (Hint: It's Not Coding)](https://learnrevitapi.com/newsletter/the-most-important-skill-for-programmers.md) - [🪟 How to Automate Sections with Revit API](https://learnrevitapi.com/newsletter/how-to-automate-window-sections-with-revit-api.md) - [Learn How to Convert C# Code to Python (for Beginners)](https://learnrevitapi.com/newsletter/how-to-translate-c-sharp-revit-api-code-to-python.md) - [AI Assistant for Revit with Python | pyRevit Hacker Podcast #1](https://learnrevitapi.com/newsletter/add-ai-assistant-for-revit-with-python-pyrevit-hacker-podcast-episode-01.md) - [😥Hate Subscriptions? The Lifetime Deal is back!](https://learnrevitapi.com/newsletter/the-lifetime-deal-is-back.md) - [📁 Steal Like an Artist: pyRevit Secrets for a Quick Start](https://learnrevitapi.com/newsletter/steal-like-an-artist-pyrevit-secrets-for-quick-start.md) - [🔎This Prompt Will Help Beginners Understand Revit API Code Faster.](https://learnrevitapi.com/newsletter/chat-gpt-prompt-for-revit-api-code.md) - [A New Year’s Resolution Worth Keeping: Revit Automation](https://learnrevitapi.com/newsletter/new-year-resolution-automate-revit.md) - [Revit API Quick vs Slow Filters (What are they?)](https://learnrevitapi.com/newsletter/revit-api-quick-vs-slow-filters-what-are-they.md) - [pyRevit Hackers Map: 59 countries where people automate Revit.](https://learnrevitapi.com/newsletter/pyrevit-hackers-map-where-people-automate-revit.md) - [✨ Do You Want to Become pyRevit Hacker in a Week?](https://learnrevitapi.com/newsletter/wanna-become-pyrevit-hacker.md) - [🤔How To Select Elements in Revit Last Changed By Specific User](https://learnrevitapi.com/newsletter/select-elements-last-changed-by-specific-user.md) - [🌍5 New Languages are added to my Revit API Tutorials](https://learnrevitapi.com/newsletter/revit-api-uttorials-available-in-multiple-languages.md) - [❌Avoid These 30 Beginner pyRevit Errors with this Checklist](https://learnrevitapi.com/newsletter/pyrevit-checklist-to-avoid-30-most-common-beginerrs-mistakes.md) - [🔽Revit API Filters: Quick vs Slow, what's the difference?](https://learnrevitapi.com/newsletter/revit-api-filters-quick-vs-slow-whats-the-difference.md) - [📙How To Master Getting Elements in Revit API](https://learnrevitapi.com/newsletter/master-getting-elements-in-revit-api-with-fec.md) - [🎦Video Tutorial on Automating Shared Parameters with Revit API](https://learnrevitapi.com/newsletter/revitapi-shared-parameters-tutorial.md) - [Why Beginners Shouldn't Be Afraid to Explore Revit API](https://learnrevitapi.com/newsletter/why-beginners-shouldnt-be-afraid-of-revit-api.md) - [Automate Key Parameters in Revit API](https://learnrevitapi.com/newsletter/automate-key-parameters-in-revit-api.md) - [Automate Shared Parameters in your Projects with Revit API](https://learnrevitapi.com/newsletter/automate-shared-parameters-in-your-projects-with-revit-api.md) - [🤔 Check if Shared Parameters Loaded with Revit API](https://learnrevitapi.com/newsletter/check-if-shared-parameters-loaded-with-revit-api.md) - [🌚Automate Dark Theme Icons for pyRevit with THIS Script](https://learnrevitapi.com/newsletter/automate-dark-icons-in-pyrevit.md) - [🤔 Did you know you could use pyRevit in Revit 25 for months ?](https://learnrevitapi.com/newsletter/pyrevit-for-revit-2025-wip.md) - [⌨️Use this code to load your custom UI forms in pyRevit](https://learnrevitapi.com/newsletter/load-your-custom-ui-forms-in-pyrevit.md) - [🔽 Revit API Parameter Basics for Beginners: How to Get, Read and Set](https://learnrevitapi.com/newsletter/revit-api-parameter-basics-for-beginners.md) - [📰New Sheet Generator for Revit with pyRevit Source Code](https://learnrevitapi.com/newsletter/free-sheet-generator-for-autodesk-revit.md) - [✨Big News for LearnRevitAPI: 400 Members✨](https://learnrevitapi.com/newsletter/big-news-for-learn-revit-api.md) - [🚀WPF Course for pyRevit - Lesson 04](https://learnrevitapi.com/newsletter/wpf-course-for-pyrevit-lesson-04.md) - [✨WPF Course for pyRevit - Lesson 03](https://learnrevitapi.com/newsletter/wpf-course-for-pyrevit-lesson-3-visual-studio-basics-for-beginners.md) - [✨WPF Course for pyRevit - Lesson 02](https://learnrevitapi.com/newsletter/wpf-course-for-pyrevit-lesson-2-install-visual-studio-for-wpf.md) - [✨WPF Course for pyRevit - Lesson 01](https://learnrevitapi.com/newsletter/wpf-course-for-pyrevit-lesson-1-what-is-wpf.md) - [📊How did I learn WPF for pyRevit?](https://learnrevitapi.com/newsletter/how-did-i-learn-wpf-for-pyrevit.md) - [➡️WPF Course for pyRevit [Coming Very Soon]](https://learnrevitapi.com/newsletter/wpf-course-for-pyrevit-coming-soon.md) - [👉 Improve User Selection with ISelectionFilter in Revit API](https://learnrevitapi.com/newsletter/advanced-selection-in-revitapi-with-iselectionfilter.md) - [👉 Basics of Revit API Selection in Minutes!](https://learnrevitapi.com/newsletter/basics-of-revit-api-selection-in-minutes.md) - [⌨️ How to Leverage Your Time in Revit with Code?](https://learnrevitapi.com/newsletter/leverage-your-time-with-code-in-revit.md) - [⌨️Use Type Hinting In Python for Revit API](https://learnrevitapi.com/newsletter/type-hinting-in-pyrevit.md) - [⌨️Did you know you can Shift+Click pyRevit Tools?](https://learnrevitapi.com/newsletter/button-modes-in-pyrevit.md) - [🗝️ The Secret to Free LearnRevitAPI Access](https://learnrevitapi.com/newsletter/the-secret-to-free-learnrevitapi-access.md) - [🔴 AU 24 [Replay] - Get Started with Revit API using Python](https://learnrevitapi.com/newsletter/au-24-replay-get-started-with-revitapi-using-python.md) - [👉 The Quickest Way To Learn Revit API](https://learnrevitapi.com/newsletter/the-quickest-way-to-learn-revit-api.md) - [🙋‍♂️My Revit API Journey from Beginner to Expert](https://learnrevitapi.com/newsletter/my-revit-api-journey-from-beginner-to-pro.md) - [Avoid These 9 Most Common Mistakes Revit API Beginners Make](https://learnrevitapi.com/newsletter/lesson-10-avoid-9-most-common-revitapi-mistakes.md) - [💡 Revit API Code Difference in pyRevit vs Dynamo](https://learnrevitapi.com/newsletter/lesson-09-pyrevit-vsdyn.md) - [💾 Backup Your Code Before It's Too Late... [EP. 8/10]](https://learnrevitapi.com/newsletter/lesson-08-backup-pyrevit-code-on-git.md) - [🧙‍♂️ How to be Efficient with pyRevit Code?](https://learnrevitapi.com/newsletter/lesson-07-reuse-code.md) - [👉 Your First pyRevit Button: An Easy Step by Step Guide](https://learnrevitapi.com/newsletter/lesson-06-your-first-pyrevit-button.md) - [📄 My pyRevit Script Template + Anatomy](https://learnrevitapi.com/newsletter/lesson-05-pyrevit-template.md) - [⬇️ Install These Tools for Revit API to Code Faster [Lesson 4/10]](https://learnrevitapi.com/newsletter/lesson-04-setup-dev-environment-for-revit-api.md) - [👀 StarterKit Secrets: Everything You Didn’t Know You Needed! [Lesson 3/10]](https://learnrevitapi.com/newsletter/lesson-03-starterkit-secrets.md) - [📁 Create your own pyRevit Extension in just 2 min [Lesson 2/10]](https://learnrevitapi.com/newsletter/lesson-02-get-started-with-pyrevit.md) - [🚀 Are you ready to Learn Revit API?](https://learnrevitapi.com/newsletter/lesson-01-revit-api-introduction.md) - [📢 Big News for Revit API Developers!](https://learnrevitapi.com/newsletter/big-news-for-revit-api-developers.md) - [Coming Soon: pyRevit Starter Kit](https://learnrevitapi.com/newsletter/coming-soon-pyrevit-starter-kit.md) - [pyRevit: How to import python3 packages like Numpy, Pandas or others](https://learnrevitapi.com/newsletter/pyrevit-how-to-import-python3-packages-like-numpy-pandas-or-others.md) - [Get The Most from Revit API Docs](https://learnrevitapi.com/newsletter/get-the-most-from-revit-api-docs.md) - [Purge View Templates with pyRevit](https://learnrevitapi.com/newsletter/purge-view-templates-with-pyrevit.md) - [Create View Filters with Revit API](https://learnrevitapi.com/newsletter/create-view-filters-with-revit-api.md) - [Create Interactive Revit Reports with pyRevit Linkify](https://learnrevitapi.com/newsletter/create-interactive-revit-reports-with-pyrevit-linkify.md) - [What was it like Learning Revit API on my own ?](https://learnrevitapi.com/newsletter/what-was-it-like-learning-revit-api-on-my-own.md) - [Revit API Resource You Didn't Know About](https://learnrevitapi.com/newsletter/revit-api-resource-you-didn-t-know-about.md) - [How to use IUpdater to create powerful features in Revit](https://learnrevitapi.com/newsletter/how-to-use-iupdater-to-create-powerful-features-in-revit.md) - [Revit API 2025 SDK is Out! Check the changes](https://learnrevitapi.com/newsletter/revit-api-2025-sdk-is-out-check-the-changes.md) - [How-To Suppress Warnings in Revit API?](https://learnrevitapi.com/newsletter/how-to-suppress-warnings-in-revit-api.md) - [pyRevit Hooks and Revit API Events Explained](https://learnrevitapi.com/newsletter/pyrevit-hooks-and-revit-api-events-explained.md) - [👀 Revit API can be simple. Check These examples](https://learnrevitapi.com/newsletter/revit-api-can-be-simple-check-these-examples.md) - [Stop Manually Dragging Views onto Sheets in Revit, use Revit API!](https://learnrevitapi.com/newsletter/stop-manually-dragging-views-onto-sheets-in-revit-use-revit-api.md) - [Stop Wasting your Time on Revit Sections. Automate with Revit API!](https://learnrevitapi.com/newsletter/stop-wasting-your-time-on-revit-sections-automate-with-revit-api.md) - [How to Cut Filled Regions with Detail Line in Revit API](https://learnrevitapi.com/newsletter/cut-filled-regions-with-line.md) - [Get Elements by Type Name using ElementParameterFilter](https://learnrevitapi.com/newsletter/get-elements-with-element-parameter-filter.md) - [PDF Freebie - Master Getting Elements](https://learnrevitapi.com/newsletter/pdf-freebie-master-getting-elements.md) - [My Programming Journey](https://learnrevitapi.com/newsletter/my-programming-journey.md) - [Learn Revit API - Course Preview](https://learnrevitapi.com/newsletter/learn-revit-api-course-preview.md) - [Select Elements Modifed By a User](https://learnrevitapi.com/newsletter/select-elements-modifed-by-a-user.md) - [Save all Families from Project](https://learnrevitapi.com/newsletter/save-all-families-from-project.md) - [Get Default Element Type](https://learnrevitapi.com/newsletter/get-default-element-type.md) - [Coordinate Systems with Revit API](https://learnrevitapi.com/newsletter/coordinate-systems-with-revit-api.md) - [Automate Shared Parameters](https://learnrevitapi.com/newsletter/automate-shared-parameters.md) - [Create Custom UI](https://learnrevitapi.com/newsletter/create-custom-ui.md) - [Revit to Excel](https://learnrevitapi.com/newsletter/revit-to-excel.md) - [pyRevit for Revit 2024](https://learnrevitapi.com/newsletter/pyrevit-for-revit-2024.md) - [Revit Lookup](https://learnrevitapi.com/newsletter/revit-lookup.md) - [pyRevit Forms](https://learnrevitapi.com/newsletter/pyrevit-forms.md) - [Chat GPT for developers](https://learnrevitapi.com/newsletter/chat-gpt-for-developers.md) - [Translate C# to Python](https://learnrevitapi.com/newsletter/translate-cs-to-python.md) - [Select/Pick Elements](https://learnrevitapi.com/newsletter/select-pick-elements.md) - [How to Convert Units in Revit API?](https://learnrevitapi.com/newsletter/convert-units.md) - [Revit API Filters](https://learnrevitapi.com/newsletter/revit-api-filters.md) - [Master Getting Elements](https://learnrevitapi.com/newsletter/master-getting-elements.md) - [Revit API Transactions](https://learnrevitapi.com/newsletter/revit-api-transactions.md) - [Revit API Parameters](https://learnrevitapi.com/newsletter/revit-api-parameters.md) - [pyRevit Script Anatomy](https://learnrevitapi.com/newsletter/pyrevit-script-anatomy.md) - [Create Your Own Revit Extension!](https://learnrevitapi.com/newsletter/create-your-own-revit-extension.md) - [Prepare Dev Environment](https://learnrevitapi.com/newsletter/prepare-dev-environment.md) ## Pages - [Learn how to Automate Revit with pyRevit and Claude Code](https://learnrevitapi.com/): Learn Revit automation with pyRevit and AI. Free Fast-Track course, StarterKit and tools from Erik Frits, trusted by 780+ students. - [Terms of use](https://learnrevitapi.com/terms.md): Terms of Service for the Learn Revit API platform: accounts, trainings, purchases, refunds, community calls and the rules for using learnrevitapi.com. - [Privacy](https://learnrevitapi.com/privacy.md): Privacy Policy of Learn Revit API: what personal data learnrevitapi.com collects, how it is used, who processes it, how long it is kept and your rights. - [Join AI-Lab: Build Revit Tools with AI](https://learnrevitapi.com/join-ai-lab.md): AI-Lab: build and deploy your own Revit toolbar with pyRevit and Claude Code. Three phases, weekly live calls, LRA Academy 2.0 included. - [21-Day pyRevit Challenge](https://learnrevitapi.com/join-challenge.md): 21-Day pyRevit Challenge: build 21 real Revit tools in 4 weeks with a 7-step process, daily videos and solutions. Then build your own. ## Resources - [EF-pyRevit StarterKit v2.1](https://learnrevitapi.com/resources/starterkit.md): Free pyRevit StarterKit: templates, code samples and resources to help beginners get started. Create your own pyRevit extension in just a few minutes. - [E-Book: Beginner's Guide to Revit API v1-2024](https://learnrevitapi.com/resources/ebook-revit-api.md): The Beginner's Guide to Revit API: get the roadmap to create your own Revit add-ins, from what the API is to your first working script. Free PDF guide. - [Download Revit API Stubs 2020-2026](https://learnrevitapi.com/resources/revit-api-stubs.md): You can download Revit API stubs to configure Revit API Autocomplete in your IDE (code-editor).