Apologies for the late reply.
I’ve added a few lines of code to @Dimitar_Venkov node Springs.Geometry.GroupByDistance
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import Geometry
pts = IN[0]
margin = IN[1]
walls=[UnwrapElement(i) for i in IN[2]]
dist1 = Geometry.DistanceTo
Groups, Queue,Walls = [], [],[]
while pts:
group, wall = [],[]
Queue.append(pts.pop())
wall.append(walls.pop())
while Queue:
p1 = Queue.pop()
group.append(p1)
for i in xrange(len(pts)-1,-1,-1):
if dist1(p1, pts[i]) <= margin:
Queue.append(pts.pop(i) )
wall.append(walls.pop(i) )
Walls.append(wall)
OUT = Walls