I am trying to extend a curve to where it would intersect with another curve.
You are looking at a side view of a staircase, the black line is the stairRun, the orange line is curve of the run offset by the riser heights (at start and end point) but now i need to extend the start point in the direction of the orange line, until it reaches the base level (the black curve)
Note this is good for lines, but might have issues with curves. Non-planar curves can have issues as well, and you’d want to ensure that the normal of the plane which you use is less than 90 degrees from the normal of the curve you’re extending.
In the case of regular stairs (the geometry with @Garbage_Collector was showing) it’s often the case that you’re generating the original line by nosing points, which means you can extend the start of the curve by the distance from the first nosing point to the second and be done with it - no geometry calculations required.
Hi and thank you for your input.
This helped a lot! I have taken some of your input and arrived at a concoction that works hehe…
The remark of Jacob about just translating the start and end by the tread depth was really helpful, didn’t even think of trying that…
Now i can create a revit solid to allow for clashtesting in navisworks by other parties (and use the geometry to clash in revit before sharing models with external parties)
I’m not really following what the difference would be in outcome following those steps to be honest. We both generate a solid of X height above the stairs to test clearance right?
The issue is that landings don’t follow the required rules for stair paths - said another way I can have a landing shaped like an L. or a T. or a Z. Or an O. As a result the loft won’t generate correctly in all cases.
Depending on the construction of the Stair you could use the established GetConnection method to extract component relationships.
( This example is for an Assembled Stair, so Run>Landing>Run>Landing>Run)
Select the Stair and extract the ordered Components that make it.
Extract the StairPaths to calculate the Nosing profile rail.
When calculating the nosing profile rail, project Runs to Landings for seamless transition, avoiding Vertical rail sections.
Use the Nosing rail and a profile that is set by the Stair width parameter, build a PolySurface that sits on-top of the Stair Components.
Extract the PerimeterCurves for this Surface and offset a copy vertically by the required clearance corridor offset.
Use a Loft by crossSections to create the solid for the Zone.
Top and Base Extents may need to be trimmed per Floor Level and surrounding Element requirements, but it gives you the base package.
i did something like this before, same principle as the above, i gathered all the edges and created a solid from there via directshape. and then from there, depends on what you want to do, you can get the intersecting elements via intersect filter