Window/Wall ratio parametrization

So, I’m working on my college’s final project, and I’d like to run an analysis on efficiency, comparing energy efficiency for a building for different window to wall ratios on the facade. Is there a way to parametrize it, making it so that I set the ratio, and Dynamo sets the windows in my model?

generative design would be your best option. use the ratio as a goal. its very hard to achieve an attractive outcome by just running a script once. Unless its a very simple design with only one window size, fixed number of windows and equal spacing and the only variables are window width and height. There are just too many ways to achieve the same ratio. or the design doesn’t matter and you are just interested in the thermal performance. but it sounds like a complicated script, which could, depending on your skills, take several weeks to make.


That’s exactly the case, it is a very simple design with one window on the middle of each wall, with fixed height and varying in width, only intersted on the thermal performance. In that case, do you still believe de script would be too hard?

Worst case scenario, I find it would be easier to parametrize the window/wall ratio calculation, while I manually set the windows, then see wich is better.

Lastly, thanks a lot for the answer!

This is a great use case for Generative Design, be it one window or many. The added benefit is that you could perform solar analysis on the window sizes of each facade for optimize sizing of each window independently.

1 Like

I’m just not sure I can use it, as I’m using Revit 2021 for students, and they don’t have the generative design option. Or is it possilbe to use through Dynamo?

simple enough!
do you want to generate all ratios at once?
do you plan on modelling the walls by hand or with dynamo?
are you using the window family that comes with the template or do you have your own?
if you are gonna model them by hand, just use a select model element node to get the wall.
get the Area parameter using Element.GetParameterValueByName
use a code block to write a formula using your ratio, window height, wall area to determine the window width.

use FamilyInstance.ByFace to place the window and set the width parameter using Element.SetParameterByName.

I would advise you to change the width parameter of the window to instance so you dont have to generate new family types.

similar script, but in Formit

1 Like

I’ve asked if there are any options available. :slight_smile:

1 Like

Hi tiagoccs,
Please see Student and Education Software | 1-Year License | Autodesk Education Community for student access. Then let us know how your project goes! Sounds great! And also, yes, you can also just use it via Dynamo, just cached your Revit selections via the data.Remember node --or you also don’t necessarily have to even use anything from Revit. Good luck!


You got me thinking, so I started working on my own version using a dictionary of windows and facade faces from FormIt.
(still need to figure out how to save window configurations in a dictionary though)


If you post the graph and relevant data set(s) someone might be willing to help you solve that bit. :wink:

1 Like

That’s awesome! Thanks a lot for all the help. I’m here trying to crack the code myself, and will post the “breakthroughs” here, if there are any.