DXF import and layer roles
A DXF names its layers, not its walls, so the plugin classifies layers by name: AIA codes such as A-WALL, A-DOOR, A-GLAZ, and A-AREA, plus the plain words an office uses in English, French, German, Italian, or Spanish. The patterns are editable in the popout for drawings that follow their own convention. Geometry on wall, door, and window layers is kept as drawn - no thickness is inferred and no door swing is invented - while a closed shape on a room layer becomes a room named by the text inside it.
The reader handles lines, polylines with arcs, circles, ellipses, splines, text and MTEXT, block references with scale and rotation, attributes, and the anonymous blocks dimensions draw through. Paper-space entities and frozen or hidden layers are skipped and counted, and the unit comes from the file header, with an override for unitless drawings. DWG is a proprietary binary format the plugin does not read: export DXF from the CAD application first.
Sweet Home 3D import
A .sh3d file carries its walls with thickness and joins, its doors and windows with their sash swings, its rooms with names and area flags, labels, dimension lines, and furniture, and the plugin reads all of them from the Home.xml that Sweet Home 3D has written since version 5.3. Whether an opening is a door or a window is inferred from its sill height and its name, since the file does not say. Only the selected level is drawn; items on other levels are counted in the status line.
The plan JSON format
Every import lands in one normalized model - walls, openings, rooms, labels, dimensions, furniture, and passthrough strokes in a real-world unit - and that model is the plugin's own JSON format. Convert an imported file to JSON and edit it by hand, paste one from a script, insert one of the four bundled examples, or save a placed plan as a .floorplan.json file. Units can be millimeters, centimeters, meters, inches, or feet, and room areas are reported in square meters or square feet.
Walls, doors, windows, and rooms
Walls are drawn as filled outlines at their real thickness, with corners mitered where two walls meet. Doors cut a gap in the wall and draw the leaf and its swing arc; windows cut a gap and draw glazing lines. Rooms are tinted polygons with the name and the computed area at the centroid, dimension lines carry arrowheads and the measured length, and furniture is drawn as footprints. Everything lands as ordinary SVG paths, lines, and text in named groups, so a placed plan restyles and edits like anything else on the canvas.
Stays editable after placement
A placed plan remembers its JSON, not the original file. Select it and the plugin panel reloads the JSON and the style settings, regenerates the plan in place from edited text, and restores the previous version with a single undo step.