After Dividing Surface, how do you select original Mass?

I have created a definition (below) which selects a mass, intersects it with planes, creates outlines and then produces floor slabs from it. It works on any mass built in Revit, without fail.

Once I “Divide Surface” on this mass to apply curtain patterns, etc. (the left mass in the image below) Dynamo no longer recognizes the Mass as 1 Solid element but a series of Lines and Meshes. Has anyone come across this problem, or know a workaround? I’d like to use one base mass to produce both my floor slabs as well as my Curtainwalls, but because of this issue things aren’t looking so rosy right now.

Thanks in Advance,

createFloorType_byMass

Masses

Hi Brian,

Did you try using “Solid.Differencel” node?

One alternative that comes to mind is to copy the mass form just before dividing its surfaces and use the copy’s geometry to drive the rest of your model:

 

 

I suppose is issue is in the Revit project environment where the mass when selected isn’t listed as a Form

In that case, you can consider extracting the mass floors and obtaining the perimeter curves (instead of intersecting solid with planes)

You’d be obtain similar results, but will have to use the Revit option of creating Mass floors by checking the boxes for the required levels.

Hope this makes sense.

Guys, thank you for the responses. Let me unpack the problem a little further. I have not one, but three towers that I am attempting to do this for. Originally I approached the problem with a “Select All Elements of Category-Mass Floor”, like Vikram suggested. This worked beautifully for 1 tower and fell apart once Dynamo began collecting all Mass Floors, because downstream I didn’t know which Mass Floor belonged to which tower and it was difficult to parse out the Mass Floors!

Vikram do you have a good way of tracking which Mass the Mass Floors belong to once there are multiple masses in a file?

Dimitar, your solution is interesting and would work, although having to manage multiple masses in a file will lead to its own complications.

Thank you guys!

For multiple towers you would need to change the lacing on some nodes and/or use the List.Map node

Basically some list management.

When you have multiple towers, the elements associated with each tower would be grouped together as separate sub lists.

Would be able to offer better suggestions if you post a sample Revit file and your definition

Massing Test_R16

createFloorType_byMassFloor

Hi Vikram, thanks for the quick reply!

I followed your method and it seems to work, except for an error being thrown at the very beginning of the definition which I couldn’t seem to remove with a “Remove Nulls” node.

Thank you

Hi Brain,

Use “List.Clean” node to remove null values. And also don’t forget to set false to preserveindices.

Will do, thanks Kulkul!

Studied your file and it seems like Lacing/Mapping wasn’t a good suggestion

To group the mass floors according to their masses you could do this…