Speaking of a parametric model, many of us imagine huge scale projects, incredible shapes, consisting of parametric or even kinetic facades, projects that many offices can only dream of. However, the more accessible and user-friendly the advanced design software is, the more it is possible to use these methods on much smaller and easier projects. Parametric principles are no longer a privilege of large architectural offices but become part of everyday working life in all studios around the world. They offer a possibility to make workflow more effective at any stage of the project and on any project scale. Time is money and unnecessary changes to models created with fixed parameters are no longer on the agenda.

The issue of creating parametric models and creating scripts to make the workflow in Revit more efficient is also the focus in my studio Last parametrics (www.lastparametrics.com).

Recently, I have met several interior projects where the client wished to place an interesting interior element, for example, a chandelier, that would become a brand or a distinguishing sign of the project. We decided to take the path of eye-catching lighting that would evoke natural phenomena, in this case, the sea waves. Since the chandelier itself was to be composed of several thousands of lights that would follow a defined surface (wave), I chose the path of a parametric model whose input parameters were the light density and the surface they followed.

The surface itself was modeled in Revit using the mass tool, usually set up to be invisible in the project, and the lights were placed using a script created in Dynamo. The light family was defined by the height parameter, calculated from the suspended ceiling to the “wave” surface.

This situation seemed so typical to me that I started searching and found a lot of other projects created on a similar principle. With the conviction that I could make it easier for other architects to work with similar issues, I created a tutorial with instructions on how to create a similar chandelier.


A similar design is addressed by Vibia with its “Algorithm hanging lamps”

A very interesting project dealing with a similar principle is a transformation of the castle space into a workshop and a multifunctional hall in Romania called Gallery Reframe design by Alexandru Fleșeriu + Péter Eszter. In this project, the destroyed vaults were reconstructed by replacing them with lights placed at the same height where the vault was once demolished. I consider this project a very successful idea of how to work with historical buildings and preserve their character in the future.

In Revit, the vault was first modeled with a component in place. The volume of the vault could, of course, be modeled parametrically, but since I considered it to be a fixed and unchangeable element, there was no need to create its parametric model.

It is also necessary to pay attention to the family of lights, whose most important parameter, length/height, is adjustable downwards so that the dynamo script can change it and keep the upper point of the cable fixed on the prepared suspended ceiling.

Although the procedure may look complicated, the script in Dynamo is very simple. First, you need to load the reference geometry you need into the Dynamo. This is the surface of the given cross vault and the ceiling surface from which the lights are suspended/placed.

The second part of the script is to define points, ie positions for each individual light family, first on the ceiling surface and secondly by projecting these points on the vault surface. The number of points is simply defined by the code block and the Surface.PointAtParameter node. The points are then projected along the z vector onto the vault surface.

The next step is the definition of the individual parameters for the light family, which is the height of the ceiling and then the distance of each point on the vault from the ceiling, ie the length of each light cable. The ceiling height is defined by the height of the level on which the vault is located and by the z-coordinate of a point on the ceiling surface.

Finally, the second parameter of the length of each light is calculated using the Geometry.DistanceTo function, which is used to determine the distance between the points on the ceiling and the points on the vault. Eventually, the light families are placed on the appropriate level and both height/length parameters are defined.

Of course, similar issues can be solved in other ways. For example, we can define the number of lights by the minimum distance between them and not by their total number, the vault surface can be modeled in Dynamo and thus its geometry itself can be parametric or the light family can be set up as ceiling based and we can omit the height parameter calculation.

If you work in Dynamo and it is the same passion for you as for me, you know that there is never one way or one solution to the problem.

Feel free to send me your feedback and comments! email: hanzlikova@lastparametrics.com