bulc_modify_wall
Modify existing wall properties in building designs by adjusting dimensions, position, or thickness to update architectural layouts.
Instructions
Modify properties of an existing wall. Only specified properties will be changed. Get wall IDs from bulc_list_walls.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Wall ID to modify (from bulc_list_walls) | |
| xStart | No | New start X (cm) | |
| yStart | No | New start Y (cm) | |
| xEnd | No | New end X (cm) | |
| yEnd | No | New end Y (cm) | |
| thickness | No | New thickness (cm) | |
| height | No | New height (cm) |
Implementation Reference
- src/tools/wall.ts:240-246 (handler)Specific handler case for 'bulc_modify_wall' tool: validates input with ModifyWallSchema and sends 'modify_wall' command to BULC client.case "bulc_modify_wall": { const validated = ModifyWallSchema.parse(args); result = await client.sendCommand({ action: "modify_wall", params: validated, }); break;
- src/tools/wall.ts:188-196 (schema)Zod schema used for runtime input validation of bulc_modify_wall parameters.const ModifyWallSchema = z.object({ id: z.string(), xStart: z.number().optional(), yStart: z.number().optional(), xEnd: z.number().optional(), yEnd: z.number().optional(), thickness: z.number().positive().optional(), height: z.number().positive().optional(), });
- src/tools/wall.ts:117-142 (registration)Tool metadata registration in wallTools array, including MCP inputSchema, description, and annotations for bulc_modify_wall.{ name: "bulc_modify_wall", description: "Modify properties of an existing wall. Only specified properties will be changed. " + "Get wall IDs from bulc_list_walls.", inputSchema: { type: "object" as const, properties: { id: { type: "string", description: "Wall ID to modify (from bulc_list_walls)", }, xStart: { type: "number", description: "New start X (cm)" }, yStart: { type: "number", description: "New start Y (cm)" }, xEnd: { type: "number", description: "New end X (cm)" }, yEnd: { type: "number", description: "New end Y (cm)" }, thickness: { type: "number", description: "New thickness (cm)" }, height: { type: "number", description: "New height (cm)" }, }, required: ["id"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/index.ts:40-51 (registration)Combines wallTools (including bulc_modify_wall) into allTools list advertised via 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:74-76 (registration)Main MCP tool call dispatcher routes bulc_*_wall tools (including bulc_modify_wall) to wall handler.if (name.startsWith("bulc_") && name.includes("wall")) { return await handleWallTool(name, safeArgs); }