focus on computer-based architectural design

why architects should coding?

09 June 2020

author: ma haidong


Problems facing architects in the digital age

We live in an age of digitalization, where architects have access to a range of architectural and design-related tools. Those tools will take their designs from “concept to drawing”.

With the advent of a variety of digital parametric tools, architects can easily and dynamically create geometries in real time. With parameter settings, architects generate complex designs.

Now here’s the thing, you, the user of the digital software, are actually limited in your actions by the software, The shape you generate is a result of your design and a result of the programmer who wrote the parametric tool.

These tools embed the programmer’s algorithms and code. These algorithms expand the concepts of architects, but at the same time restrict their thinking.

Faced with this awkward problem, architects need to seriously consider the relationship between design and algorithms.

Imagine, if the architect can program himself, then he has the ability to generate or assemble the algorithms and tools. This must be an advantage, allowing the architect to be free from the constraints of the algorithm, to gain the freedom to design, and more original.

In the real working environment, with more and more open source algorithms and easier programming languages, some architects have to face the problem positively even if they don’t like programming by nature, because the more familiar they are with these tools, the more likely they will be able to make the best use of their quality and professionalism.

Based on the above analysis, the following section discusses the impact of programming on design creation and programming on design process management.

How does programming extend design and creativity?

Parametric Design

Obviously, a lot of architectural design is now done through autocad, revit, rhino, sketchup and other applications to complete the conceptual design.
Without these drawing software, relying only on T-square and drawing board will greatly increase the architect’s working time, a large number of boring drawing work.

However, these software programs are essentially drawing and visualization tools that only serve to enhance the skills of our hands and eyes.

Even so, some of the parameters in these programs influence our design thinking, and by simply modifying the parameters you can Immediate visualization of the new form shortens the time needed to translate the concept into space and form. As parametrics becomes more and more optimized, architects can quickly compare concepts and develop their desired results.

Parametric design can be taken to the extreme with programming skills, which allow for a more structured and systematic set of parameters that facilitate the development of new architectural forms and allow for the exploration of how architecture can change with changing parameters.

In this context, the programming language becomes the new building material, the new building form, through a very simple few lines of code. It is possible to create a very complex shape. It is even possible to create spaces or geometries that were previously unavailable through advance parameterization and arrangement.


By gehrytechnologies

generative design

Algorithm or AI based design, as opposed to parametric design, in which the computer is no longer just a human hand, but the computer is simulating the human brain, or even the collaboration between the computer and the human brain.

Through the human algorithm design and the computer algorithm calculation, a large number of collaborative results can be generated, which can then be used by the architects again. Using his own professional judgment, he selects the optimal solution from a large number of results and continues to develop it, iterating rapidly through the conceptual phase of the design. In this model, the computer becomes an important part of the creation or design. Programming skills become indispensable for this paradigm.

The most obvious feature of this model is the irreplaceable nature of the computer, without which human beings would not be able to design these things.

Often, design tools are precompiled with complex automated program algorithms that are beyond the designer’s comprehension. The architect’s use of this tool is limited. By understanding what these algorithms represent and how they affect geometric results through programming, architects are able to use them in their designs. These algorithms can be used for human-machine cooperation.

02 By Michael Hansmeyer & Benjamin Dillenburger

Digital Fabrication

As industrialization increases, the era of digital construction has arrived, and the use of CNC machines to 3D printers, from laser cutting to general purpose robots, will have a huge impact on architectural design.

Programming techniques have become indispensable for the use of these machines and equipment, and communication with these designs is only possible through the use of computer languages.


from Institute of Technology in Architecture, ETH

How does programming expand the design process and management?

From a process and management perspective, we are in the digital age.
Today’s architectural designs are becoming more complex and require more and more types of work. The ability to program may soon become an essential skill to acquire in the digital age.

The reality is that most of our work is done on computers, often using off-the-shelf applications that can do most of the work, but due to the complexity of architectural projects there are still problems that need to be solved that our software cannot do.

For a variety of reasons, such as business interests, these applications are not compatible with each other and do not work together seamlessly. . So we need the tools to make the software work the way we want it to.

The programming ability is this tool, and with this tool, the following advantages are available:

Sovereignty over the entire design

Often, we come across applications that if only the software could do this and that, I could do it so and so quickly.
Today’s applications such as rhino, revit, sktechup all have APIs that allow architects to control the entire design process with a few lines of code, so they can adjust to specific needs.

More work with less effort.

Architects who can program are more productive. By writing an equation in software to complete a job, which would normally take many steps and a long time.

For example, you need to copy over 100 files from one folder to another and rename them with today’s date. You could do this manually, which could take you hours, or you could write a program to do it.

Another example is if you need to associate an Excel sheet with a table of doors and windows, listing all the door numbers and their associated room numbers and room names. If you have more than 2,000 doors to sort, you obviously can’t do this manually. With the help of programming code, you can update your doors and windows table in a few minutes.

The code allows the computer to do this boring repetitive work (which it can do better than a human), and the time saved allows you to tackle more interesting and challenging tasks.

Programming can help you solve problems.

Not everyone wants to be a full-time programmer, but being able to program is a skill that can be acquired by simply learning some code. Help you solve the problems you encounter every day. With this skill, architects not only use the tools provided to us by software companies, but they also create their own tools.

With the increasing knowledge of programming, you can even build your own unique toolbox, creating your own unique style and originality as an architect.

There are so many programming languages, why choose python?


Python is an easy to read and write language, powerful enough to build utility programs and automate boring stuff.

Python is cross-platform, which means it can be used on Windows, Mac, and ubuntu.

What’s more, the python language is called the glue language, and almost all architectural software provides a python development environment.

maya , 3ds max

Although adobe’s api uses JavaScript and sketchup’s api uses Ruby, pytohon can still be used for Photoshop, sketchup and other applications through the windows dotnet framework.

With python you can link the various pieces of software in the design process together as a whole.

Note: The following content is based on my experience and adapted from the python community.

simple and convenient

Python’s syntax is very elegant, even without special symbols like brackets, semicolons, etc., which represent a kind of minimalism like other languages. Proprietary design thinking. Reading a Python program is like reading English. It is also because of the simplicity of Python code that it is easier to maintain later than other programming languages. Easy and more comfortable.

This is the biggest reason why beginners should learn Python. When you first start programming, you definitely don’t want to start with a programming language that has a strict syntax and strange rules.

Open Source Community

Python is free and open source. Programmers can share, copy, and exchange it, which also makes Python a strong community, making it even better. Faster technology development.

Almost any python question, you can find the answer by Baidu or Google.


Python is compatible with a wide range of platforms, so developers won’t encounter the frustrations they often encounter with other languages.


Python supports both procedure-oriented and object-oriented programming. While object-oriented programming languages are often very complex, Python manages to keep things simple.


Python makes development for programmers ever more efficient. It is suitable for web sites, desktop application development, automation scripting, complex computing systems, scientific computing, life support management systems, and object-oriented applications. Networking, gaming, robotics, natural language processing, and many other aspects.

Here are a few libraries that are frequently used

PIL: Python Imaging Library, already the de facto Python platform’s A standard library for image processing, PIL is very powerful, but the API is very easy to use.

matplotlib: Drawing & Charting

requests: especially handy for handling URL resources.

NumPy: Numpy is considered to be one of the most popular machine learning libraries in Python.

json: JSON format for processing

tkinter: Graphical Interface GUI Translated with (free version)





ikuku精选课 Python4Rhino 建筑师编程课 2020.3.28开始线上直播!讲师:马海东

python tutorial


    No comments found for this article.

    Join the discussion for this article on this ticket. Comments appear on this page instantly.