I am trying to create beam using the BeamByCurve method on level 4 of project but for some reason it is being created on level 1.
Any idea why this would happen and how can I fix this?
Try to translate curves at the elevation of Level 4 before generate beam.
So the “Level” input of the node just doesn’t work?
I didn’t say that. I’m telling you the way that works.
Lol of course not, I am just wondering why to enter level 4 if what is needed is to translate the position to the level 4 elevation in order for it to work…
Because a Beam in Revit has a Schedule Level property that can be independent from it’s geometrical location. Think about long, diagonal beams that span multiple levels.
So if it was an element other than a beam then the geometry would be position and the level input?
That’s too much of a blanket statement. You’ll find that a lot of other placement Nodes just accept a point/line and have no need for a Level input.
I would say that most often you would need to give an element all 3 (x,y,z) to be placed. Also, how would an element determine it’s position “within” a Level if you would only give it a Level input.
That’s a good question. I’m not the one that created the node who determined the inputs. That’s why it is a bit weird to me that they ask for a level input and doesn’t place the element on it…
That’s pretty much the reason for my post to try to understand how it works and how to use it as it doesn’t work as I expected.
If the “BeamByCurve” node forced the beam to be on that level, you would not be able to create members along a circle or following all different forces.
Therefore think of the level input as a “Reference” not a placement, so if you want the members to be at that level, extract the Z value of the Level and replace the curves Z value with this one.
Then you input the curve into the node.
So I should use the level input just as a means to set the level parameter without any regard to its position?