Collect windows, doors in a wall


Is there a way to get a wall from Revit into Dynamo and collect all the openings, windows and doors in it? … and then calculate total area of openings?

Thanks in advance


1 Like

Here is a simple definition to get what you want. but it finds the correct opening area only when the wall is flat, rectangular.

이미지 2








Another definition here…
이미지 3

I would recommend you try the Element.Inserts node in package Clockwork - it’ll retrieve the hosted objects in any wall (and also some other object types). Regarding the opening sizes, I would first try to get there via simply reading parameter values, usually they are called Height and Width. In most cases these are type parameters, but in some cases they may be instance parameters. (You can get the family types using the FamilyInstance.Symbol node, BTW. Also there’s a node called Element.ParameterExists in package Clockwork that you can use to determine if there’s a type/instance parameter of a certain name present in a given element…). If you do need to perform a geometric operation, keep in mind that bounding boxes are always aligned to the project XYZ coordinate system, so in this context they will only work well with walls that are parallel to the project X or Y axis. If your wall geometry is aligned differently in the floor plan (or if it doesn’t follow a straight line), have a look at the method suggested in this thread:

I discover something new in Clockwork package every day. :slight_smile:

there’re so many!!

Thanks Andreas.

Thank you guys so much!

Clockwork works like a clockwork!


i am an architect from germany and dynamo is realy awsome. A lot of things we resigned that revit can not handle are now possible.
For example revit does not calculate a gross wall area and even with the opening area addon you can not create a parameter which is also exported in the ifc file. Also the “Wall opening area” addin from autodesk only calculate doors an windows an no facades. In germany we also have to divide opening areas above and under 2.5qm or 0.5cbm.

So i made a try to do this in dynamo with the Element insert node from andreas diekmann (by the way a big thank you for a lot of great clokwork nodes).

Actually i divided the definition in 2 files, just to realize what’s going right or wrong.

In the first dyn i gathered the correct area of all elements to be considered. Doors, windows, facades and wall openings an wrote it to a new parameter. The origin german parameter “Fläche” is not absolutely correct for windows an doors and does not work with the wall openings.

In the second dyn I used the element insert node. A lot of walls now receive the correct gross area an also the german vob area including openings smaler than 2.5qm

But unfortunately not all walls are calculated correctly.
Especially joined walls causes problems cause they swap and double their openings in a lot of ways. For example a small tile wall receives all the openings of the joined wall whatever the openings are inside the tiled area or not. To resolve this I actually filter out tile walls before creating wrong values.

But other situations like corner windows or divided walls with one insulation i cannot ignore.

To see what is happening I attached the rvt an the dyn files.

feel free to use what you want and maybe someone has an idea to solve these problems.



two custom nodes a made for it


Filter List by List

and here the revit file


kind regards



Any idea why openings come out as an empty list?

Yes, you are feeding in doors instead of walls.

Thanks, i didnt notice that! But still I cant get the openings geometry in dynamo to get to a point location.

I know there is a node FamilyInstance.Location, but I’ve came across projects with messed up Revit origins and points from both differ a lot (Checked by Lookup).

Thanks anyway for help!

Looks like a limitation of the Element.Geometry node (or the Revit API). I guess the closest you can get is retrieving the element’s bounding box.

@Pawel_Krezel @Andreas_Dieckmann Looks good from my side. Pawel could you drop here your dummy rvt file?