Offset in a plane?

I’m running into a problem where I feed Curve.Offset some line-like curves (from exploding a rectangle) - they offset in the XY plane for 3 of the 4, but one of them offsets in the Z axis. I assume the algorithm is calculating the best-fit plane of the curve to offset in - but in the case of a line this could be anything. Is there a way to force an offset to occur in a particular plane?

I can replicate the issuein the stable 0.82. This looks a lot like a bug. I can only offer a work-around. You can extrude each curve by a vector and get the resulting surface’s iso-line in the major direction.

 

2015-10-06_10-30-35

Nice workaround Dimitar. I made a similar workaround based on what you did that will also work with non-linear walls. Figured I’d share it. Since Surface.GetIsoline will read different surface types in different ways, and therefor likely not return the edge you want, I’ve instead intersected the surfaces with a plane in order to get the curves.

Is this still the best solution or how anyone found a better work around for this?

@Racel and @solamour, it was suggested to me from Bill Allen that I ask you for help.

Hello @chris.woodward - Can you please let me know what kind of problem you are trying to solve :slight_smile: ? This thread is 4 years out of date now.

Hi Sol, I’m basically trying to get a curve to offset in the XY plane. The polycurves will offset in the XY plane supposing that the kinks in the line are all in that plane. Single curves though don’t seem to be able to know which direction it should offset in so it seems to just pick one. Sometimes it offsets in the XY plane, other times it offsets vertically.

I currently have the solution here - extruding a surface, offsetting the surface, then taking it’s intersection with the XY plane - in place but that seems like an unnecessary creation of geometry over just defining which plane to offset the curve in.

Hello Chris,

Are you building these curves in Dynamo, or pulling them from another source (i.e Revit)? Depending on how the curves were built the Curve.Offset node will behave differently; it doesn’t allow for you to specify which plane to offset in currently.

I got a revit part, exploded it into surfaces, then took the edges of the bottom surface so that I got the “outline” of the part essentially. In this case, the part is a floor slab.

And yeah, I’ve noticed the different behavior. I guess if there is really no way to offset the curve in the plane, this use of surfaces might really be the best bet.

2 Likes

There is a working fix for this :slight_smile: Curve.SmartOffset from Wombat package. So no need to do workarounds.