Programming languages for the BIM industry you need to know in 2020 (2024)

Programming languages for the BIM industry you need to know in 2020 (2)

Building Information Modeling (BIM) is not just for engineers anymore. A few years ago, writing a Lisp routine in AutoCAD was enough. These days, knowledge in Python or C# to build a custom API plugin or do more tailored tasks in Dynamo is definitely preferred.

Even though Autodesk Dynamo and Rhino Grasshopper are not actual languages, I still wanted to include it in this review. It was hard to ignore the growing interest in this tool throughout the year. Can’t forget about Forge tools from Autodesk which help build applications that tap into design and engineering data. Just looking at what has already been done with Autodesk Forge - you will see that Autodesk is running towards cloud technologies, which means we will see a lot more web applications and cloud collaboration in the near future.

Without a doubt 2019 was a Python year, everyone was interested in it, programming or at least trying it. Thirty percent of all Google searches were somehow related to Python.

So, let’s get started. I split this overview on the following categories: Web development, Scripting/Add-in/Desktop development, VR/AR development, iOS/Android development

I will take into consideration the overall popularity and usability of the languages. Also I’m going to take the statistical data from TIOBE, PYPL, INDEED, Stack Overflow, LinkedIn and Glassdoor.

JavaScript is #1 on this list. Javascript has come a tremendous way in the past 15 years. It was the most popular language in 2019. There are many packages and frameworks built on top of Javascript. Now it’s modern, fully featured, and a very flexible language. The vast majority of free and open source user interface and user experience (UI/UX) libraries are available on Javascript. The entire open source Javascript ecosystem is just absurdly robust. With Javascript we can extend the project by using the authentication libraries from Microsoft, the mapping libraries from Uber, the UI components from Google, the rendering framework from Facebook, and the backend server design of Netflix. This is all free and open source maintained by massive companies with the resources to do so.

With JavaScript we are building back-end servers, website front-ends, web apps that can function as a web site, but can also cache and store offline data.

#2 is Python. Python is one of the best programming languages out there. It is also one of the top 5 programming languages and it’s the fastest growing major language in the world. Python’s growth exponentially increased in the last five years due to its adaptation for Machine Learning (ML) and data science. And since ML is becoming a predominant tool, it seems like a good idea to start building some Python skills now.

Python’s general purpose is server side programming. It’s working directly with file systems on the server side. We can use all its power to analyze data not only for machine learning but also data science, math and analytic fields. It does all this work behind the scenes for web-sites. There is no doubt the interest in Python will continue to grow.

#3 is PHP. The Tiobe index has it in 8th place and Pypl index in 5th place, but it deserves to be #3 for the AEC industry and here is why. PHP is a server side language. It is very easy to use especially if you are working with MySQL. At some point in a construction project you might have a requirement for database customization. MySQL is one of the simplest but most powerful databases. The fact that MySQL and PHP sometimes are already pre-installed on your machine makes it even more attractive.

Some of the developers might say that PHP is irrelevant today. As an argument we would say that in the BIM environment the higher up management is not usually on-board with any coding projects. They are immediately falling into the “return on investment” question. To avoid difficult conversations it could be easier to set up a Revit-ODBC connection along with XAMPP on one of the office computers as well as writing simple PHP scripts to work with data in MySQL would be enough for most of the individual trades. It can be a local web app for material or spoolsheet tracking, and it’s very easy to manage.

From a technical standpoint, developers are constantly updating PHP, so PHP has the future.

Any motivated Revit user, BIM manager, architect, or engineer can create their own custom plugins. And since we’re talking about programming languages, I will put C# in first place for add-in development and scripting because of its versatility and applicability in other areas of programming. But Revit APIs are built on .NET, for this reason you can use any language for this platform.

Choosing C# for desktop app development would also be your best bet. You will never find a better language for the most popular OS in the World — Windows, not to mention, all of the main construction programs run only on Windows.

Autodesk Dynamo and Rhino Grasshopper — a convenient tool for designers who don’t want to code. This is a powerful tool and everyone can use it. Regular nodes fit in a basic knowledge level of Dynamo. A number of nodes are growing rapidly with new versions. If you’re an intermediate level user, you can use assemblies created by others. Code can already be written in the nodes. And finally, design your own script at the advanced level. You can write codes in Python and get access to the API. In this way, you’re on the same playing field as those serious programmers who don’t like Dynamo. If you are a Rhino user, you should use Python as well. Why? Well, Python runs both the Windows and Mac versions of Rhino. Since Rhino Python scripting is available on both platforms, the same Python scripts can run on both platforms of Rhino!

Augmented and virtual reality is ready for design and engineering. Bringing BIM360, Revit, and Navisworks models into VR is not an easy task. If you’re using Unity Platform, I assume you’re going to use it with Autodesk Forge AR/VR tool kit, and C# is the best language for it. I prefer this as it is useful to learn and you will be able to use this outside of unity as well. I also think it is easy to get used to.

The programming language is determined by the platform in this case. There is a possibility to make a cross-platform solution that will work on Android and iOS, but you need to know that cross-platform solutions for mobile devices will never out-perform native apps. On top of this, you’ll be facing a lot of issues during the testing process.

Programming languages for the BIM industry you need to know in 2020 (3)

Android — Kotlin. It was not that popular, but now you can find a lot of tutorials on Kotlin. In the beginning of 2019 everyone was talking about Kotlin and which will be required for Android development. Currently Kotlin is growing very fast and it’s highly recommended for Android development. But you need to know Java just as well, according to the job market. However, its impossible to know Kotlin without Java. So this means you should learn Java first and then slowly move to Kotlin.

iOS — Swift. There is no other option, unless you want to learn Objective-C, which is losing points every year (Tiobe index 10, Pypl index 8).

Overall, programming for mobile devices is not a very marketable skill in the construction field today. But if you take into consideration that the percentage usage of mobile devices is growing every day — these skills could be very valuable in the near future. On the other hand, moving out of construction you still will be a solid programmer.

These days newer languages are taking the place of big and more dated languages like Java. Programming itself is becoming easier and more accessible for most people. And there are many templates for you to quickly deploy something right away. So, it’s time to admit that programming is not a small area with a few gurus working in it anymore. I’m pretty happy about this new dynamic, because I think if you’re doing BIM, you need to know coding.

Programming languages for the BIM industry you need to know in 2020 (4)
Programming languages for the BIM industry you need to know in 2020 (2024)
Top Articles
Latest Posts
Article information

Author: Kieth Sipes

Last Updated:

Views: 5840

Rating: 4.7 / 5 (47 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Kieth Sipes

Birthday: 2001-04-14

Address: Suite 492 62479 Champlin Loop, South Catrice, MS 57271

Phone: +9663362133320

Job: District Sales Analyst

Hobby: Digital arts, Dance, Ghost hunting, Worldbuilding, Kayaking, Table tennis, 3D printing

Introduction: My name is Kieth Sipes, I am a zany, rich, courageous, powerful, faithful, jolly, excited person who loves writing and wants to share my knowledge and understanding with you.