7.8

1 Preface

This book was born in 2007, following an invitation to teach an introductory programming course to architecture students at Instituto Superior Técnico (IST). The original motivation for this course was the same as for several other courses: just like Mathematics and Physics, Programming has become one of the fundamental courses that constitute the basic education of any IST student.

With this premise, it did not seem to be a subject that would entice the student’s interest, particularly since it was not very clear the contribution it could have to the architectural curriculum. To contradict that first impression, I decided to include in the course’s syllabus some applications of Programming in Architecture. To that end, I had a conversation with several architectural students and teachers and asked them to explain to me what they did and how they did it. What I heard and saw was revealing.

Despite the enormous progresses that Computer-Aided-Design (CAD) and Building Information Modeling (BIM) brought to the profession, the truth is that its use continues to be manual, laborious, repetitive and boring. The creation of a digital model in a CAD or BIM tool requires extreme attention to detail, distracting the architect from what is fundamental: the idea. Frequently, the obstacles found end up forcing the architect to simplify the original idea. To make things worse, the obstacles do not end when the model is finally created. On the contrary, they become aggravated when inevitable design changes need to be made to that model.

In general, CAD and BIM tools are conceived to make the most common tasks easier, in detriment of other less common or sophisticated tasks. In fact, for an architect interested in modeling more complex shapes, the tools used can present several limitations. However, those limitations are only deceptions since they can be overcome with the aid of programming. Programming allows a CAD or BIM tool to be amplified with new capabilities, thus eliminating the obstacles that hinder the architect’s design process.

The programming practice is intellectually stimulating but it is also very challenging. Not only does it require mastering a new language, but it also implies a new way of thinking, an effort that, frequently, makes people give up. Nevertheless, those that prevail overcome the initial difficulties and acquire the skills to go further in the creation of innovative architectural solutions.

This book is meant for those architects.