top of page


Lately, I have been working with Hayes & O'Neill Structural Engineering firm, producing plugins, interfaces and dynamo scripts to automate and streamline the workflow. It was a challenging period but finally, it is amazing to see the results and the benefits they provide to my clients and I would like to briefly present three of them.

Structural Openings | Columns and Beams

This first tool uses the linked architectural model to create all of the structural openings, after this step, it creates the necessary structural elements for these openings automatically. Here is a brief summary of its flow:

Firstly, all the data of the windows and doors which require structural openings in the STR model are filtered and grasped. While locating, resizing and sorting the structural openings to be created, this data is used one by one. Still, the main challenge is not getting the data but sorting these openings' info in order to structure them by creating columns and headers necessary for these openings. The image below is the reason:

In complex projects, the walls are not always perpendicular for sure. There can be silly angels and orientations. This was the most problematic part while testing the script because all of the columns and the beams are needed to be aligned and oriented according to these different orientations. I solved all these problems using linear algebra. At this point, my hope is that Dynamo Team will give us the opportunity to work with CPython instead of IronPython especially for modules like numpy. Still, for pyRevit users, it is not a problem since it gives us the chance to be able to work with both engines.

Batch Creation of Sheets and Views | Automatic Placement on the Sheets

This second script, depending on an excel sheet, creates all of the necessary sheets and put all the drawings into their hosting sheets, but more importantly, it automatically packs and locates all the views on all the sheets into correct positions at the same time. Here is the flow:

Interfaces | XAML

The last item I would like to talk about is the interfaces. Actually, tagging elements automatically is a very common practice for Dynamo users or API developers. This tool is very case-specific. In this case, what is different is, I created an interface to determine the location around the hold-down column and also the input could be given by selecting from the drop-down menu. Here is something I produced very similar to this:

This is all for now but more is on the way, especially my practices with Machine Learning in design processes. Please do not hesitate to contact in case of having any recommendations or questions.

I would like to thank Jeremiah O'Neill and Hayes + O'Neill Engineering for their great collaboration and open mind.

Healthy days for all!

Ömer Varol


bottom of page