In this article, Rogerio Lima, the main instructor of the Specialization Course in Parametric design with Visual Programming in BIM, showcases how generative systems could help architects in their creative process.

Today’s technological advancement has caused great impacts in several areas of knowledge and has driven many transformations in the way we work, communicate and carry out the various activities of daily life. Civil construction is experiencing the impacts of this digital transformation under the name of BIM (Building Information Modeling). This methodology based on the pillars of policies, processes and technologies (SUCCAR, 2009) provides several benefits throughout the production chain and all these aspects are supported by computational tools that assist in the development of projects, planning, budgeting and maintenance of constructions.

If we focus only on the development of projects, the existing technological resources in this “BIM ecosystem” aid collaborative work, checking for inconsistencies, extracting documentation, quantities, among other information and simulations that can be performed in the BIM model. However, the initial phases of project design are not very much covered by these tools. Perhaps because it is a moment of great abstraction, perhaps because each designer has a particular way of creating or even because it is a space where doubt and uncertainty still prevail. What is certain is that software authored by BIM has few resources that can assist the designer, especially those of architecture, in their creative process.

The collection of data, their treatment, the development of solutions that meet what was requested and the use of this information in solutions to other similar problems are examples of procedures that the designer performs at the beginning of each project and that could be enhanced by generative systems based on BIM.

In fact, such resources exist and have already been widely studied in academies, but still little used in the market. Generative systems “are methods of obtaining a solution to a given problem with open parameters, which allow the generation of multiple alternatives, from the entry of values ​​for those parameters.” (Sandrez, Martinho, 2018). That is, the designer does not focus on the solution to a given problem, but on the development of a system that generates possible solutions to a problem or similar problems.

The use of this resource allows the designer to explore several solutions that in the traditional process could cost him a lot of work. On the way to seeking various solutions, generative systems can receive optimization routines that filter, in the results generated, those that most closely meet the requirements imposed by the developer. That is, if a generative system is created to develop the implantations of a given enterprise in a lot, taking into account its urbanization index of remoteness, occupancy rate, among others, the algorithm can generate solutions that are in accordance with the pre-established rules. However, this does not guarantee that they will be the best possible solutions for this enterprise.

However, with the addition of optimization routines, the system starts to select the solutions that best meet the feasibility criteria, such as a greater number of floors and greater area per floor, while still meeting the urban indexes of the area where the lot is situated. The new set of solutions generated will be closer to the ideal requirements proposed by the feasibility analysis conditioned by the developer.

From a theoretical point of view, there are several generative methodologies, such as: Form Grammar, Cellular Automata, Genetic Algorithms, etc. These are concepts that are the subject of much research in the academic environment and can be found in several theses and papers in the field of computing applied to architecture.

On the aspect of computational development, the designer must develop new skills related to programming, whether textual such as Python, C #, etc. or even visual programming like Grasshopper and Dynamo. Currently, Python has had a lot of visibility because it is a programming language that is much easier to learn. This characteristic becomes a great advantage when we are talking about professionals in the field of architecture and engineering who want to learn a programming language.

Another feature that has intuition and simplicity as its most striking features is the visual programming languages. In them, the developer uses nodes that perform certain functions and when interconnected and ordered according to logic, they produce an algorithm to perform a specific task. Grasshopper is an example of one of these visual programming platforms. It runs inside 3D modeling software called Rhinoceros but can connect to BIM-authored software, such as ArchiCAD and REVIT, through specific plug-ins. generative systems

Image 1: A Grasshopper / Rhino routine with the result appearing in real time in Autodesk Revit. Source:

From the above, it is possible to see the creative potential that generative systems give designers and the great benefits that the commercial application of a system like this can bring. Therefore, it is increasingly important to implement these resources together with software authored by BIM to further increase the efficiency of project development flows and their quality.

Author:  Rogério Lima, Academic Director of the International Master in BIM Management. Main instructor of the Specialization Course in Parametric Design with Visual Programming in BIM: Dynamo, Grasshopper and Python.