I have a question regarding cutting parts off a floor in Dynamo.
Basically what I want to do is the following:
The Big-Volume presenting my Floor, which I created in Dynamo. I now want to cut out a piece from it. I havent found a solution on the forums. Is there a way to do it?
Thank you in advance.
I believe once a floor is created, all you can do to edit it is created “openings” in it with curve loops.
Maybe start here:
I went through your workflow and have a few comments:
-The “FloorType.ByName” node does not create new floor types in your Revit file, but instead only selects existing floor types. You might need to create floor types that match your area load types beforehand.
When you pull all your lines with the “All Elements of Category” node, they are not ordered. You must think of a way to select only the lines that are inside the boundaries of the particular host floor (or i…
If I were to do this in the UI, I would likely place a hosted family which cut the void out of the floor - I believe there are options for the FamilyInstance.ByGeometry node to have the geometry be a void, so that is something you may want to review.
Unfortunately editing the floor loops doesn’t allow you to “notch” the geometry.
@JacobSmall’s logic you can do this with spring nodes and clockwork. (I did have a little fun with the “notching” that I used.) The workflow in Dynamo:
The Result in Revit:
And some sample files if anyone else wanted to have a go with it.
GenerateVoidFamily.dyn (24.7 KB) VoidFloorWithFamily.rvt (532 KB)
@john_pierson This does get the Job done indeed! Really great job!
But what I noticed is, it only works once. If I want to repeat it, I have to use another value for the “notch” run it again, delete the volumes, set the “right” value again and run it again.
I think it is because it needs to rewrite the VoidSample??
Is there a way to kinda reset it right after it was used? So I can run it over and over again?
Thank you very much so far
If you use Dynamo Player to run the script you will not have problems with element binding. However, you would need to generate a unique void name to avoid overwriting the previous one.
This is your biggest issue here for multiple runs, as element binding can be circumvented in a few ways.
Try adding the date/time as one method, or the element ID of the hosting floor.