How to normalize PDF, DWG, and BIM into consistent room boundaries?

How to normalize PDF, DWG, and BIM into consistent room boundaries?

matthew_waychoffA7MR6
Observer Observer
330 Views
4 Replies
Message 1 of 5

How to normalize PDF, DWG, and BIM into consistent room boundaries?

matthew_waychoffA7MR6
Observer
Observer

Modelizer_LinkedIn_Week1_1Monday_v2.png

Most attempts at room extraction seem to fail for the same reason, and I’m trying to understand if I’m approaching this correctly.

 

Environment:

  • DWG floorplans (varying quality)
  • PDF drawings (vector and raster)
  • Occasional Revit models

Goal:

  • Extract closed room boundaries
  • Determine adjacency relationships

Constraints:

  • Walls in DWG are often incomplete or slightly misaligned
  • PDFs don’t always contain reliable vector geometry
  • Revit models don’t consistently match drawings

Attempted methods:

  • Line extraction + gap closing heuristics
  • Raster processing + OCR
  • Rule-based enclosure detection

Issue:
Results are inconsistent across projects. Small gaps prevent closure, and adjacency becomes unreliable.

 

Question:
Within Revit or Autodesk tooling, is there a recommended way to normalize geometry into a consistent spatial structure before attempting room extraction?

Is there a recommended way to prepare DWG geometry to be a consistent spatial structure before attempting to convert to a family in RVT? & are folks using: Area, Space, Zone, &/or Room?

0 Likes
331 Views
4 Replies
Replies (4)
Message 2 of 5

RLY_15
Advisor
Advisor

This is likely not a straightforward answer. You've already acknowledged multiple sources, each with their own proclivities that require either novel solutions or someone dedicating man-hours to patching the file/output into something usable.

 

You're better off asking the question per source type, or you won't get a concise answer.

 

 

First question - what is your destination for the output? Roombook? A gbxml schema? A revit model?

0 Likes
Message 3 of 5

matthew_waychoffA7MR6
Observer
Observer

@RLY_15 Thanks for your honest insight. Since I believe Roombook & gbXML can be generated from RVT, let's narrow this down to RVT output. & also, I like your suggestion to narrow down the input as well. Let's choose DWG. So I will rephrase my question above to be within the context of DWG to RVT as follows:

Is there a recommended way to prepare DWG geometry to be a consistent spatial structure before attempting to convert to a family in RVT? & are folks using: Area, Space, Zone, &/or Room?

0 Likes
Message 4 of 5

lucdoucet_msdl
Advisor
Advisor
@matthew_waychoffA7MR6 wrote:

Question:
Within Revit or Autodesk tooling, is there a recommended way to normalize geometry into a consistent spatial structure before attempting room extraction?


Within Revit, yes the recommended use of Revit Rooms bounded by "room bounding" elements (such as walls, columns, room bounding lines, etc) along with the calculation methods defined in the area calculation settings should give results to the precision typically expected for building planning and general construction.

Understanding the inter-relation of the calculation settings and bounding elements will be critical in adapting the OOTB Revit use of rooms with respect to your needs.

 

If you require a different method of calculation than those provided by the use of Revit Rooms, you can opt for Revit Surfaces which has similar "surface bounding" elements and calculation settings.

 

This said, if you require absolute precision to a millimeter level in the way Revit calculates and tabulates results, you may have to search for alternate solutions such as manually drawing room perimeters (such as Plines in Autocad or filled detail regions in Revit). While this method may allow more precision, it sacrifices flexibility and introduces operator error while being time consuming.

 

As for defining room adjacencies, I don't think there is an OOTB function in Revit. There are some Dynamo/Python scripts that attempt to calculate adjacencies (see link below).

Get Existing Room Adjacency By Level


Issue:

Results are inconsistent across projects. Small gaps prevent closure, and adjacency becomes unreliable.


As for the problems you are facing, I would not be surprised that projects modelled by different teams with different settings will give you inconsistent results across multiple projects. If you are saying that the results using different software to extract from the same project, you will need to analyze the workflows involved and the settings to determine the sources of error.

For the small gaps preventing closure, a periodic review of the model "health" should include the identification and correction of placed rooms that are unbounded or overlapping.

 

As mentioned above, adjacency is not an OOTB feature in Revit. You will have to debug your adjacency workflow to improve reliability and communicate the modelling requirements to your project team members.

 

Hope this helps,

 

-luc

Message 5 of 5

RLY_15
Advisor
Advisor

From the Revit end of that conversation, the answer on what people are using is: Yes. Each one has applications that depend on the trade you participate in. As primarily Mechanical, I mostly ignore Area, heavily use Space/Zone, and reference other's Rooms.

 

I'm generally relying on the Room Bounding condition of modelled elements for spatial element creation. In the case where a CAD base file is received but the project is in Revit (contract misunderstanding, perhaps, or just a difference in deliverables), there's a few general pathways we follow depending on time constraints:

  • Manual modelling, using the CAD file and Pick Line feature of the Wall tool to make our own placeholder modelled elements that function as the Room Bounding elements.
  • Space Separation lines, traced over wall faces, to handle minimal floor area work. This can get messy extremely quickly if you try to scale it up.
  • Programmatic generation of walls based on the CAD file linework. Generally (unless the CAD file uses multiline tools or archicad defined wall assemblies, or whatever), a wall gets drafted as two parallel lines, with any additional detailing being assigned to another layer (POCHE for hatches, for instance?). This means that you can, using a scripting method of choice, retrieve the linework and group parallel lines of similar length based on minimal distances. This gets you line pairings which you can then use to generate Room Bounding walls.
  • Programmatic generation of Space Separation lines, simply pulling the linework for the wall faces. We then sandblast the model of any generated Spaces below a catchall area, to eliminate wall voids/intersections from being treated as room. Again, very messy extremely quickly.

We have four options instead of a universal option because we're evaluating accuracy against speed based on the received files and the project scale. Some projects are 'dirty', but we generally try to keep the project active with healthy modelling practices.

 

Ultimately, the recommendation for DWG geometry is finished end conditions - wall corners should be corners, and not have extraneous or missing linework. It's reductive, but 'do a good job' is sort of the minimum requirement for the DWG file.