bulc_modify_room
Modify existing room properties like name, position, and dimensions in BULC Building Designer. Update specific attributes without recreating rooms.
Instructions
Modify properties of an existing room. Only specified properties will be changed. Get room IDs from bulc_list_rooms first.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Room ID to modify (from bulc_list_rooms) | |
| name | No | New room name | |
| x | No | New X coordinate of bottom-left corner (cm) | |
| y | No | New Y coordinate of bottom-left corner (cm) | |
| width | No | New width (cm) | |
| depth | No | New depth (cm) |
Implementation Reference
- src/tools/room.ts:238-245 (handler)Executes the bulc_modify_room tool by parsing arguments with ModifyRoomSchema and sending a 'modify_room' command to the BULC client.case "bulc_modify_room": { const validated = ModifyRoomSchema.parse(args); result = await client.sendCommand({ action: "modify_room", params: validated, }); break; }
- src/tools/room.ts:187-194 (schema)Zod validation schema for the inputs to the bulc_modify_room tool.const ModifyRoomSchema = z.object({ id: z.string(), name: z.string().optional(), x: z.number().optional(), y: z.number().optional(), width: z.number().positive().optional(), depth: z.number().positive().optional(), });
- src/tools/room.ts:107-146 (schema)MCP tool schema definition for bulc_modify_room, including input schema, description, and annotations.{ name: "bulc_modify_room", description: "Modify properties of an existing room. Only specified properties will be changed. " + "Get room IDs from bulc_list_rooms first.", inputSchema: { type: "object" as const, properties: { id: { type: "string", description: "Room ID to modify (from bulc_list_rooms)", }, name: { type: "string", description: "New room name", }, x: { type: "number", description: "New X coordinate of bottom-left corner (cm)", }, y: { type: "number", description: "New Y coordinate of bottom-left corner (cm)", }, width: { type: "number", description: "New width (cm)", }, depth: { type: "number", description: "New depth (cm)", }, }, required: ["id"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/index.ts:54-58 (registration)Registers all tools, including bulc_modify_room via roomTools inclusion in allTools, for the MCP ListToolsRequest.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: allTools, }; });
- src/index.ts:68-71 (handler)Dispatches calls to bulc_modify_room (and other room tools) to the handleRoomTool function.// Room tools if (name.startsWith("bulc_") && name.includes("room")) { return await handleRoomTool(name, safeArgs); }