Group closest parallel lines which are equal in length

An optimized python script to do this would look like this:
import clr
clr.AddReference(‘ProtoGeometry’)
from Autodesk.DesignScript.Geometry import Geometry

pts = IN[0]
margin = IN[1]
dist1 = Geometry.DistanceTo


Groups, Queue = [], []
while pts:
	group = []
	Queue.append(pts.pop() )
	while Queue:
		p1 = Queue.pop()
		group.append(p1)
		for i in xrange(len(pts)-1,-1,-1):
			if dist1(p1, pts[i]) <= margin and p1.Direction.IsParallel(pts[i].Direction):
				Queue.append(pts.pop(i) )
	Groups.append(group)

OUT = Groups

Kudos to @Dimitar_Venkov since this is a slightly modified version of the Python code in Springs.GroupByDistance node

4 Likes