Exporting Wall and Window Geometry for each Room

I am attempting to export room parameters and their wall and window geometry to excel and seeking guidance.

Export Geometry From Revit To Excel.dyn (24.3 KB)

My End Goal: Use the geometry to calculate exterior wall and window areas for each room and then enter this information into a mechanical load calculation software (I’m required to use HAP which isn’t fully compatible with gbxml geometry, so I will be hand entering the sq-ft data for each room).

Problem 1: I’m using the LunchBox Room Element Collector node to pick out the boundary points and vectors, but I’m unsure how to push these values into a list that can’t be transposed correctly in excel.

Problem 2: The above would give me the 3-D boundaries (I think), is there a way to filter it so I’m only exporting exterior walls?

Problem 3: Windows – any thoughts on how to export the window geometry for each room?

Alternate Solutions: Maybe Dynamo is not the easiest solution, could there be another product that takes the gbxml file and allow me to breakout the wall and window areas for each space?

Thanks for reading! If I can get this to work, I’d like to try to then attempt to export the bounding roof and ceiling geometries for each room, but I don’t want to get ahead of myself.

1 Like

When I did this I went about it in a slightly different way.

Room.Boundaries node in the clockwork package will give you the bounding elements, discard the floors and ceilings.

The wall types can be gathered from the walls, and those types can be tested for function equal with exterior, and the resulting boolean can be used as a mask to filter the wall elements.

The room geometry can be queried and exploded into surfaces. Find the point at parameter 0,0.5 (might be 0.5,0 - we want the low edge midpoint for each surface), and get the geometry distance from the remaining wall elements to each of the points, sort the surfaces by those points, then get the first item in each sublist.

Use a room element collector to grab the windows associated with each room, and you can then get the host for each window, and compare the element ID of each host to the element ID of the exterior walls, and use that list as a key to group the windows by their matching wall.

That should give you a list of walls in each room, and a matching list of windows for each wall.

Good luck.


JacobSmall, I am trying to automate this process as well for HVAC load calculations. Could you share your script, please? I am fairly new to dynamo so I do not completely follow the conversation. Thank you!

Unfortunately that’s something I don’t have handy - that graph predated my time at Autodesk and it lives with my previous employer. Give it a shot building something out and let us now if you get stuck. :slight_smile:

Hi, though this would be a great script as well but am also failry new to dynamo. I tried to see if Geometry.DoesIntersect would work but was unable to, so am giving this a shot. I got the exterior walls filtered out and its Geometry but am have trouble with getting the Curtain wall geometry. I have got the Curtain Walls filtered out, but am not getting any element geometry. Though I would start by trying to fix one problem at a time if that is ok. Please let me know if you would like my script or just an image?

Typically all of the above are advisable, in addition to a sample Revit model which mimics your current predicament. Otherwise it gets a LOT harder for people to help you.

In this case you aren’t sewing curtain wall geometry as curtain walls don’t have any geometry. They host millions and curtain panels which have geometry, but they don’t have any themselves. I believe there is a node in the Clockwork package to pull the relevant elements from the curtain wall.

Great, thanks was able to find a node to get curtain walls geometry but am having trouble getting all curtain wall geometry and am getting an error with mullions which might be because of some location where I’m not getting the curtain walls geometry. Please see attached picture for indication of curtain walls missing. Seem to be entrance locations into the building. I froze all other geometry to get a better idea of missing exterior locations. I have link indicated below for the architectural revit file through Gmail.




Room Inputs for Load Calculations.dyn (166 KB)

If you have the walls from the rooms, you can grab all the windows in the project and work back to find the walls they belong to. FamilyInstances contain a property called Host (FamilyInstance.Host) that returns the parent host. Paring up the two lists is pretty easy. I usually do this in a short Python script, but there is an OTB node - FamilyInstance.GetHost - you can use as well.