Conf42 Python 2021 - Online

Programming your way up a Skyscraper - Coding in the Architecture Profession

Video size:


When I started working on the latest high rise for San Francisco a challenge stood before me: How am I going to do this without losing my mind? Thankfully Python coding came to the rescue. This talk will showcase all the tools built around Python that can make architecture dreams come true!

“The audience will learn about how open source coding has been used for buildings. There is a burgeoning industry for software development and open source tools to be used in building design and construction. I want to show everyone how much interest there is in open source tools in this sector and my intent is to gain audience interest and grow the open source community in Architecture.

This talk explains how I used Python to dive into open source tools for my projects. This includes scripting with open source tools like Dynamo, Rhino and Blender. My talk is meant to encourage others to learn how to use open source tools with Python and enhance their projects whether it is in digital or physical space. “


  • Toddy Copian: Coding in HMC Architects profession here at Conf 42. Common thread has been doing things better with data and automation. Something as simple as creating geometry with code and scripts. Just simple scripting has gone a long way.
  • We can get architects the tools they need to design faster and better, to get better results and to get the design they want. Tools with the Python open source community has been making that possible. Another tool helps you visualize the spaces for daylight energy analysis.


This transcript was autogenerated. To make changes, submit a PR.
Hello and welcome. I am Toddy Copian. This is programming your way up a skyscraper. Coding in HMC Architects profession here at Conf 42. Let's get started. Little bit about me. Design technologist, developer background architecture. I've built everything from ballparks to skyscrapers, to apartments and everything in between. And the common thread has been doing things better with data and automation. And Python has been a big benefit to me, my team. So I'll show you a little bit about what's possible with Python, and it is that Python makes it possible. I want to show you this great set of examples of what all the tools and methods Python has been utilized to work with the architects out there. And just to be clear, there's architects and there's architects. I'm talking about traditional building construction, architects of floor plans and stuff like that. Many of you might be familiar with computer architects and system design architects, but they both have a common ground with Christopher Alexander's pattern language, which has been a big influence to both disciplines. The idea of a pattern language is you can reuse pattern that you created in the past that has been reliable and you can reuse it to came without reinventing the whole process every time, not only saving you a lot of effort, but also making it easier to make efficient processes. It's a philosophy of design. It's influenced me, a lot of other designers out there and programmers worldwide. So if you are thinking like what this is, there's actually a lot of common ground. These aren't two separate things altogether. They provide different outputs, but they're very similar. And a quick history lesson of HMC Architects works. Historically, you would think architects are drawing pictures all day long that can create the design. And you keep coding through that process of drawing, updating drawings, getting feedback, creating the modifications, getting more detail in your design. And in the past, you had anywhere from a few dozen drawing plans to a few hundred. Now you need thousands, literally thousands. I've worked with decks construction. Document decks have thousands of documents. It's a wasteful and limited process. It's kind of outgrown its use. So people are moving into different ways to work, and that's where computer technology comes into play. This is just one example of some computational design. Computational design is basically using computers to help you create a design based on your inputs and parameters, and working through that with the aid of a computer. Basically not possible with a human hand. So this has been utilized a lot by architects over the last decade or so, and traditional means of design documentation not sufficient. So we're trying to do something more sophisticated like this without spending 100 years trying to draw it and document it and make it functional, constructable, building. That's where python comes to play. Something as simple as just creating geometry with code and scripts. Just simple scripting has gone a long way. In this example, you can see here that we create a bunch of points as a diamond shape. The points are then connected into planes, and then you could take this one shape you created and then multiply it, and from there you can get much more sophisticated. They can see the starting points if he's using the code. And this is in an example called grasshopper and rhino. It's a general purpose 3d modeling tool, and it's gotten a lot of traction. This is what more designers want to do. They want to create elaborate concepts in design and make it construction, but they don't want to be limited by the software and technology around them. So this has been the starting point over ten years ago with a lot of architects, and we also use a system called building information modeling. The idea is that you can combine a 3d model with a database, a relational database that has content like the size of a wall, the type of a floor, whether it's concrete or wood, what have you. Keep it in the model, keep it all together, and from there you can use it in your drawings. So you have more information embedded in your drawings. It's been a big time saver because you have a database. But we also want to work with this information, again, not be limited by the software one uses. Revit. Revit has an open source tool called Dynamo, this big old colorful shape in the middle, which can help you automate the process of coding data and geometry to the model so you're not trying to be a monkey and run through everything yourself. And this is an example of dynamo. It's a visual scripting medium, it's low code. You can do cool things like create this curvy geometry through a dataflow and then add like an image to it. It's very fun to do that kind of stuff and explore this way. It's not something you can really do with the software, the revit software on your own. And I've been using it, for example, to create towers. And all I do is put an input of a bunch of coordinates with the type of levels and walls I want. I modify the inputs, and I have an output of floors and walls that I want in the model, and it looks like this. On the left is the wireframe of the inputs and extruding it through 100 levels on the right. I have a fully formed skyscraper that I can have elevations for and put in my documentation sheet, which has been great and it's really an awesome output. And Dynamo with all this visual scripting is what was my gateway into programming. But sometimes you want to do more and this is my gateway into Python programming was the node of Python in Dynamo that lets you do much more with fewer steps. And once I discovered this, I kind of fell in love. You can do something as simple as taking geometrical shape like just a basic rectangle with a length of width of 100ft. And through a couple of variables of setting the origin and rotation axis, you can iterate through the rotation using floats and a set degree and just create a twisting tower. You could do this in the visual scripting format, but it takes more steps and may not be has fluid, but I could take something as simple as a script in Pythonweb in this visual scripting medium and create some great shapes. So this is what's been releasing a lot of efficiency and benefit for designers using just Pythonweb. A very very simple python I could teach a child. And this is something we'll grow with here. And on top of that, we have another great tool called Blender. I think more than a few of you have used it. It's a different software platform than what I've talked about with Rhino and Rabbit, but these are all completely different products from completely different companies. And proprietary open source like blender, they're all using Python supports Python. It has a huge user community and it does a great job using a system called meshes. It's not data, it's mesh. But there's a new add in called Blender BIM, which takes that building information, modeling, that database format with parametric modeling, and an open source format called IFC to then take the free to use blender tools with these integrations with these open source formats, to then create your geometry, then push into a proprietary format like Revit or ArchicAd as BIM models, which to me my world is like candy. This is amazing that I can open so many avenues design and configuration and so free floating from there. This is what it looks like basically in blender you create a series of meshes, then volumes, and then you attribute shapes to it and you can put components like windows and doors through it. With the blender Bim add in and really in a very few steps you can go from just some basic massing to a full building section floor plan c here. This is all possible thanks to the contributors in the space of both Blender and Pythonweb, and just the growth of information in the built environment. And you can eventually take it and create something like this, a skyscraper, which is kind of like the whole point of this talk is how we can get architects the tools they need to design faster and better, to get better results and to get the design they want. Others are architects, very open minded people, but at the end of the day, this is what they want to do. They want to design, they want to make the most compelling kinds of work. And all these tools with the Python open source community has been making that possible over the years. And another great example of is not just designing, but also designing with a lot of thought in mind. And these days, environmental design, sustainable design, isn't big. We have another great contributor from the Pythonweb community called Ladybug Tools, which can run in any geometry engine. From any of the examples I showed before, all written in Pythonweb. Pip install LBT ladybug tools. It's really cool. In this case, you're seeing the sun kind of canvas overhead, and we can get the sense of how much light's in the room really useful, especially in this visual scripting stage that I showed you earlier, that you could just kind of design your room. You don't export to another software. It gives you some greater results, gives you some options. It goes through a lot of neural networks to give you some options of what's possible with the results, and helps you narrow down definition of what you're trying to find in the most balanced room for light and energy, and pick a few from there. If you're not super savvy at a high level, you can make some good decisions. And another tool from that same developer is called honeybee, and helps you visualize the spaces for daylight energy analysis. This is going to be a big win for people who are designing spaces. You can imagine this being a single floor of a 100 story building, and if the building is oriented north, this energy study holds up in every floor because the sun's going to come in the same way, assuming there's no shadows, for example, blocking you. So these are the kind of tools that can be useful in a very fast way to get some great results. They're all free, and you could take that. And then instead of just having these kind of one off designs and kind of just leaving it done, when we finish the project, we can study the building. There's an example. We have a tower that has lot of floors, and for each one has a different space and different kind of space for different purposes. At the bottom there you can see the x axis displaying date and the y axis displaying kilowatt hours and how much time that's being, or how much energy being used over time. So now we have a live information feedback in the built space because we have something like Python to collect this data as an energy model and export it in a very straightforward way so we don't have to just assume it's working okay per design. You have to always check it. And this is kind of the growth of python. In the future it'll be a great tool for integration. You can use all sorts of data formats like XML, CSV, HTML, JSON, the bin models, the design models, everything put into Python. From there you can get data frames to pandas, do can energy analysis or data analysis and visualization of mapplotlib or so many other packages and libraries. This is where Pythonweb becomes the glue between different kinds of efforts in the built space and design space. And again, just want to reiterate it, Python makes it possible. It used to be architects were kind of beholden to proprietary formats and corporate kind of expectations of how you work. This has really opened floodgates for us to work more fluidly. And I think all the contributors here, special thanks to everybody here. These are all open source tools. Some of the other software is proprietary, but everything you see here is effectively either open source and primarily Python and developed by open source contributors. So a big thanks to everybody on this list and to Python contributors out everywhere. Whatever you do makes a big difference. Your software is being utilized in ways you wouldn't expect before. So I'm going to keep shouting to the rooftop about how we we can design better buildings. Large came small scale, any scale with Python tools, and just hope we have more traction. And thanks everyone for attending my talk at conf 42. Please get in touch with me if you have any questions about this talk. Just want to chat. It's been good talking with you. Have a good one. Thanks,

Tadeh Hakopian

Design Technology Manager @ HMC Architects

Tadeh Hakopian's LinkedIn account Tadeh Hakopian's twitter account

Awesome tech events for

Priority access to all content

Video hallway track

Community chat

Exclusive promotions and giveaways