(Houdini, Vex)

Bevel to Point or Line per Primitive Point

Bevel to Point Primitive Wrangle

// put all primitive points in an array
int prim_pts[] = primpoints(0, @primnum);
// unused: vector center = point(1,"P",@primnum);
// remove initial primitive, no longer needed
removeprim(0, @primnum, 1);

// positions for additional points
vector floor_pos = set(@P.x, 0, @P.z);

// create additional points
int floor_pt = addpoint(0, floor_pos);

// create polyline per primitve point
foreach(int pt; prim_pts){
    addprim(0, "polyline", pt, floor_pt);