Irregular polycurve offset

I’m getting a weird result when using the Polycurve.Offset node.

I have a series of polycurves that i’m trying to offset:

comprised of an exterior loop and some number of interior loops. the interior loops sometimes offset in the ‘wrong’ direction. Below, see the ‘upper’ curve offsets towards the exterior, whereas the lower curve offsets towards the interior.

it seems like curves created with the circle or ellipse tool give this result. There is a section in the code to split ellipses and curves into sections so they can be used to generate floors, so the component curves should not be circles or ellipses at this point.

Is there an explanation for what’s going on here?

I also sometimes get a warning “Warning: PolyCurve.Offset operation failed.
Could not offset polycurve.” and i’m not sure why this occurs. what conditions prevent a curve from being able to be offset?

Hello,

Lines could be too short, for creating it? Espacily when the lines are already very short!

KR

Andreas

i haven’t encountered dynamo having minimum geometry issues. isn’t that typically a revit issue? the curves are being used to represent roads, so i don’t think short curve tolerance should become an issue. The interior curves not generated by the circle tool seem to generate correctly (what you’ve circled in the bottom right)

I recognize these may be two distinct issues, but they do seem related. the offset for the circle’s interior curve just fails to generate right now.

hello
Model lines in Revit have a minimum of 1/32" in length
Line is too short

i messed around with this some more and it seems like the order of the operations matters, so @Draxl_Andreas i think you’re right that it has something to do with the relation of points after the offset, but it’s unclear what the specific restriction is.

I changed the order from

  1. extract curves
  2. fillet intersections
  3. chop circle or ellipse sub curves
  4. offset curves

to

  1. extract curves
  2. offset curves
  3. fillet intersections
  4. chop circle and ellipse sub curves

and it seems to work pretty consistently.