Commands  ›  Clash Manager / Solver  ›  Clash Solver If Available Move Service Into Space

Clash Solver If Available Move Service Into Space

Clash Manager / Solver writes to model Public API · not yet exposed

Coming soon

Before you run this

Active document; one service element resolvable; default 3D view available.

After it runs

Either a move (inner Transaction) or a no-op with a structured reason.

When to use this

Don't use this when

Unconditional moves — use MoveServiceIntoDetectedSpace.

Inputs

NameKindTypeRequiredDefaultDescription
PresetKind config string no "clash_tolerances" Deterministic config preset

Decision flow

1) element unique id required OR single selection.
2) Probe point = LocationPoint else BB centroid.
3) CastRayFromPoint.CastSixDirections(max=threshold_mm/304.8).
4) available = any direction reports null hit (meaning cleared beyond cap) OR distance_mm ≥ threshold_mm.
5) If !available → emit { available=false, reason="no_direction_over_threshold" }. Exit without mutation.
6) If available → delegate to PlacementMoveElementIntoDetectedSpaceCommand with one-element scope + resolver overrides.
7) Emit { available=true, moved=true, delegated_to }.

What you'll see in the chat

on start
Probing whether space is available for move…
thinking
Casting six rays from element centroid…
If ≥ one direction over threshold, delegating to PlacementMoveElementIntoDetectedSpaceCommand…
on success
available={available}, moved={moved}.
on failure
Conditional move failed: {error}

REST API

Not yet exposed

This command does not carry a [RestApi] attribute today. Once tagged, this section will auto-populate with:

  • POST /api/v1/commands/clash_solver_if_available_move_service_into_space
  • Request body schema (from [RestApiParam])
  • Response schema (from [RestApiResponse])
  • curl / JS / Python code examples

Keywords & intent patterns

clashsolverifavailablemoveserviceintospace · conditional move service · solver probe move

PillarClash Manager / Solver