bulc_auto_mesh
Generate FDS simulation meshes from building geometry with specified resolution for rooms, walls, and multi-level structures.
Instructions
Automatically generate FDS mesh based on building geometry. Creates optimized mesh covering all rooms and walls with specified resolution. Can create single mesh or multiple meshes for multi-level buildings.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cellSize | No | Target cell size in meters. Default: 0.2 (20cm) | |
| padding | No | Padding around geometry in meters. Default: 0.5 | |
| heightAboveRoof | No | Additional height above highest point in meters. Default: 1.0 | |
| multiMesh | No | Create separate meshes per floor level. Default: false (single mesh) | |
| maxCells | No | Maximum total cell count. Auto-adjusts cell size if exceeded. Default: 1000000 |
Implementation Reference
- src/tools/mesh.ts:263-270 (handler)Handler case for 'bulc_auto_mesh' tool: parses arguments with AutoMeshSchema and sends 'auto_mesh' action to BULC client.case "bulc_auto_mesh": { const validated = AutoMeshSchema.parse(args); result = await client.sendCommand({ action: "auto_mesh", params: validated, }); break; }
- src/tools/mesh.ts:210-216 (schema)Zod schema for validating inputs to the bulc_auto_mesh tool.const AutoMeshSchema = z.object({ cellSize: z.number().positive().optional(), padding: z.number().optional(), heightAboveRoof: z.number().optional(), multiMesh: z.boolean().optional(), maxCells: z.number().int().positive().optional(), });
- src/tools/mesh.ts:84-119 (registration)Registration of the 'bulc_auto_mesh' tool in the meshTools array, including description, input schema, and annotations.{ name: "bulc_auto_mesh", description: "Automatically generate FDS mesh based on building geometry. " + "Creates optimized mesh covering all rooms and walls with specified resolution. " + "Can create single mesh or multiple meshes for multi-level buildings.", inputSchema: { type: "object" as const, properties: { cellSize: { type: "number", description: "Target cell size in meters. Default: 0.2 (20cm)", }, padding: { type: "number", description: "Padding around geometry in meters. Default: 0.5", }, heightAboveRoof: { type: "number", description: "Additional height above highest point in meters. Default: 1.0", }, multiMesh: { type: "boolean", description: "Create separate meshes per floor level. Default: false (single mesh)", }, maxCells: { type: "integer", description: "Maximum total cell count. Auto-adjusts cell size if exceeded. Default: 1000000", }, }, }, annotations: { readOnlyHint: false, destructiveHint: true, }, },