Currently I’ve receive a project and the mission is to Add FloorAdd CeilingAdd Wallbase on revit room geometries.
The project contains 2000+ rooms and some are determine by Room Separation Lines, as you can image those geometries are resulted ugly (tolerance issue, open curves, self intersected, closed curve with 0 area … etc.)
I’m here to ask if you all have better work flow for this subject.
My initial attempt was naive -
Query Rooms and Element Geometry
Get rooms’ bottom face
Project to XY plane make sure the curves are flat
Brep Wireframe
Join Curves
…
n. Boundary to Add Floor
However, since the project contains 2000+ rooms and some are determine by Room Separation Lines, as you can image those geometries are resulted ugly (tolerance issue, open curves, self intersected, closed curve with almost 0 area … etc.)
In the attach file, you can see I attempted to clean those up. So after 5) Join Curves, I do:
For open curves due to document tolerance, I use @Baris script to close curve
Boundary Surface and Solid Union - Delete overlapping curves cause by Room Separation Lines
Curve to Polyline - For some reasons a few Closed Planar Curve don’t work
Cull closed curve which area is almost 0 which cause by Room Separation Lines
n. Boundary to Add Floor
Revit Rooms requires a bit of a cleanup. In my initial workflow, I deal with them level by level. Highlight those that are causing problems, clean them up, and use their boundaries to generate Revit elements (floors, ceiling, wall finishes etc.)
When it comes to getting room boundaries, I don’t recommend you to get their bottom face. This causes lots of problems for some reason. @eirannejad created a python component that returns room boundary.
python component works in most cases but sometimes it doesn’t return a closed polycurve. So I use a cluster component I created that gets the room boundary by doing brep-plane intersection. It is pretty solid as far as I experienced.
I totally agree, however, in a team and dealing with this type of project (2000+ rooms), others assume the BIM person like us has to do the magic or what so ever to get the job done "automatically. Even we had explained the cause … at least this is what I’m facing at the moment…
In other words, if its just 3 ugly rooms, sure I can clean it up for them. But if its 30+, hope I have the brave to yell at them. (Sorry for my expression)
Quick suggestion:
Make sure you don’t have rooms like the one below if you are going to create Revit elements using its boundaries. This causes an error because Revit cant create a valid floor boundary out of it.