wizard_plan_points#

Normalize Wall Wizard plan/elevation table rows for generateMultiSegmentWall().

Normalize Wall Wizard Plan/Elevation table rows for generateMultiSegmentWall.

Desktop model (one row per vertex):

Plan coordinate: X, Y Elevation coordinate: Top, Bottom

The elevation pair is NOT a second XY / start-end segment endpoint. Preferred AI/API shape:

{
  "plan": {"x": 12, "y": 5},
  "elevation": {"top": 2.4, "bottom": 0}
}
rswall.wizard_plan_points.normalize_wizard_plan_points(plan_points)#

Normalize Wall Wizard vertices into canonical wire dicts.

Preferred (self-explanatory for LLMs):

{"plan": {"x": 12, "y": 5}, "elevation": {"top": 2.4, "bottom": 0}}
Return type:

List[Dict[str, float]]

Parameters:

plan_points (Sequence[Any])

Also accepted:
  • flat named keys (x/PlanX, top/elevationTop, …)

  • 4-number rows [planX, planY, elevTop, elevBottom] (legacy / CSV order)

Rejected with a clear error:
  • [[x,y], [a,b]] (pair-of-XY / start-end / elevation-as-XY mistakes)

  • bare 2-number rows

rswall.wizard_plan_points.preferred_vertex_example()#

Return a sample preferred-shape vertex for plan/elevation tables.

Return type:

Dict[str, Dict[str, float]]