Get Toposurface Boundary Points (for floors)

Hi all!
I’m trying to convert a Toposurface to a Floor, and I’ve been reading quite a lot on this argument but am not a code geek, so I made a dynamo flow based on what I found around but it still needs to be improved, since I’ve been testing it and will work for simple geometry, while in my specific case it’s not.

Dealing with a large area, I imported elevation points in Revit and created the general topography, then used split command to divide it based on the floor/material guided by the general plan of the area (I have street/asphalt areas, cement ones, terrain and so on).

For the Dynamo workflow I basically joined the Clockwork node Floor.SlabShapeByPoints and the instructions provided by @Vikram_Subbaiah, so that you can select topography element and get (in the better case) a floor with the same boundary. If geometry is too complex, then you get at least a model line representing the boundary of the Toposurface you select.
Then you can select the new floor and (Clockwork) make it follow Topography.

But still, In my case, when I proceed with this step I am receiving an error message telling me that the floor element is “too thin” to get adapted to the surface, so I tried to (manually) simplify the shape, and thicken (a lot) the Floor Type, but still getting the same error.

I suppose then that “too thin” is a general expression used by Revit for “too much information”, and in fact I have to say that the model line I got and used as a guide for the floor boundary is very fragmented (possibly due to its generative process).

All this said, my question is: isn’t there (yet) a simple way for getting only boundary points coordinates, for later dropping out their Z value and get a more simple curve connecting the dots on a planar surface? Any advice about this?

Still, I am posting the flow since hope it can help somebody, feel free to comment.

Thank you :slight_smile:

floor from surface.dyn (349.7 KB)




did you also get the hole in your floor?