Announcement

Collapse
No announcement yet.

Python: Why learn it?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Python: Why learn it?

    TLDR: Who should learn Python, and who will not benefit much from learning it?

    I'm on the fence about learning Python. Not long ago I jumped into the camp of Dynamo enthusiasts, though I am still certainly an amateur with it, and naturally I've come across many conversations where Python is a central theme. These focus on what a person can do with Python, but I want to take a step back and ask why I might learn Python. Another way of asking this is "Who should learn Python and who should not?" For example, I am working in a small architecture firm and working toward becoming a licensed architect. I use Revit daily and am sold on learning it as well as I can, and now am also eager to see what Dynamo can offer to make my workflow even more efficient and smooth. I am the most experienced Revit user in my firm and consequently am the point person for Revit questions from my coworkers. In short, I am two layers deep in digital tools and am my office's personified "Revit for Dummies", and am wondering: for whom is it worthwhile to dive to a third layer, and for whom is this a deviation toward career goals?
    Maybe another way to think about this is asking what are the benefits of learning Python that a non-Python user does not reap?

    #2
    I have not jumped into Python myself yet, but do use Dynamo for my work.
    So far most things I want to automate I can do with just Dynamo and that works well. With Python you can do more, get too more stuff in the API, do things quicker and simpler (if you know how to code).

    So who should learn it? I think people that use Dynamo and run into things they can't do with just Dynamo and are interested to learn more and dig into that 3th layer as you say.
    Company Website: www.deurloobm.nl
    Revit Ideas: Is this family Mirrored? | Approve warnings | Family Type parameter just those in the family

    Comment


      #3
      Thanks for your input! That makes sense, I'll become more familiar with Dynamo and will, as time goes on, find its limits, at which time I'll likely have a better idea if learning Python is right for me.

      Any other thoughts, anyone?

      Comment


        #4
        I would agree with Robin. For the most part, packages that are available in the package manager get what most people need to be able to use Dynamo. Python comes in where you want access to something in the API (which means you've already researched something that you know the API can do and you do not have a node that completes that task). Python provides this access without having to write your own Zero-Touch nodes, which is a long process itself, but allows you to start getting your feet wet with the Revit API in a .Net environment. From there, you can then start migrating over to writing your own Revit Addin, if that's where you want your career to go.

        As for another one of your questions, "Who will not benefit from learning it?" There is not a terribly high return on the investment, though I would argue there is not much of an investment to picking up python. So, if you are a person who is already working beyond 40 hours a week being an architect and you want to continue to be an architect, then there is probably not a lot of value for that person. Someone who wants to create Dynamo graphs and build processes to benefit their firms are going to find that value.

        Comment


          #5
          It sounds like learning Python is more beneficial for people who enjoy improving the workflow and tools available for themselves and others in the industry, and who are less inclined toward directly managing the designs of buildings. In other words, learning Python helps BIM Managers, consultants and add-in sellers more than it does Principal Architects. Would you agree with this, kraftwerk and Robin?

          Originally posted by kraftwerk View Post
          There is not a terribly high return on the investment, though I would argue there is not much of an investment to picking up python.
          That's news to me, my impressions from looking at Python scripts is that the language would take a significant amount of time (a large investment, in your words) to learn. Is picking up Python quickly dependent on someone already having learned another coding language, such as C# or .Net? Or, since in your opinion "there is not much of an investment to picking up Python," could someone like me with no experience in coding languages learn Python in, say, a matter of weeks, if I spent an hour or so a day reading and watching videos about it?
          Last edited by redrunner26; April 21, 2021, 03:06 PM.

          Comment


            #6
            Originally posted by redrunner26 View Post
            It sounds like learning Python is more beneficial for people who enjoy improving the workflow and tools available for themselves and others in the industry, and who are less inclined toward directly managing the designs of buildings. In other words, learning Python helps BIM Managers, consultants and add-in sellers more than it does Principal Architects.
            In my opinion, you are still going to need someone in a firm to setup and establish graphs for those that are principals to use. If you are a BIM Manager, there is going to be benefit to you learning Python or any coding language. I would always urge someone, even a Project Architect, Interior Designer, Intern, to continue to polish your craft. Always be improving yourself. If that is going to trade shows just to learn about new products, or taking an online class about Fire Rated Door assemblies, etc., continue to be a life-long learner. I feel it better helps you to stay in a job if things ever get rough. You as an Architect that knows Dynamo, Revit, Enscape, etc. vs. the Architect that knows CAD really well, positions the first to be able to produce a product they can show a client and respond to what the market wants in today's landscape.

            As a BIM Manager, if you feel that Python is a beneficial thing to learn for your career, I would say go for it! I believe it will be beneficial to learn as well. This get you in to a better mindset to start to understand how to use and abuse Revit and gets you to thinking how coders have to think to bring you that product called Revit. Plus, you can begin thinking about larger concepts, such as Hypar and Speckle (which is where my mind is at these days). But, I could never get to those things without first learning the basics of Dynamo (list management), Python, and (ultimately for me) c#.

            Originally posted by redrunner26 View Post
            ... my impressions from looking at Python scripts is that the language would take a significant amount of time (a large investment, in your words) to learn. Is picking up Python quickly dependent on someone already having learned another coding language, such as C# or .Net?
            I should mention that I learned c# long before Python. And I'm not great at either one. So I spent a lot more time learning about the Revit API than I spent trying to understand C# or python. Because I wanted both of those languages to do something for me, i.e. manipulate Revit. Same with Dynamo. They are just a means to an end of getting them to manipulate Revit. So I never thought I needed to learn them well. I'm not going to be a professional coder. If it works, (guess what) it works.

            I think picking up Python would not take a tremendous amount of effort. The reason I said that is because it will take a lot, lot longer to learn what Revit wants from the API than it ever will of getting the syntax right in Python. That's what will take a long time.

            Comment


              #7
              Thanks for the detailed response, that is quite helpful. I'll weigh these as I consider learning Python, the Revit API, and other specific tools of the trade.

              Comment


                #8
                Originally posted by redrunner26 View Post
                It sounds like learning Python is more beneficial for people who enjoy improving the workflow and tools available for themselves and others in the industry, and who are less inclined toward directly managing the designs of buildings. In other words, learning Python helps BIM Managers, consultants and add-in sellers more than it does Principal Architects. Would you agree with this, kraftwerk and Robin?
                To be honest for me there are 2 kinds of Dynamo users. The ones that process data and improve workflow and those that use Dynamo to create a building. I'm one in the first group, so I manipulate geometry that is already there, by changing materials for example of I shift around and manipulate data in a project or create things like Views and Sheets.

                As I do not know Python I'm not really sure if it is useful equally for both those groups of Dynamo users, but I do know that I see people use Dynamo and Python that are 'just' Revit modelers like me and want there life to be easier and less boring, that is why I use Dynamo too most of the time (create x amount of views and sheets is pretty boring if you have to do that by hand).

                I think BIM managers mostly use Dynamo to get stuff out of the model and check things inside the model and with Python you could do more complicated tasks I think (again not really sure).

                For consultants and add-in seller I think Python might actually be to 'basic' and they go with C# for example.

                And then there are people like John Pierson that use a lot of Python to build there Dynamo Nodes and Ehsan Iran-Nejad also uses Python for the pyRevit add-in (guessing going by the name).
                Company Website: www.deurloobm.nl
                Revit Ideas: Is this family Mirrored? | Approve warnings | Family Type parameter just those in the family

                Comment

                Related Topics

                Collapse

                Working...
                X