Skip navigation

Does anybody have any good starting points to begin learning about programming Revit API stuff?  I have no previous programming experience, but I figure I can’t be the first architect to learn this stuff from scratch.  I’ve started watching Jeremy Tammik’s video “Introduction to Revit Programming” several times, but I get lost pretty early on.  I think it might be for people that are already a little familiar with programming in other venues, but not for brand-new beginners.  I’ve already downloaded the MS Visual Studio 2008 Express Edition and installed the and C# versions, but since I have no background in programming, I really don’t know where to begin.

Any suggestions from the community?  I’ve thought about going out and buying something like “ for Dummies” or something like that, but I’d like to see if there is a better way to start that is targeted more towards architects.

As a side note, a friend at work recently installed Grasshopper for his personal copy of Rhino.  It seems like a pretty sweet set up and the parametrics look a lot more robust than Revit’s.  I’m going to have to learn those some day…



  1. I’m where you are except even lower on the totem poll. I’m not an Architect but I am a Cad Manager. I have gone through Visual Basic 6 for Dummies when it came out but it really didn’t help me with AutoCAD at the time as I hoped it would. I have come a long way with Visual Lisp for Cad and can make it do just about anything. Now that Revit has been out, I feel like I’m starting all over. I would like to stick to one language so I’m going to put forth the effort into C# for Revit. I’ve seen the C# for Dummies book at Amazon but what happened to me with Visual Basic is still fresh and I’m not sure I want to buy another book that won’t end up helping me. The most confusing part for me is that Revit 2010 has its own Macro Manager, Visual Express is free but doesn’t have all of the features that the Revit 2010 API Developer Guide.pdf talks about, and Visual Studio is $300! The bottom line is this. I need to learn enough C# so I can create macros through the Macro Manager. Can anyone point me in the right direction?

    • Hi Jimmy,

      What are you interested in learning to do with the Revit API? I find that it is always much easier to learn a new programming skill if you have a specific goal in mind?

      I’ve started a blog where I hope to help introduce the Revit API to new people like you. If you’d like to leave a comment at with some thoughts about what you’d like to learn, I will try to put together some posts on that subject.


  2. Try Google Sketchup for pure 3d modeling. It is somewhat inter operable with RevIt. It is a lightweight version of RevIt. It has a simple scripting language – Ruby. There is a free version to get started with. There is more online resource material than you can shake a stick at.

    Good Luck


    • Thanks for the suggestion Ric!

      I’m pretty familiar with Sketchup, and it is a great modeling tool for a number of reasons. I’ve found it really quite different than Revit though. (Disclaimer: I haven’t tried working with dynamic components in Sketchup 7 yet, as I don’t have the Pro version). My main reason for wanting to do programming in Revit is that it’s a major platform for integrated parametric modeling AND documentation in the Architecture industry. Other programs like Sketchup, Rhino, Maya, etc are great modeling tools, but don’t have the documentation tools like Revit.

      You might be onto something though with the idea of learning programming for a more open platform like Sketchup first, then moving onto Revit. Is Ruby a good language to learn for beginners? How much does it have in common with Revit’s available languages, C# and

  3. Some more food for thought:

    I am working on a comparison between SketchUp and RevIt. My background atarted with AutoCad 2.something. In the early days I worked with architecture and civil engineering/gis. More recently I spent about 2 weeks getting maybe 80% on the learning curve for Civil 3d for Site and small roadway development. I worked with 3d studio V1 and 2 also.

    For Sketcup I have been exploring it originally for “4d GIS in Google Earth” and have been amazed at its ease of use and future.

    I have only looked at demos for ReVit so far.

    It is interesting that you mentioned dynamic components. I was very impressed with the concrete beam/Rebar layout extension that has been integrated into RevIt as of 2009. My first thought was that there must have been a tremendous amount of programming that went into it and that stuff like that would probably be really tough in sketchup. Another thought was how tough it is to build a tool that attempts to contemplate every potential situation.

    Then later it dawned on me, that for just the geometry aspect, most situations could be probably be handled with a dynamic component in Sketchup, very little programming. The myriad of exception cases could be handled by hand as they came up, and automated as they came up too often. I think the scheduling aspect would not be that tough in Sketchup either.

    I am working on a dynamic component for a standard commercial door tool to prove out the concept. If it is as easy as I suspect, the open source environment that google is sort of becoming the flagship of could evolve Sketchup, comparatively overnight, compared to the sluggish pace that comes with proprietary based bureaucratically driven monsters like AutoDesk. I’m still trying to figure out why Autodesk is attempting to build Civil 3d on top of the old pardigm. Why not start with the RevIt pardigm to create a standard API for both.

    As far as documentation tools go, It looks like Sketchup is moving to fill that hole with Layout. It links a paperspace like front end to models. It looks to me like there is a trend toward having separate applications that focus on different aspects of the workflow process. The idea is create the best way to do something with the least amount of complexity. Autodesk has kind of always been using the “kitchen sink” or “20 hump camel” approach. Program multiple ways to do something and let the enduser figure out there own workflow. This keeps all the EGO’s inside the development team stroked, but does not promote a collaborative environment for programmers or endusers.

    Here is a crude breakdown of the categories.

    Design – Right Brain – holistic
    Refine – Left Brain – Linear
    Presentation – right brain to left brain
    Viewing – left brain to right brain
    Workflow and Colaboration – left brain to right brain

    I think Google has a huge cultural lead over Autodesk for the makings of the missing “Glue” software for Workflow and Collaboration. I think Proprietary software is written with an unconscious bias against collaboration. Autodesk is attempting to open the black box they have created, but I don’t think they understand the depth of the problem.

    I am new to Ruby, and so far it has been a series of happy discoveries . One of the authors main design objectives was to make is easy and fun to use. My experience with the other programming languages is that they were optimized to make it easier for the machine. Even though Ruby is probably 1/100 the speed in execution compared to something like C, I think trading my time for cpu time is generally a bad idea. So far it looks like ruby eliminates a lot of the overhead that I was so frustrated with in VB.

    As for .NET, I think Microsoft has created an overly complicated mess in an attempt to have both efficiency and proprietary at the same time . I think the Dll version control fix in .NET is the an exampled that reveals real problem coded into the foundation of the underlying system. It attempts to overcome the complexity of giving people access to your segments of your code to help them to be more efficient while maintaining your copyright over that material. Opensource eliminates this problem by allowing others to reuse and modify code in a way that does not lead to this kind of segmenting that attendent accounting/tracking problem. With Opensource change can occur from the ground up instead of hampered from the top down.

    I have been exploring the open source “GNU world” ,and so far it is uncanny how much the philosophical underpinnings are in line with my own core belief system. I am moving toward GNU/Freeware applications wherever possible.

    Good Luck


  4. I’m a displaced architect trying to, slowly and painfully, regain
    employment by throwing newly acquired skills on my CV or resume.
    I’m going with the revit 2010 free downloadable version, attend
    a local Autodesk authorized 3-day Revit Architecture class at $120 instead of $350 a day, thanks to Autocad’s Assistance Program, and try self educate for a while with the free download option.Many years in Autocad, some in Microstation and lately on
    Sketchup, gives me a sense of similarity between revit’s 3D and
    how sketchup works.
    Can someone further elaborate on this scenario?

  5. Just a note to append onto the end of this thread. I’ve programmed in a production environment since about 1988. I started out with C and Assembly and now I do stuff in .NET and Flex/AIR/Actionscript. I feel i have a good handle on web and desktop development; however, leanring to program with the Revit API is quite challenging and not like any other API I’ve encountered. To do something as simple as creating a fricken wall in an empty document is not as straight forward as one would think. Categories, Families(Hosted, Component), elements, groups, parameters, etc, etc, etc, …

    Anyway, good luck…

  6. Learning a new language and a new program is tough, our industry is changing so quickly and for us who have been in it for a while maybe too quickly. That said you might try the SDK for Revit or AutoCAD. Jerry Winter’s has a book out about AutoCAD and that is very good. It is downloadable from his website. The problem is that you don’t know what you don’t know and many of these guys have forgotten that some of us don’t know Jack about programming. Also try the Augi site. I guess what I really am trying to say is learning all of this is overwhelming at times, but you won’t find a more supportive group of people than the guys that are involved in programming Autodesk products. I am working my way through the Developer’s Guide for Revit currently and want to pull my hair out, but if I stick with it I will be able to understand what Jeremy Tammik is trying to tell me. Do look at my post “Frustrated” on Augi because I am trying to burn of my steam by writing about the mistakes in the Developers Guide. I hope the posts help other beginners. Oh, and for those of you who want to use VSTA for Revit look in the User’s Guide and the help for Revit there is documentation in both. Good luck all.

  7. I don’t think Ric understands the issue. Sketchup is great for creating presentation-type models, but as serious software solution for an architectural or engineering firm it’s not even a contender. Nor is it intended to be.

    Right now Revit is the standard BIM solution for Architectural and Structural firms. As far as presentation and clash detection goes, the norm is to use NavisWorks. Go ahead and play with Sketchup if you want, I’ll stick with Revit.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: