The space register and DWG, DXF, IFC and PDF plans in Odoo
An owner-occupier's portfolio is described from the territory down to the room, and every room has its place on a plan. The immo_space module keeps the register: territories, sites, buildings, floors, zones, rooms, outdoor areas and equipment. The immo_plan module imports plans, displays them in a plan viewer and links their rooms to the rooms in the register.

From the territory to the room
Territories form a configurable hierarchy above the site (département, sector, municipality, or whichever levels you choose). Below the building, floors, zones, rooms and outdoor areas (courtyard, sports ground, car park, green space) each carry their own areas and typology. Space typologies (office, kitchen, laboratory) are maintained by the administrator.
A building can be attached to several sites, such as a school canteen shared by two secondary schools. The building record carries the attributes of a public-access establishment (ERP) (type and category). A room record gives its type, usage category, condition, capacity, net, gross and floor areas, its BIM identifier and its equipment.


Equipment by room and end of life
Standard equipment from Odoo's Maintenance module is filed under a room, with its category, site, building and space, and a theoretical end-of-life date. The equipment list sorts on these dates, and a piece of equipment opens on its room or on the plan.

Data quality
Weighted completeness rules give each site, building and space a completeness rate, recalculated on demand. A ribbon flags possible duplicates, and filters isolate incomplete data. This lets you measure what is still to be filled in before relying on a register.

Importing a plan
A plan has a type (site plan, topographic plan, floor plan, section, elevation, BIM model), a building, a floor, a scale and an author. Each upload creates a version with its file, fingerprint, author, date and metadata, and a consistency check compares the imported outlines with the register.
| Format | What the import does |
|---|---|
| DXF | Reads the rooms and their layers |
| DWG | Converted to DXF by LibreDWG, installed on the server |
| IFC | Model read by IfcOpenShell, installed on the server |
| PDF and images | Used as a plan background, with a sheet scale |
| RVT (Revit) | Kept and versioned as a file; export it to IFC from Revit to use it |
Without LibreDWG, DWG import is not available and the other formats remain usable. Without IfcOpenShell, IFC import stops with a message.


A PDF plan or an image as a background
The architect's PDF plan can serve as a background. The file is displayed to scale when the sheet scale is filled in (the graphic ruler is then in metres), the page to use can be chosen, and rendering goes through Poppler or pypdfium2 depending on what is installed on the server. You then draw the room outlines on the background with the mouse, clicking the corners, then link each outline to a room on the floor. The rooms drawn receive the themes, the click and the area calculation just like those of a DXF plan.

Layers, filters, themes and annotations
The plan viewer zooms, pans, shows or hides the drawing layers, changes floor and opens a room's attributes on click. Colour themes colour the rooms by type and, when the corresponding modules are installed (they are installed automatically with occupancy and compliance), by occupancy, occupying entity, occupancy rate or regulatory compliance. Filters isolate a room type, a usage category, a condition or an occupying entity.
Annotations (text, marker, symbol) are placed on the plan, moved by dragging and edited from their record. The title block shows the building, level, scale, author, version and print date, and the plan can be printed.



Work orders placed on the plan
The immo_plan_maintenance module locates Odoo maintenance requests on a plan: the room, a point on the plan, the floor, the building and the site are deduced from it. Placement is done in two steps: a click drops a provisional pin, the detected room is shown in a confirmation window (Confirm, Move, Cancel), then the plan viewer stays open. A marker is moved by dragging, with confirmation and the option to cancel. "New work order here" opens a quick form on the plan (subject, type, priority, room equipment, team), and "View on plan" from a request centres the plan on its marker.
The Work orders and Equipment layers are added to the plan viewer: colour shows the stage, shape the type (corrective or preventive), the badge the priority, and filters target the status, type, period and team.

Legal areas
Area types are configurable: floor area, gross usable area, usable area, internal area, living area, each with its measurement basis, minimum height, coefficient and legal reference. A calculation covers a building or a floor, moves from Draft to Validated and remains in the history. The area is displayed on the plan's rooms in place of the measured area, and the calculation can carry the floor area over to the rooms.


Exporting a plan
A plan is exported to DXF or DWG (with the room outlines, annotations and title block, and the metadata in the drawing properties), to PDF at the plan's scale when the sheet size allows it, and to IFC as imported. Each export is recorded in a log with its author and date.

BIM model
An imported IFC model provides its levels, rooms and their areas. It is displayed in the same plan viewer as 2D plans, floor by floor, with the same layers, themes and filters.

See TSC Immo on your own cases
A demonstration on a database with fictitious data, then on your own management questions.