# IFC4 Export for Room Plans (BIM) > Turn a room plan into an IFC4 BIM file: walls, openings, doors, windows, slabs, spaces, quantities. Convert a room model (centre-line walls, doors, windows, spaces, furniture) into an IFC4 STEP file for BIM software: storeys, walls with material layers, openings that void the walls and are filled by doors and windows, floor and roof slabs, spaces with base quantities and furniture as bounding boxes. The file is re-read by an independent parser and checked against the IFC4 schema subset. Part of usefulweb.app (https://usefulweb.app/). Part of [Kerfwise](https://kerfwise.usefulweb.app/) (ownerApp: kerfwise). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://kerfwiseifcexport.usefulweb.app/ (interactive tool at https://kerfwiseifcexport.usefulweb.app/tool) - JSON API: POST https://kerfwiseifcexport.usefulweb.app/api/v1/calculate with a JSON object of inputs (schema: https://kerfwiseifcexport.usefulweb.app/api/v1/tool) - OpenAPI: https://kerfwiseifcexport.usefulweb.app/openapi.json - MCP (Streamable HTTP): https://kerfwiseifcexport.usefulweb.app/mcp - tool `kerfwise_ifc_export` ## Inputs - room (textarea): Room model JSON (or a Kerfwise project) - Storeys with centre-line walls {points, thicknessMm, layers}, openings {wallId, segment, kind, offsetMm, widthMm, heightMm, sillMm}, spaces {name, at, usage} and furniture. A .kerfwise.json project is converted from its kitchen plan. - date (text): File date (optional, YYYY-MM-DD) - Written into the IFC header. Empty = 1970-01-01, so the same plan always gives the same file. ## Method - Own STEP physical file writer (ISO 10303-21): header with FILE_SCHEMA(('IFC4')), one instance per line, strings encoded with '' and \X2\ for non-ASCII characters, reals always with a decimal point. Units: millimetre, square metre, cubic metre, radian, watt, degree Celsius. Plan y is flipped so the model is right-handed with Z up. - Spatial structure IfcProject → IfcSite → IfcBuilding → IfcBuildingStorey (IfcRelAggregates); spaces aggregated into their storey, all elements contained in it (IfcRelContainedInSpatialStructure). Every wall piece between junctions is an IfcWall with an extruded footprint (mitred joins) and an axis line, material layers as IfcMaterialLayerSet, Pset_WallCommon IsExternal and ThermalTransmittance. - Each opening is an IfcOpeningElement box through the wall (IfcRelVoidsElement) filled by an IfcDoor or IfcWindow (IfcRelFillsElement) with overall size and the door operation type. Floor slabs under each outline, a roof slab on the top storey, IfcSpace per room with Qto_SpaceBaseQuantities plus planner quantities; cabinets and furniture as IfcFurniture boxes. - GlobalIds are 128-bit hashes of the plan name and element ids, compressed to 22 characters, so the same plan always gives the same file. Validation re-parses the text with an own SPF reader and checks entity names, attribute counts, mandatory and derived attributes, enumeration values, reference targets and types against attribute lists generated from the official IFC4_ADD2_TC1.exp, plus GlobalId uniqueness, the spatial tree and voids/fills. ## Limits - A reference-view style concept model, not a certified IFC export: no owner history, no space boundaries, no wall connection relationships, furniture only as boxes and room holes not modelled in space geometry. The built-in check covers the IFC4 subset written here; run your BIM software’s own checker before you hand the file on. Approximate planning quantities, not certified: not for building permits, energy certificates, heat load sizing of a heating system or contractual area statements. Method: areas in the DIN 277 / ISO 9836 structure from wall centre lines, the BRE average daylight factor and a simplified EN 12831-1 transmission heat load (Σ A·U·ΔT). An architect or engineer would additionally measure the built rooms, apply the rules for your purpose (for example the full EN 12831-1 with ventilation and thermal bridges for heating design, or the local living-area rules for rentals) and check every number against the approved plans.