bulc_create_wall
Create custom wall segments in building designs by specifying start and end coordinates, thickness, and height for precise spatial layout in fire simulation software.
Instructions
Create a wall segment between two points. All coordinates are in centimeters. For rectangular rooms, consider using bulc_create_walls_rectangle instead.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| xStart | Yes | X coordinate of wall start point (cm) | |
| yStart | Yes | Y coordinate of wall start point (cm) | |
| xEnd | Yes | X coordinate of wall end point (cm) | |
| yEnd | Yes | Y coordinate of wall end point (cm) | |
| thickness | No | Wall thickness in centimeters. Default: 10 | |
| height | No | Wall height in centimeters. Default: 250 | |
| level | No | Floor level index. Default: current level |
Implementation Reference
- src/tools/wall.ts:213-220 (handler)Handler logic for 'bulc_create_wall': parses arguments with Zod schema and sends 'create_wall' command to BULC client.case "bulc_create_wall": { const validated = CreateWallSchema.parse(args); result = await client.sendCommand({ action: "create_wall", params: validated, }); break; }
- src/tools/wall.ts:8-52 (schema)Tool definition including name, description, and input schema for MCP tool registration.{ name: "bulc_create_wall", description: "Create a wall segment between two points. " + "All coordinates are in centimeters. " + "For rectangular rooms, consider using bulc_create_walls_rectangle instead.", inputSchema: { type: "object" as const, properties: { xStart: { type: "number", description: "X coordinate of wall start point (cm)", }, yStart: { type: "number", description: "Y coordinate of wall start point (cm)", }, xEnd: { type: "number", description: "X coordinate of wall end point (cm)", }, yEnd: { type: "number", description: "Y coordinate of wall end point (cm)", }, thickness: { type: "number", description: "Wall thickness in centimeters. Default: 10", }, height: { type: "number", description: "Wall height in centimeters. Default: 250", }, level: { type: "integer", description: "Floor level index. Default: current level", }, }, required: ["xStart", "yStart", "xEnd", "yEnd"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/tools/wall.ts:164-172 (schema)Zod validation schema for input parameters of bulc_create_wall.const CreateWallSchema = z.object({ xStart: z.number(), yStart: z.number(), xEnd: z.number(), yEnd: z.number(), thickness: z.number().positive().optional(), height: z.number().positive().optional(), level: z.number().int().optional(), });
- src/index.ts:40-51 (registration)Includes wallTools (containing bulc_create_wall) in the complete list of tools registered with the MCP server.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:73-75 (registration)Routes tool calls matching 'bulc_*wall*' to the handleWallTool function.// Wall tools if (name.startsWith("bulc_") && name.includes("wall")) { return await handleWallTool(name, safeArgs);