Subtract one surface from another

Hi All,

How would one subtract one surface from another leaving only the voids as surfaces? I could only find a surface subtraction with solids. I mean I could just convert my trimmer into a solid, but I feel like that is a recourse heavy task and maybe there is a simpler way?

Are we supposed to guess the error of the node or you gonna give it? :slight_smile:

The error is that it requires a solid and I am providing a surface, it’t not about the error, that node is for sure incorrect in this process.


But even when converting the trimming surface into a solid I am getting a dodgy result where 2 voids created a single surface instead of 2, not sure how that is geometrically possible? So when I try to extract the perimeter curves one of the voids is being ignored.

Is this what you after?

Yes! That would be great except I cant seem to find surface.difference component is it part of a package?

It’s OOTB in Dynamo 2.3


I am using revit 2020 with the dynamo that comes with it. How could I update my dynamo to the latest version?

It comes with Revit update 2020.2. So you can do that from autodesk desktop app.

After updating Revit, you’ll get Dynamo 2.3. To get all you custom nodes and packages, you should delete folder in AppData 2.3 and rename 2.2 to 2.3.

If this solves you issue, please choose the solution so that the topic considered solved.

Will do once my company has updated revit and I can test the result if the surfaces are separate items in the list or it would cause same problem as with solid subtraction. Where two surfaces are listed as one. Thank you for your help and patience!


FYI: Surface.SubtractFrom as its logic fallows, subtracting a piece of surface that intersects with the solid. So the node doe’s what it supposed do.

I understand that and never assumed different, apologies if I came across meaning that somehow.

So got it running and this time around the results are a polysurface and a surface, at least we can break up the polysurface into individual surfaces with a polysurface.surfaces node. But could you please help me in merging the two lists back together. As I have only been using dynamo for a week and I find the management of data a bit difficult at my state of current knowledge. Thank you for your help in advance!