Get intersected surfaces

Very good days.
I am having problems in being able to obtain the specific surfaces of intersection between geometries, my objective is to specifically obtain the area of ​​the intersected surface, perhaps some of you know of a method, node, or python code that allows me to automatically obtain the specific surface of intersection .
PS. Maybe someone believes that first it would be to obtain the lines and based on that create a surface, then comment that for orthogonal shapes it may be easy, but for circular shapes, arcs and other shapes, I have not been able to solve the creation of surfaces, to achieve To better understand my problem, I leave the *.rvt file, dyn.
I appreciate your time and help, thank you very much.


Interseccion entre elementos.rvt (4.9 MB)
GET SURFACES INTERSECT.dyn (14.8 KB)

Try this:

  1. Element.Solids into Solid.ByUnion to get a single solid from each element.
  2. List.DropItems where the lists of solids (#1) from the elements is the list and the index is a range from 1..List.Count(solidsList)-1; to get a list of all solids after a given index. Wire the resulting sublists of solids into a Solid.ByUnion to get a list of solids.
  3. Geometry.Intersect to intersect the list of solids from the elements (#1) against the list of all remaining solids (#2). As long as all elements were joined and modeled to avoid clashes this should return lines or surfaces. Wire this into a List.Flatten as the structure isn’t important (or at least not as I read your question).
  4. List.RemoveIfNot on the resulting flat list of intersections to remove anything which isn’t a surface.
  5. Surface.Area to get the area of each surface. Math.Sun to get a single value for the surface intersection of all geometry elements.
1 Like

Thank you very much for answering.
I have followed the steps and when applying the GEOMETRY NODE. INTERSECT, what I get is a list of lines, but actually what I want to get is A SURFACE…

Can you post the graph with the node previews expanded?

Compared to what I recommended, the list structure seems to be well mismatched and you are utilizing lacing which shouldn’t be required.

Are you trying to intersect all columns to all walls?