Formwork Calculation with Exclusions at Joints - Revit and Dynamo

I wrote a script that gets the formwork area and excludes the surface area at concrete joints, but I am having a bit of a problem getting the right heights for my walls.

The way I am getting surface area is by creating walls around the concrete foundations. I get my wall curve from joining the top horizontal surfaces of all of the concrete foundations into a polysurface, and then extract the perimeter curves from the polysurface.

My next step was to get the height for each wall, so I got the vertical surfaces and extracted the min and max z points for each surface.

The issue is coming as shown in the pictures. Where I have a spot footing that is deeper than my continuous footing. It is finding the lowest Z point of the surface, but is applying it to the incorrect wall. The surface where I want that deeper Z point for my wall is bare.

Any ideas on how to wrap the wall around the entire footing without placing formwork in the areas where the concrete touches?

Is it an issue with my lists?


Personally I would select the faces of each footing and exclude the top face from the lists.

If you have intersecting geometry, as shown in your picture, I would join the two as a solid and then get the faces.

Thanks Renzoj14!

I will have to give that a try!

1 Like

I have come up with a way to exclude the intersections in formwork. Here is my script for your review and use. Is there an easier way to select all walls that are made of concrete instead of specifying which walls I want to use in my formwork calculation?


1 Like

First and foremost, I want to thank you callbowen for posting that useful information.
I have taken it and incorporated a filter based on element materials to get only the desired RC content. In my test files, it works like a charm, however, when I use an actual project file, even if I limit it to a few floors, when I get to the Solid.DifferenceAll stage, I get an error “Warning: Solid.DifferenceAll operation failed. Unable difference two Solids : INCONS_REL – inconsistent edge-face relationships”
Model file is not particularly complicated as all elements are straight edge elements. Any insight would be appreciated. (work computer blocks me from uploading images, will try to post the filter solution later).

Hi Brett,

Thanks! Are you able to share your model that you are working on?

Unfortunately because of the nature of the project I cannot post the actual model file but here is the modified script with filtering showing the error message.

That’s fine! What do the error messages on the Point.ByCoordinates nodes say? It looks like they are the source of your problems

Sadly, that is not the issue as it is simply an error regarding the working range. ("Warning: Your inputs lie outside of the allowable modeling range, consider choosing the Large setting with a modeling range between 0.01 and 1,000,000 from the “Settings => Geometry Working Range” dialog)
The real error is in the Solid.DifferenceAll node where I get the error “Warning: Solid.DifferenceAll operation failed.
Unable difference two Solids : INCONS_COIN – coincident intersection edge previously non-coincident”
I have tried to isolate the incident by limiting the number of input elements to try to find the culprit and will possibly try to do it in stages based on element type (i.e. subtract slabs first, then columns, beams, foundations, and lastly walls).

Attempted to isolate the culprit today. It appears there are errors in adjacent planes forming coincident edges?


A few months after creating the script, I found that it struggles to do curved faces. Do you have any of those that you are trying to create formwork for?

No curved surfaces that I am aware of. Everything is really pretty straightforward.

Is there a specific reason that you are exploding your geometry and then creating solids again?

Apologize for the lengthy delay… more pressing matters were on hand. Just as a test, I was exploding a list of multiple geometries and combining them into one solid to see if the difference.all node worked better that way.

Would you be able to put a Data.Remember node after the creation of your solids and then upload your graph here? That way, I can look at your solids without having to have access to your Revit file.

I have tried it not working

Hi All,

There are two videos showing how to create vertical & horizontal formwork with area.

Dynamo - Create Horizontal Formwork with Area
Dynamo - Create Vertical Formwork with Area

It is geometry-based method; hope it is helpful!


1 Like