bulc_set_premovement_time
Configure evacuation agent pre-movement timing by setting fire detection time and reaction time parameters with statistical distributions for building safety simulations.
Instructions
Set pre-movement time parameters for evacuation agents. Includes detection time and reaction time with statistical distributions.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| detectionTime | No | Fire detection time in seconds. Default: 0 (instant detection) | |
| reactionTimeMean | No | Mean reaction time in seconds. Default: 30 | |
| reactionTimeStdDev | No | Reaction time standard deviation in seconds. Default: 10 | |
| distribution | No | Distribution type: 'NORMAL', 'LOGNORMAL', 'UNIFORM'. Default: NORMAL | |
| minReactionTime | No | Minimum reaction time in seconds. Default: 0 | |
| maxReactionTime | No | Maximum reaction time in seconds. For UNIFORM distribution. | |
| applyPerRoom | No | Apply different reaction times per room. Default: false | |
| roomSettings | No | Per-room settings: [{room: '...', reactionTimeMean: ...}, ...] |
Implementation Reference
- src/tools/evac.ts:1076-1083 (handler)The handler case within handleEvacTool function that validates input using SetPremovementTimeSchema and sends the 'set_premovement_time' command to the BULC client.case "bulc_set_premovement_time": { const validated = SetPremovementTimeSchema.parse(args); result = await client.sendCommand({ action: "set_premovement_time", params: validated, }); break; }
- src/tools/evac.ts:841-854 (schema)Zod validation schema used in the handler to parse and validate the tool input parameters.const SetPremovementTimeSchema = z.object({ detectionTime: z.number().min(0).optional(), reactionTimeMean: z.number().min(0).optional(), reactionTimeStdDev: z.number().min(0).optional(), distribution: z.enum(["NORMAL", "LOGNORMAL", "UNIFORM"]).optional(), minReactionTime: z.number().min(0).optional(), maxReactionTime: z.number().positive().optional(), applyPerRoom: z.boolean().optional(), roomSettings: z.array(z.object({ room: z.string(), reactionTimeMean: z.number().optional(), reactionTimeStdDev: z.number().optional(), })).optional(), });
- src/tools/evac.ts:561-616 (registration)Tool specification object defining name, description, input schema, and annotations, included in the exported evacTools array for MCP server registration.{ name: "bulc_set_premovement_time", description: "Set pre-movement time parameters for evacuation agents. " + "Includes detection time and reaction time with statistical distributions.", inputSchema: { type: "object" as const, properties: { detectionTime: { type: "number", description: "Fire detection time in seconds. Default: 0 (instant detection)", }, reactionTimeMean: { type: "number", description: "Mean reaction time in seconds. Default: 30", }, reactionTimeStdDev: { type: "number", description: "Reaction time standard deviation in seconds. Default: 10", }, distribution: { type: "string", description: "Distribution type: 'NORMAL', 'LOGNORMAL', 'UNIFORM'. Default: NORMAL", enum: ["NORMAL", "LOGNORMAL", "UNIFORM"], }, minReactionTime: { type: "number", description: "Minimum reaction time in seconds. Default: 0", }, maxReactionTime: { type: "number", description: "Maximum reaction time in seconds. For UNIFORM distribution.", }, applyPerRoom: { type: "boolean", description: "Apply different reaction times per room. Default: false", }, roomSettings: { type: "array", description: "Per-room settings: [{room: '...', reactionTimeMean: ...}, ...]", items: { type: "object", properties: { room: { type: "string" }, reactionTimeMean: { type: "number" }, reactionTimeStdDev: { type: "number" }, }, }, }, }, }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/index.ts:139-149 (registration)Dispatch logic in main tool handler that routes calls to 'bulc_set_premovement_time' to the handleEvacTool function.if ( name === "bulc_set_agent_properties" || name === "bulc_generate_rset_report" || name === "bulc_save_evac_result" || name === "bulc_set_exit_assignment" || name === "bulc_set_premovement_time" || name === "bulc_set_fire_coupling" ) { return await handleEvacTool(name, safeArgs); }
- src/index.ts:40-51 (registration)Main tools array that includes evacTools (containing the bulc_set_premovement_time tool) for listing available tools to the MCP client.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 ];