Start up with revit API

Dear all
i would like to leran Revit api and how to add plugins in to revit,
I am not sure the right way to start, but i would be very happy if someone will give an advice.

Tha k you

TIP: search the internet for thebuildingcoder

1 Like

Thanks marcel,
But the building coder, isn’t advance :slight_smile: ?
And tha ks for quick response

Thank you sk much and i really appreciate your help.

Have a great weekend

A good place to start: My First Revit Plug-in Overview

This is definitely off topic for the Dynamo forums though. If you would prefer to talk about your first zero touch node instead… :slight_smile:

1 Like

Hey Jacob
Thank you for replying, but do you think i should have basic understanding of C# first?

Yes, a basic understanding of the tools used to write a tool are a must.


i think you are right i need to finish python first. and afterwords i will move to API.
however any tips where i should develop myself with python for dynamo?

thanks in advance :slight_smile:

I Really thank you for the amazing answer,
I will start 101 python and on other hand I am taking very intensive javascript course I hope i will understand another languages (C#…) based on it.
Because i would like to do plugin for revit …ect. one day.
Againg Really thank you :slight_smile:

It sure is best to know a language first before learning a specific API as it is a smoother way to learn and jump right in. However, I learnt C# and Revit API simultaneously, it was a headache but I found having context and an idea of application really drove my learning, I see it often where people learn a language on its own but don’t have any idea what to apply it to and frequently give up learning altogether as they don’t see how to apply the usually boring examples to their own projects.

Also, you can totally walk a marathon if you really want, as long as you have the determination to get to the end you are all good.

I learned the essentials on a Commodore 16 many many years ago (i’m 57 now).
I have seen it develop to what it is now.
same principles, different applications and different settings
once you get it its just another language


I Really thank you for the information and the motivation,
The funny when you graduate from school you think you know a lot, but in reality you need to start over again. :slight_smile:

once you do understand explain it to your supervisor
you’ll need soft skills

1 Like

For Python I used SoloLearn, an app on my phone during commutes. Took a month of standing room only T rides, but it made my time productive when I would otherwise been idle.

For Revit API via Python, most of what I know I learned by recreating, editing and reverse engineering the work of others. Early versions of Archi-lab from @Konrad_K_Sobon, Rhythm from @john_pierson and the lost but not forgotten DanEDU from @erfajo are some lost ‘educational staples’ from when I got my training wheels. Now @Andreas_Dieckmann’s clockwork package is still mostly in Python (and ever expanding), and the GeniusLoci by @Alban_de_Chasteigner is a more recent example.

Learning with an application is often ideal, but you will want to have a VERY simple goal in mind. Crawl before you to learn how to run and all that. I suggest you select something others have done and try to make it better by adding features or list looping to existing content.


Definitely what @jacob.small said. I took a single course for python at university and it taught me the basics of for loops, while loops but all of the more advanced things (recursion, lambdas, maps) and API I learned from looking through the codes of others on this forum or by testing ideas within Dynamo.

@solamour made a github especially for people who are trying to learn Python for use in Dynamo that includes sample scripts that you can go through to try and understand the logic behind. I would definitely recommend this after learning the basics of python:


@jacob.small, you forgot the legendary Springs!!! :smiley:


Agreed, long and painful and full of blisters. I think the point is though, as Jacob mentioned is to always keep sight of your goals and apply what you are learning in context to those goals as you are learning.

I find programming more of a quest game rather than a marathon though, you learn what you need to pass the level and you can always go back and improve with the insight you learnt from your first try - that’s my analogy anyway. :blush:


Just to add to this, I did do a presentation at AU London 2018 on Python - and this is available at the same link on the Wiki page. This should cover a lot of the basics of Python and get you started as it is Dynamo specific:

Would recommend downloading in lieu of reading online however as the load function doesn’t work so well on Github for PDFs.


that’s great job