Split Beam at model line

I was trying to split beam at model line but i could not find any node to support.
Someone here can tell me where can i find this node? Or any resource for reference?
Please see a snap shot below to deeply understand what i mean.
Thank you very much!

You could get the intersection between the “location curves” of the model line and beams. Then set the existing beams location curve to the split curve left of the split point and build a new beam to the right with the resultant curves and using the same beam properties as the existing beams. You may need Python to set the existing beams new location from Dynamo curves, I have made a node that does this for my company, but it is dead simple to do and there is probably one already out in the packages, I was just too lazy to find one.

(Note, to get intersections the curves must be coplanar (in the same plane) you can make this happen by setting endpoints.Z value to 0 or projecting to plane)

Hope this helps.

I’ve had to do something similar but in my case I wanted to split one beam multiple times. You could try the following for your case:



Hi Vo,

There is no method in Revit API until now to split any element. However as Daniel said you could get the intersection between the location of the model lines and beams. Then you could create new beam using "StructuralFraming.BeamByCurve. Below is a clip that shows the result. You can see in the clip that i have created new beams and it does the same as you want (split beam) the existing beam gets deleted and new beam is created. Hope it helps!


Revit 2017 API allows family instance splitting now. http://thebuildingcoder.typepad.com/blog/2016/04/whats-new-in-the-revit-2017-api.html

I’ll take a crack at this and see if I can get something in Rhythm.


Kulkul, This is great video. What did you use to make it?

Nicely observed John, that one was easy to use:

1 Like

Is this possible with magicad cable trays?
I want to split cable trays where they go through voids.

I have currently made a graph that sorts out each cable tray in a model with each void the cable tray passes through.
I can use the geometry of those elements to split the cable trays where i want.
Is it possible with this method?
I dont use python, but when I fiddled with Einar Raknes’ code i got this error message:

Code is basically just copied and the cable tray element is the input to the beam variable.
Just to see if it was possible to split the cable tray by parameter i input 0.5 to the parameter, just like in the example.

Anyone got any idea of how to do this?

@Einar_Raknes Hi, may I ask how to use this code to work for multiple beams?

this is not working haha…