Surface.ByPatch and Curve.Patch in Dynamo Difference

Greeting dear all,
Is there any difference between the “Surface.ByPatch” and “Curve.Patch” as they seem similar to me, I tested them both and they both can work on a planner or non-planner surface generation out of a chain of curves. so what is the difference between them? and if there is none? why do we have two different nodes doing the same thing?
Many thanks in advance
Firas Noori

None really.

Because the core geometry library Dynamo uses (ASM) has it, it was easy to implement, and downstream functions ported from other tools (ie: Fusion, AutoCAD, Inventor, etc.) which utilize one or the other often load in one less class making them faster, and therefore Dynamo would need both to test cleanly.

1 Like

As always Jacob, so fast answer, and deeply appreciate your rapid support. thanks mate

1 Like

Always happy to help where I can. :slight_smile:

1 Like

If you allow me to ask you, dear Jacob, if you have 2 polygons and you want to loft them if you used the Surface.ByLoft you will get ONE surface, and if you used PolySurface.ByLoft, you will get ONE poly surface, yet the result is not logical, on the Surface.ByLoft we should get 4 surfaces since the surface is one continuous entity to enclose points or curves in the space, if we joined more than one surface then we got a one poly surface! any thoughts on this? thanks in advance.

Surfaces can have folds in them, similar to folding a piece of paper.

Surface.ByLoft will treat anything that inherits the curve class as a single curve. So by passing a pair of closed polycurves you’ll get a single surface who’s start and end point are aligned with the start and end of the polycurves. But if you explode that polycurve (and do some list management)… now you would get a surface between each pair of curves.

The polysurface would provide a single poly surface in both cases as it will first build the surface and then union them into a single polysurface. See what happens if you explode the polycurve to get the component surfaces.

1 Like

Thanks, dear, yet, I may disagree on part of what you said, Surface is the result of extruding a curve, it makes sense, this it is one entity, not a group of them. BUt extruding a polycurve should create a PolySurface, and yes then when you explode a PolySurface you should get surfaces, and I did that, it completely makes sense. but if you got a Surface, you should not be allowed to fold it as a piece of paper, coz if you do, then you are making edges and dividing it into sub-surfaces meaning it as a PolySurface, not a single Surface. Imagine my dear, that I just exploded the Surface I for from Surface.ByLoft the 2 polygons, and I got 4 Surfaces stored inside a single surface! this part is not logical! I think it should be always Polysurface in both cases.

This is not the case with most geometry engines. Folds are permitted.

2 Likes

thanks, dear brother for the clarification, so in this case, the Surface can be folded? and the within geometries still the same surface but bent somehow? I do not know if I am getting it. thanks for the help, and sorry for my long questions.

No worries. The more you ask the better. :slight_smile:

The intricacies of the geometry engine are many - most of which we do t have to actually get into for AEC content - our uses are typically linear in nature. But if you think of what you might have in modeling something like clothing, which would want to keep simplicity of ‘folding’ the corner of the shirt to reduce the geometric complexity, the need becomes more clear.

However surfaces still have a lot of limits in terms of what they can build, while polysurfaces allow those conditions to pass. As an example, you can build a disconnected polysurface from two discrete non-planar surfaces build by patching, something surfaces don’t like.

1 Like

Thanks dear, much better now, things started to make sense :slight_smile:

1 Like