Tired of Repetitive Work in Revit?
Tired of Repetitive Work in Revit?
Begin Your
Begin Your

evit
evit
Automation Journey.
Automation Journey.
It happens to nearly every Revit user.
It happens to nearly every Revit user.
You face the same repetitive tasks that steal hours
from your day... What if you could change that?
You're facing the same repetitive tasks that
steal hours from your day...
What if you could change that?



Read by 8750+ Revit Professionals




Carlos Rothmann
BIM Specialist
This is the best learning material
on the internet.
Interactive, easy to use and with a lot of information. The code sample exceed my expectations
, it saves a lot of steps and work.

Carlos Rothmann
BIM Specialist
This is the best learning material
on the internet.
Interactive, easy to use and with a lot of information. The code sample exceed my expectations
, it saves a lot of steps and work.

Gavin Crump
BIM/Computation Lead Aussie BIM Guru /Architectus
Erik has been on my BIM radar for a while now.
I'm constantly impressed by his abilities to take complex subjects like the Revit API and break them down in a friendly way
.

Gavin Crump
BIM/Computation Lead Aussie BIM Guru /Architectus
Erik has been on my BIM radar for a while now.
I'm constantly impressed by his abilities to take complex subjects like the Revit API and break them down in a friendly way
.

Gavin Crump
Architect
Erik has been on my BIM radar for a while now.
I'm constantly impressed by his abilities to take complex subjects like the Revit API and break them down in a friendly way
.

Ilnur Bikbov
BIM Coordinator
This E-book helped me grasp the basics of the Revit API and PyRevit
, which I had struggled with before.
Thanks to the clear explanations and practical examples, I created my own custom Revit extension.

Ilnur Bikbov
Architect
This E-book helped me grasp the basics of the Revit API and PyRevit
, which I had struggled with before.
Thanks to the clear explanations and practical examples, I created my own custom Revit extension.
🤔Why Learn Revit API?
🤔Why Learn Revit API?
🤔Why Learn Revit API?
Revit isn't perfect, but Revit API can make it much better.
Revit isn't perfect, but Revit API can make it much better.
It allows us to customize it to our own needs and automate boring repetitive tasks.
It allows us to customize it to our own needs
and automate boring repetitive tasks.
It allows us to customize it to our own needs and automate boring repetitive tasks.







Automate Repetitive
Automate Repetitive
Automate Repetitive
Automate your boring work
Custom Dream Tools
Custom Dream Tools
Custom Dream Tools
Every office has its own needs
In-Depth Reports
In-Depth Reports
In-Depth Reports
Understand your BIM data
Many Fail Right At The Start…
Many Fail Right At The Start…
Many Fail Right
At The Start…
Revit API isn't as complicated.
But many don't even know where to start, and
that leads to a lot of confusion and wasted hours.
And as a result - many give up on Revit API.
Revit API isn't as complicated.
But many don't even know where to start, and
that leads to a lot of confusion and wasted hours.
And as a result - many give up on Revit API.
The Solution?
The Solution?
The Solution?
Follow my Roadmap made specifically for beginners.
Learn the basics you need step by step without feeling overwhelmed.
Follow my Roadmap made specifically for beginners.
Learn the basics you need step by step without feeling overwhelmed.
Revit API
Can Be Easy.
Revit API
Can Be Easy.
Revit API
Can Be Easy.
# Don't take my word for it,
# Try it yourself! 👉
# Don't take my word for it,
# Try it yourself! 👇
Select Untagged Doors in View
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#📦Variables
active_view = doc.ActiveView
#👉 Collect Doors and Tags in View
all_doors = FilteredElementCollector(doc, active_view.Id).OfCategory(BuiltInCategory.OST_Doors).WhereElementIsNotElementType()
all_tags = FilteredElementCollector(doc, active_view.Id).OfCategory(BuiltInCategory.OST_DoorTags).WhereElementIsNotElementType()
#🔎 Check Tagged Doors
tagged_door_ids = [tag.GetTaggedLocalElements()[0].Id for tag in all_tags]
untagged_doors = [door.Id for door in all_doors if door.Id not in tagged_door_ids]
#🪄 Select Untagged Doors
from System.Collections.Generic import List
uidoc.Selection.SetElementIds(List[ElementId](untagged_doors))
Select Untagged Doors in View
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#📦Variables
active_view = doc.ActiveView
#👉 Collect Doors and Tags in View
all_doors = FilteredElementCollector(doc, active_view.Id).OfCategory(BuiltInCategory.OST_Doors).WhereElementIsNotElementType()
all_tags = FilteredElementCollector(doc, active_view.Id).OfCategory(BuiltInCategory.OST_DoorTags).WhereElementIsNotElementType()
#🔎 Check Tagged Doors
tagged_door_ids = [tag.GetTaggedLocalElements()[0].Id for tag in all_tags]
untagged_doors = [door.Id for door in all_doors if door.Id not in tagged_door_ids]
#🪄 Select Untagged Doors
from System.Collections.Generic import List
uidoc.Selection.SetElementIds(List[ElementId](untagged_doors))
Select Untagged Doors in View
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#📦Variables
active_view = doc.ActiveView
#👉 Collect Doors and Tags in View
all_doors = FilteredElementCollector(doc, active_view.Id).OfCategory(BuiltInCategory.OST_Doors).WhereElementIsNotElementType()
all_tags = FilteredElementCollector(doc, active_view.Id).OfCategory(BuiltInCategory.OST_DoorTags).WhereElementIsNotElementType()
#🔎 Check Tagged Doors
tagged_door_ids = [tag.GetTaggedLocalElements()[0].Id for tag in all_tags]
untagged_doors = [door.Id for door in all_doors if door.Id not in tagged_door_ids]
#🪄 Select Untagged Doors
from System.Collections.Generic import List
uidoc.Selection.SetElementIds(List[ElementId](untagged_doors))
Why Python
Why Python
Why Python


?
Python is the most popular for a reason.
It's the quickest and easiest to begin with,
and it's also very forgiving for beginners.
Python is the most popular for a reason. It's the quickest and easiest to begin with, and it's also very forgiving for beginners.
In short - Perfect for busy AEC Experts.
In short:
Perfect for busy AEC Experts.
Beginner-Friendly
Beginner-Friendly
Quick to start
Quick to start
Plenty of Examples
Plenty of Examples
FREE E-Books
FREE E-Books
Get Beginner's Guide to Revit API that will help you on your programming journey step by step without feeling overwhelemed.
Tutorials
Tutorials
Learn the basics with my free tutorials.
Course Platform
Course Platform
The most comprehensive roadmap to help you get started with Revit API.
Get access to multiple courses and private community where you can get direct help.
Resources
Everything You Need
To Get Started
Everything You Need
To Get Started
Everything You Need
To Get Started
Dive into my comprehensive collection of resources
that help you begin automating Revit.
Dive into my comprehensive collection
of resources that help you begin automating Revit.
Podcast
Podcast
Listen to what other experts in AEC industry say about automation with pyRevit.
Revit API Docs
Revit API Docs
Find how to use Revit API with modern and easy to navigate online documentation.
Want to be Revit Hero?
Learn Revit API!
Want to be Revit Hero?
Learn Revit API!
Want to be Revit Hero?
Learn Revit API!
Take your first step today towards Revit Automation.
Take your first step today towards Revit Automation.
