I am extracting some surfaces from Revit elements in order to clean up and freeze the geometry for setout purposes. Since Revit works with solids, when I extract surfaces from walls and roofs (etcetera) there are small slivers at each corner that are left over. I don’t want to have to select all of these surfaces and then have to join the geometry, because that would be a lot of manual work, and I have lots of elements to process.
Here is a sample of what I am trying to do:
I would like to automatically process a list of these surfaces and have dynamo do the following:
- Determine which surface intersects with another surface
- Of the surfaces that do intersect, determine which edges are closest to each other and parallel.
- If the edges are the same leave them alone, if one of them is resting not on the other surface, extend or trim the surface so they meet exactly at the corner.
- The surfaces would also be checked against horizontal surfaces, like the sloped roof in this example, and trimmed accordingly.
I have been playing around with extracting the surfaces, their planes, finding out what intersects with what, etc. I am stuck trying to figure out how to extend a surface, at a specific edge. I wish there was a trim surface command that worked like the fillet command in AutoCAD with a 0 radius.
I did look into the polysurface fillet command, but that requires a radius and you have to start from a continuous polysurface already, which my disconnected surfaces are not.