Flow Path


This component iteratively samples a surface, mesh, or polysurface to find the most vertical flow path along a geometry. It is based on the method laid out by Woojae Sung in this Blog Article. It takes the approach of using the surface normal and Rhino’s z-direction to create vector cross product which is multiplied to a sample distanced, whose closest point to the test surface becomes the next step. This component adds several new options to this approach such as the ability to use it on a mesh, polysurface (brep), and a surface. It also adds a new option to refine the samples around each test point to give a more accurate path within the specified tolerance, a limit on the shallowness that the path can traverse, and an optional sample limit. Samples are cut off when no more vertical change occurs from step to step, or two iterative sample points are identical.


Flow Path

GInGeometryItemA Mesh, Brep, or Surface input.
PInPoint 3dItemThe starting point of the flow path
DInDoubleItemThe Rhino based step size for each successive sample point
SInIntegerItemOptional input for the total number of potential sample points
RInDoubleItemAn optional input for a radial step size to test for a lower sectional point. The default of 0 uses the cross product and is significantly faster
TInDoubleListAn optional input to place a shallowness of angle limit, which if passed, ends the flow path
AOutPoint 3dItemThe list of sample points along the flow path


Minimum Requirements

PlatformRhino 5, Grasshopper
VersionGrasshopper 0.9.0075
TypeC# Component