Beginner Looking for a Revit API Learning Roadmap

Hi everyone,

I’m hoping to start learning the Revit API, but I’m honestly not sure where to begin. There are so many resources available that it’s a bit overwhelming.

I have a background in BIM and use Revit and Dynamo every day.I have little to no experience with C# or the Revit API.

I’m looking for guidance from those of you who have already gone through this learning journey.

If you were mentoring someone who’s just starting out, what would you recommend?

  • What should I learn first?
  • Which resources (books, courses, YouTube channels, blogs, or documentation) are worth following?
  • Are there any beginner projects that helped you understand the Revit API?
  • Is there anything you wish you had known when you first started?

I would really appreciate it if you could share your learning path or point me toward the resources that helped you the most. Any advice would mean a lot.

Thank you very much!

If i should do that and have time for that, i would try Gavins c# videos, i have it from other, that should really help for a start…try it and just jump into it :wink:

Thanks @sovitek!

Also if youre more keen on python+revitapi Erik Fritz and his LearnRevitApi platform are top notch. Very python leaning though. He also has a great vscode integration and is making an IDE with heaps of AI assists and stubbing.

AI is actually a good tutor as well if you ask it what you need to learn about, ideally learning and trying as you go. It’s how i learnt C# whilst looking at open sourced addins on the repos of @john_pierson and @SeanP.

John also pointed me towards the Nice3point template (which we use in my youtube series). I moved away from it eventually to reduce dependency but it helped me skip having to learn how to set up a revit addin from scratch and just focus on coding and using the API.

Having used python first and c# second, i do recommend the latter - even if just because intellisense in visual studio will make it easier to navigate the API and AI fills the gaps nicely that I couldnt cross when i learnt python back in the day.

I also have an addin template without any dependencies except for having revit on your machine here:

Thanks for the mention @GavinNicholls, and as he points out, there are numerous resources out there. He commented on his template as well as Roman’s at Nice3point, and I have a couple out there under TorsionTools as well.

One comment I would make, and it isn’t the way I did it, but looking back now I wished I had, make sure to take some time to WALK in c# before trying to RUN in the Revit API. Most people I think start off assuming that all the examples they find out there for Revit are all the best ways to do those things, and they may be, but I have learned that a lot of times there are better ways to build the foundation of apps or add-ins in the language, then just apply Revit API stuff on top.

I have also used resources outside of the AEC as well that have been good.

Great @SeanP thanks for sharing…where have been, long time ago we have seen you here mate :wink: to long time :wink:

Yeah, I don’t get around here that much anymore @sovitek, I think unfortunately I got burned out on people “demanding” other do their work for them and often with little to no initiative of their own.

That and I rarely use Dynamo except for one off or unique fixes in projects. I honestly keep trying to get more into the geometry side of it, but never seem to make it out from under the pile long enough to figure it out!

Keep fighting the good fight man, and wish you all the best!

Cheers Sean…yeah i know excacly what you mean…But everyone has to start somewhere, even if the goal isn’t really to finish someone else’s job, though sometimes that is how it turns out. If we can just get someone interested and have them take it further, that’s a win for the industry. That’s how I see it: if we really want to develop the industry, we have to do this… Thanks, Sean… let’s hope you drop by once in a while, then… :wink: thanks again

I don’t disagree, and that is why I enjoyed being here and as active as I was, and thank you for fighting the good fight for sure!

I will try not to be such a stranger, but I may be working on some c# content in this realm, but trying to make sure I have everything lined up before half ass releasing something…

We will looking forward to that…for sure…thanks

Semi-agree.

When I wanted to start building zerotouch nodes myself, I signed up for a deep dive coding bootcamp for asp.net website buidling.

This course did not teach me C# Revit plugins from scratch, but what it did do was force me to be in C# and visual studio for 4 hours a day, 3 times a week.

After a while I started building C# dynamo nodes while in class and was ignoring the course work. :sweat_smile:

Also, for Dynamo learnings this is an archive of my old courses for Dynamo.(Disclaimer: there is no ongoing support for the courses)

thanks John…but i will just say really many ways to fall into developing AEC someone just try learn Revit , someone do it really hardcore, someone do it from Dynamo, someone go further with Python, and someone do C# zerotouch, someone C and someone C++ and someone only use Claude and vibe coding…but a place for all, thats why how it is so great…a space for all…and if talk revit…basic its just about build a building and earn so much money as possible for every company…even its funny or not…hahahah

I understand what you are saying @john_pierson, and do also agree with aspects of that. Generally what I was trying to say is that if you just try to learn Revit API and C# tags along for the ride, you may run into issues that otherwise you wouldn’t. If you dive in the deep end of C# and forget about Revit API, you may get burned out..

Now, I don’t expect anyone, including myself to be a master coder or “true” software developer, but as a recent example I went back into an older project of a console app that copies information to a cloud server once a day. We were doing enough work with the applications that it supports that once a day wasn’t enough, but it took nearly 30 minutes to run each time and that was too long of a gap mid-day. Now, that app was roughly 4 years old at this point, and I have learned A LOT more about C# and with some refactoring I was able to get it down under 2 minutes AND added functionality.

In the end, its ALL about just getting starting somewhere and not giving up when it seems like a mountain is in front of you. Once you get the hang of it, it is very liberating!

yeaps…“In the end, its ALL about just getting starting somewhere and not giving up” That is the key to everything in our lives. no matter dynamo, python, c sharp…or whatever