2D Floor Plan Workflow
End-to-end guide for capturing, processing, and producing AutoCAD-ready 2D floor plans from LiDAR point cloud data using FJD Trion Model, Dynamo scripting, and Autodesk Revit.
Full Pipeline
Overview
This workflow converts raw LiDAR scan data into polished, print-ready 2D floor plan PDFs. It is split into four phases with a clear separation between manual operator steps and automated Dynamo scripting.
Phase 1 (Mixed) — The operator loads, merges, and clips the point cloud in FJD Trion Model. A thin horizontal slice is taken, then the operator performs the first manual denoising pass using the Draw Assist and internal clipping tools. Once clean enough, Trion's automated contour drawing runs — tracing the wall outlines directly from the point cloud. The result (with minor residual noise) is exported as a DWG file.
Phase 2 (Manual — AutoCAD) — The exported DWG is opened in AutoCAD. The noisy Trion contour layer is locked so it cannot be edited. A new clean layer is created on top, and the operator uses the PL (polyline) command to manually click along the wall edges, tracing clean polylines over the noise. This produces a precise, clean DWG ready for Revit.
Phase 3 (Automated — Dynamo) — The Dynamo Python script picks up the clean DWG, imports it into Revit, and formats the sheet for PDF output. Revit does not perform automated noise filtering — the AutoCAD PL trace step is what produces the clean geometry.
Phase 4 (Manual — Revit) — The operator adds fine details (doors, openings, annotations) and exports the final PDF.
Prerequisites
FJD Trion Model
Point cloud processing software. Required for loading, merging, slicing, and DWG export.
v204 or later (DWG export requires v204+)FJD Trion Scanner
Trion P1, S1, or S2 scanner. Processed scan data (.fjd project or exported LAS/LAZ).
Firmware updated before scanAutodesk Revit
BIM software used for the automated Dynamo phase and final manual detail work.
Revit 2024+ recommendedDynamo + Python Script
The ELS911 Dynamo Python bot. Must be configured with correct input/output paths.
Dynamo 2.x / CPython 3AutoCAD
Required for Phase 2. Used to lock the noisy Trion layer and trace clean wall polylines (PL command) before handoff to Revit.
Any recent versionFJD Trion Model — Point Cloud Processing
- Launch FJD Trion Model on your PC.
- Click File → Open and select your project file, or click Import to bring in an external LAS, LAZ, or E57 file.
- Wait for the point cloud to render in the 3D viewport. Use scroll wheel to zoom, left-drag to rotate, right-drag to pan.
- If the building was scanned in multiple passes or sessions, each scan appears as a separate dataset in the project panel.
- Select all scan datasets, then use Registration → Auto-Register (or manually align using common reference points).
- Once aligned, click Merge to combine them into a single point cloud.
- Apply tilt correction (one-click levelling tool) to ensure the cloud is properly oriented to the horizontal plane.
For multi-storey buildings, you must isolate each floor individually before slicing. Mixing floors into one slice produces an unusable floor plan.
- In the toolbar, select the Clip / Region of Interest tool.
- Set a vertical (Z-axis) clip range that brackets the target floor only. For example, for Floor 1 set Z min to 0.0 m and Z max to 3.5 m (adjust to your building's ceiling height).
- For Floor 2, shift the Z range up by one storey height (e.g., 3.5 m to 7.0 m).
- Apply the clip. Only points within that Z range will remain visible.
The Draw Assist tool takes a horizontal "slab" cut through the 3D point cloud, converting it into a flat 2D view perfect for tracing wall outlines.
- Go to the Draw module (top navigation bar).
- Select Draw Assist or the Profile / Horizontal Section tool.
- Set the slice height to approximately 1.0–1.2 m above the floor level (door-handle height — walls are clearly captured here).
- Set the slice thickness to approximately ~0.07 m (7 cm). A thin slice ensures only wall cross-section points are included, reducing noise from floor reflections and ceiling scatter.
- Apply. The 2D view will show a top-down plan of wall outlines as a dense point cluster.
Side view: the 0.07 m slice captures wall cross-sections at ~1.1 m height, minimising floor and ceiling noise.
At this stage the operator manually cleans the 2D slice. This does not need to be perfect — the AutoCAD PL trace step in Phase 2 will produce a clean, precise polyline layer on top of this output. The goal is a recognisable wall outline with major noise removed.
Using the Offset Tool:
- In the Draw module, select the Offset tool.
- Click a wall line or polyline segment and set an offset distance matching your wall thickness.
- Use Offset to generate the inner and outer wall faces — this gives a more accurate wall representation than a single line.
Internal Clipping / Denoising:
- Use the internal clip box tool to draw a selection around isolated noise clusters (scatter points inside rooms, scanner artefacts).
- Delete the selected noise points.
- Repeat until the main wall structure is clear. Interior room clutter is acceptable at this stage.
After the first manual denoising pass, trigger Trion's built-in automated contour extraction. The software analyses the remaining point density in the slice and draws vector lines along wall faces automatically.
- In the Draw module, click the Auto Extract / automated contour button.
- Trion traces the wall outlines from the slice and places vector lines on the canvas.
- Review the result — the contours will have a small amount of residual noise. This is expected and acceptable.
- Do not spend time manually cleaning these further — Revit's automated second pass handles it.
- In the Draw module, confirm the automated contours for this floor are present.
- Go to File → Export (or the Export button in the Drawing module toolbar).
- Select format: DWG (requires Trion Model v204+). DXF is also accepted by the Dynamo script if needed.
- Name the file clearly, e.g. building_floor1.dwg or building_floor2.dwg.
- Save to the designated input folder that the Dynamo script monitors.
AutoCAD — Clean PL Trace
The DWG exported from Trion contains auto-drawn contour lines with residual noise. Rather than trying to delete noise, you work on top of it — locking the noisy layer so it cannot be accidentally edited, then tracing clean polylines over it on a new layer.
Step-by-step:
- Open the exported DWG in AutoCAD.
- Open the Layer Properties Manager (LA → Enter).
- Find the layer containing the Trion contours. Click the lock icon to lock it. The layer will show a padlock — its objects are now visible but cannot be selected or modified.
- Create a new layer (e.g.
WALLS-CLEAN). Set it as the current layer. Give it a distinct colour so it is easy to distinguish from the locked noisy layer. - Type
PLand press Enter to start the Polyline command. - Click along the wall edges, using the noisy contours as a visual guide. Click each corner point precisely. The locked layer points cannot be snapped to, so use object snap (F3) with Nearest or Endpoint modes to place points accurately.
- Close each room/wall loop by typing
Cand Enter, or snap back to the first point. - Repeat for all walls, rooms, and significant openings on this floor.
- When all walls are traced, turn off (or freeze) the noisy locked
layer so only your clean
WALLS-CLEANpolylines remain visible. - Save the DWG. This clean file is what the Dynamo script will import.
LA— Layer Properties ManagerPL— PolylineC— Close polyline loopF3— Toggle object snap on/offZ+E— Zoom extents (see full drawing)LAYOFF— Turn off a layer by clicking an object on it
Dynamo + Revit — Automated Import
Place the exported DWG in the configured input folder, then run the Dynamo script from within Revit (Manage → Dynamo Player or open the .dyn file directly).
The script performs the following import steps automatically:
- Detects the latest DWG file in the input directory.
- Creates a new Revit project or opens the template project.
- Imports the DWG as a linked CAD file, scaled and positioned to the project base point.
- Explodes the CAD link to extract raw geometry lines into the Revit model.
# ELS911 Dynamo Script — Phase 3 Import
import clr
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.DB import *
import os, glob
doc = IN[0] # Revit Document (from Dynamo)
folder = IN[1] # Input folder path
# Find latest DWG in folder
dwg_files = glob.glob(os.path.join(folder, "*.dwg"))
latest_dwg = max(dwg_files, key=os.path.getmtime)
# Import options
opts = DWGImportOptions()
opts.ColorMode = ImportColorMode.BlackAndWhite
opts.Placement = ImportPlacement.Origin
opts.ThisViewOnly = False
# Import CAD file into active view
with Transaction(doc, "ELS911: Import DWG") as t:
t.Start()
result, link_id = doc.Import(
latest_dwg, opts,
doc.ActiveView
)
t.Commit()
OUT = [latest_dwg, link_id]
The final automated step sets up the Revit sheet so the operator receives a pre-formatted, print-ready document:
- Creates a new sheet using the ELS911 title block template.
- Places the floor plan view at the correct scale and position on the sheet.
- Populates title block parameters: project name, floor number, date, revision.
- Saves the Revit file to the output directory.
# ELS911 Dynamo Script — Sheet Setup
title_block_id = IN[0] # FamilySymbol ElementId
floor_num = IN[1] # e.g. "Floor 1"
view_id = IN[2] # The plan view ElementId
with Transaction(doc, "ELS911: Create Sheet") as t:
t.Start()
# Create sheet
sheet = ViewSheet.Create(doc, title_block_id)
sheet.Name = f"Floor Plan – {floor_num}"
sheet.SheetNumber = floor_num.replace(" ", "")
# Place floor plan view on sheet
uv = UV(0.5, 0.5) # Sheet centre coordinates
Viewport.Create(doc, sheet.Id, view_id, XYZ(uv.U, uv.V, 0))
# Set title block parameters
sheet.LookupParameter("Drawn By").Set("ELS911")
sheet.LookupParameter("Checked By").Set("ELS911")
t.Commit()
OUT = sheet.Id
Revit — Final Details & PDF Export
Open the Revit file produced by the Dynamo script. The sheet is pre-formatted and the wall outlines are clean — your job is to add the fine detail:
- Place door families in the correct wall openings. Use the scan view as a reference to confirm placement.
- Add window openings if required by the brief.
- Add room/area labels and dimensions where needed.
- Insert any known structural elements visible in the point cloud (columns, stairs, lifts).
- Review the title block — update the revision field if this is not the first issue.
- In Revit, go to File → Export → PDF.
- Select the ELS911 sheet(s) to export. For multi-floor jobs, export all floor sheets in one batch.
- Set paper size to A1 (or as specified by the deliverable brief).
- Set Raster Quality to High for print output, or Medium for digital delivery.
- Confirm the output filename and destination folder.
- Click Export. Review the PDF before sending.
Example: ELS911_BLDG042_FL1_20260307_Rev1.pdf