Valentin Noves

Learn to Code Being an Architect

JANUARY 03, 2017 IN BIM,   ARCHITECTURE,   INNOVATION

Among architects, civil engineers or Project managers it is an odd thing to find a professional with programming skills, but this is a paradigm that is changing really fast

There are multiple reasons why we should learn programming as construction professionals:

MasterSoftware image

The first reason would be that it allows us to truly master our tools; When we learn how to code we start understanding more deeply the way the software we use works on a daily basis.

Also, it is not a minor thing to say that by coding we gain the power to maximize the things we can do with our program, by developing customized solutions adapted to our specific necessities.

SteveJobs image

As Steve Jobs said, it is important because coding gives us a background on a different way of thinking, so in the end, this can lead us to benefit not only for the development of programmatic solutions but also to change the way we work in general.

ENgland image

A clear example towards this paradigm is the case of the UK, which is the guinea pig for most ambitious attempts to get kids to start coding followed by some changes in the national curriculum. ICT – Information and Communications Technology – is done, replaced by a new “computing” curriculum including coding lessons for children as young as five.

ToolBox image

Thousands of times I’ve heard people complaining about the software they use, not being able to do all the tasks they want due to constraints of the program and as a result they end up being frustrated and wasting a lot of time and money.

Here is a good one for all of them, when you code you cannot only create your own standalone applications but also start creating plugins for the software you use. For this purpose the software companies create an API(Application Programming Interface) that is a set of functions and procedures that allows the creation of applications which access the features or data of an operating system, application, or other services.

Automation image

Programming allows us to automatize processes and as a result we can do tasks so much faster than we did in the past, this will lead to cost savings and also to a better quality, as we all know, when we have to do a task over and over again, we get bored and when that happens people start to make mistakes, but when you have something automated you can guarantee that you will have exactly the same outcomes all the times.

CompetitiveAdvantage image

It is no secret that every day it is more difficult to get decent clients in our industry due to globalization, technology and communication, so when that happens everybody says that the best strategy is being sure that your services have an added value that gives you a competitive advantage.

Based on this we can say that having coding skills perfectly fits in the “added value” description, so even if you don’t really know how this might help you, be sure that this will be a great goal to add to your career.

On the contrary of what most people think, coding is extremely fun and when you start creating applications it gets really addictive, believe me when I say that you will spend hours and hours of your spare time in front of the PC trying to create the perfect algorithm.

ProgrammingLanguages image

Based on my experience as a programmer of Revit, AutoCAD, Dynamo and Grasshopper, I think your options should be one of the above Programming Languages (The 4 Languages are supported by the Revit API).

All of them have different advantages and disadvantages, but If I have to choose a language for a beginner, I would definitely go with Python; apart from the compatibility that this language has with many of the AEC design programs, I think it is the easiest one to learn as it is almost like being written in plain English and also it is used a lot for Data science and Data visualization that I think it will be a needed skill in the short term in the AEC industry.

StepsToLearn image

There are 4 steps that you should follow if you want to efficiently become a good programmer in the software that you use.

1. First of all you need to learn how to use the software; I’ve seen many incredible programmers that don’t know what they are actually coding or creating tools that are not adding value for the final users.
2. Learn a Programming Language, this might seem really silly but it is not; I’ve met many people that tried to learn how to program an API without the appropriate programming language skills and they ended up in an infinite loop of try and error and in most cases not getting anywhere. So don’t waste your precious time just getting into the API without learning a language, there are many free good online tutorials.
3. Before starting to work on your API, you must have basic knowledge about how to properly develop software, for example the uses of GitHub, Databases, UML, etc.
4. Finally search for the SDK(Software Development Kit) of your program and start learning how to use the API. If you have followed these steps that I told you before, at this point it will be a piece of cake for you to develop anything you want.

ProgrammingArchitect image

Don’t be afraid, at the beginning, programming might look as something really difficult and frustrating, but believe me when I tell you that the learning curve is steep at first but you will quickly start to develop new solutions and see that the way you work and think will change a lot and finally you will start seeing the benefits of it.