bulc_setup_evac_stair
Configure furniture as evacuation stairs between floors to define entry/exit points, capacity, and travel speed for building safety simulations.
Instructions
Configure a furniture item as an evacuation stair connection between floors. Defines entry/exit positions, capacity, and travel speed.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| furnitureId | Yes | Furniture ID to configure as stair | |
| fromFloor | Yes | Source floor index (0=ground floor) | |
| toFloor | Yes | Destination floor index | |
| entryX | No | Entry point X coordinate in cm | |
| entryY | No | Entry point Y coordinate in cm | |
| exitX | No | Exit point X coordinate in cm | |
| exitY | No | Exit point Y coordinate in cm | |
| width | No | Stair width in meters. Default: 1.2 | |
| capacity | No | Max people on stair at once. Default: 10 | |
| travelSpeed | No | Travel speed in m/s. Default: 0.6 |
Implementation Reference
- src/tools/evac.ts:918-924 (handler)Specific handler case for 'bulc_setup_evac_stair' tool within the main handleEvacTool function. Validates input parameters using SetupEvacStairSchema and forwards the command to the BULC client backend.case "bulc_setup_evac_stair": { const validated = SetupEvacStairSchema.parse(args); result = await client.sendCommand({ action: "setup_evac_stair", params: validated, }); break;
- src/tools/evac.ts:108-163 (schema)MCP tool schema definition including name, description, detailed input schema, and annotations. Part of the evacTools array.{ name: "bulc_setup_evac_stair", description: "Configure a furniture item as an evacuation stair connection between floors. " + "Defines entry/exit positions, capacity, and travel speed.", inputSchema: { type: "object" as const, properties: { furnitureId: { type: "string", description: "Furniture ID to configure as stair", }, fromFloor: { type: "integer", description: "Source floor index (0=ground floor)", }, toFloor: { type: "integer", description: "Destination floor index", }, entryX: { type: "number", description: "Entry point X coordinate in cm", }, entryY: { type: "number", description: "Entry point Y coordinate in cm", }, exitX: { type: "number", description: "Exit point X coordinate in cm", }, exitY: { type: "number", description: "Exit point Y coordinate in cm", }, width: { type: "number", description: "Stair width in meters. Default: 1.2", }, capacity: { type: "integer", description: "Max people on stair at once. Default: 10", }, travelSpeed: { type: "number", description: "Travel speed in m/s. Default: 0.6", }, }, required: ["furnitureId", "fromFloor", "toFloor"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/tools/evac.ts:748-759 (schema)Zod runtime validation schema matching the MCP inputSchema, used in the handler for safe parameter parsing.const SetupEvacStairSchema = z.object({ furnitureId: z.string(), fromFloor: z.number().int().min(0), toFloor: z.number().int().min(0), entryX: z.number().optional(), entryY: z.number().optional(), exitX: z.number().optional(), exitY: z.number().optional(), width: z.number().positive().optional(), capacity: z.number().int().positive().optional(), travelSpeed: z.number().positive().optional(), });
- src/index.ts:40-51 (registration)Registration of all tool schemas including evacTools (containing bulc_setup_evac_stair) into the combined allTools array, provided to MCP ListToolsRequest.const allTools = [ ...contextTools, // 8 tools: spatial context, home info, levels, undo/redo, save ...roomTools, // 5 tools: create, create_polygon, list, modify, delete ...wallTools, // 5 tools: create, create_rectangle, list, modify, delete ...furnitureTools, // 5 tools: catalog, place, list, modify, delete ...fdsDataTools, // 7 tools: get, fire_source, detector, sprinkler, hvac, thermocouple, clear ...meshTools, // 5 tools: list, create, auto, modify, delete ...simulationTools, // 4 tools: get_settings, time, output, ambient ...fdsRunTools, // 6 tools: preview, validate, export, run, status, stop ...resultTools, // 5 tools: open_viewer, list_datasets, point_data, aset, report ...evacTools, // 25 tools: setup, stairs, agents, run, results, advanced features ];
- src/index.ts:135-137 (registration)Routing logic in main MCP CallToolRequest handler that directs 'bulc_setup_evac_stair' (matches 'evac') calls to the evac-specific handleEvacTool dispatcher.if (name.startsWith("bulc_") && name.includes("evac")) { return await handleEvacTool(name, safeArgs); }