ELS911 Documentation / 2D Floor Plan Workflow
Internal Process Documentation

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.

FJD Trion Model v204+
Autodesk Revit 2024+
12 Steps Total
9 Manual · 3 Automated

Full Pipeline

1
2
3
4
5
6
7
8
9
10
11
12
Load Clouds
Manual
Merge Clouds
Manual
Clip Floor
Manual
Draw Assist Slice
Manual
Offset & 1st Denoise
Manual
Auto Draw Contours
Auto
Export DWG
Manual
AutoCAD PL Trace
Manual
Dynamo Import
Auto
Format PDF
Auto
Add Doors & Details
Manual
Export PDF
Manual
Intro

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.

💡
Key Principle The Trion DWG does not need to be perfect — it is a noisy reference, not a final product. The AutoCAD PL trace step (Phase 2) produces the clean geometry that Dynamo and Revit work with.
Prereqs

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 scan

Autodesk Revit

BIM software used for the automated Dynamo phase and final manual detail work.

Revit 2024+ recommended

Dynamo + Python Script

The ELS911 Dynamo Python bot. Must be configured with correct input/output paths.

Dynamo 2.x / CPython 3

AutoCAD

Required for Phase 2. Used to lock the noisy Trion layer and trace clean wall polylines (PL command) before handoff to Revit.

Any recent version
Phase 1

FJD Trion Model — Point Cloud Processing

1
Load Point Clouds Manual
Import the raw scan data into FJD Trion Model
  1. Launch FJD Trion Model on your PC.
  2. Click File → Open and select your project file, or click Import to bring in an external LAS, LAZ, or E57 file.
  3. Wait for the point cloud to render in the 3D viewport. Use scroll wheel to zoom, left-drag to rotate, right-drag to pan.
ℹ️
Supported import formats LAS, LAZ, E57, PLY, PTS, TXT, XYZ, CSV. The software accepts both raw Trion project data and standard point cloud formats.
2
Merge Point Clouds Manual
Combine multiple scan files into a single unified cloud
  1. If the building was scanned in multiple passes or sessions, each scan appears as a separate dataset in the project panel.
  2. Select all scan datasets, then use Registration → Auto-Register (or manually align using common reference points).
  3. Once aligned, click Merge to combine them into a single point cloud.
  4. Apply tilt correction (one-click levelling tool) to ensure the cloud is properly oriented to the horizontal plane.
💡
Check alignment quality Use the color-by-source view to verify scans overlap cleanly. Poor alignment at this stage will cause double-walls in the final floor plan.
3
Clip a Floor Manual
Isolate the target floor by clipping away everything above and below it

For multi-storey buildings, you must isolate each floor individually before slicing. Mixing floors into one slice produces an unusable floor plan.

  1. In the toolbar, select the Clip / Region of Interest tool.
  2. 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).
  3. For Floor 2, shift the Z range up by one storey height (e.g., 3.5 m to 7.0 m).
  4. Apply the clip. Only points within that Z range will remain visible.
⚠️
Process each floor separately Save the DWG for each floor before moving the clip range to the next floor. Repeat Steps 3–8 for every floor you need to produce.
4
Draw Assist Slice — Thin Horizontal Section Manual
Cut a thin horizontal plane through the cloud to reveal wall cross-sections

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.

  1. Go to the Draw module (top navigation bar).
  2. Select Draw Assist or the Profile / Horizontal Section tool.
  3. Set the slice height to approximately 1.0–1.2 m above the floor level (door-handle height — walls are clearly captured here).
  4. 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.
  5. Apply. The 2D view will show a top-down plan of wall outlines as a dense point cluster.
slice ~0.07 m thick at ~1.0–1.2 m height ~1.1 m

Side view: the 0.07 m slice captures wall cross-sections at ~1.1 m height, minimising floor and ceiling noise.

💡
Why 0.07 m? Thicker slices (e.g., 0.2–0.5 m) capture too many off-wall points (furniture, pipes, cables), making denoising much harder. A 7 cm slice is narrow enough to isolate only the wall face.
5
Offset Refinement & First Denoising Manual
Use the offset tool and internal clipping to clean up the wall outline

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:

  1. In the Draw module, select the Offset tool.
  2. Click a wall line or polyline segment and set an offset distance matching your wall thickness.
  3. Use Offset to generate the inner and outer wall faces — this gives a more accurate wall representation than a single line.

Internal Clipping / Denoising:

  1. Use the internal clip box tool to draw a selection around isolated noise clusters (scatter points inside rooms, scanner artefacts).
  2. Delete the selected noise points.
  3. Repeat until the main wall structure is clear. Interior room clutter is acceptable at this stage.
ℹ️
This is the 1st manual cleaning pass You only need to achieve a rough, workable outline here. The AutoCAD PL trace step in Phase 2 will produce the final clean polyline geometry by tracing directly over this noisy output.
6
Automated Contour Drawing Automated
Trion automatically traces wall contours from the cleaned point cloud slice

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.

  1. In the Draw module, click the Auto Extract / automated contour button.
  2. Trion traces the wall outlines from the slice and places vector lines on the canvas.
  3. Review the result — the contours will have a small amount of residual noise. This is expected and acceptable.
  4. Do not spend time manually cleaning these further — Revit's automated second pass handles it.
ℹ️
Good enough is good enough The automated contours don't need to be perfect. Minor noise, small gaps, and imprecise corners will be covered by the AutoCAD PL trace step in Phase 2, which draws clean polylines over this output.
7
Export as DWG Manual
Save the contour-traced floor outline as a DWG file for handoff to Revit
  1. In the Draw module, confirm the automated contours for this floor are present.
  2. Go to File → Export (or the Export button in the Drawing module toolbar).
  3. Select format: DWG (requires Trion Model v204+). DXF is also accepted by the Dynamo script if needed.
  4. Name the file clearly, e.g. building_floor1.dwg or building_floor2.dwg.
  5. Save to the designated input folder that the Dynamo script monitors.
⚠️
Version note DWG export was added in Trion Model v204. Older versions export DXF only. DXF is still compatible with the Dynamo import step.
Phase 2

AutoCAD — Clean PL Trace

📐
Why AutoCAD before Revit? The Trion auto-contours are noisy vector lines — useful as a reference but not clean enough to import directly into Revit. This step produces a single, clean polyline layer that Revit and Dynamo can work with reliably.
8
Lock Noisy Layer & Trace with PL Command Manual
Open the DWG in AutoCAD, lock the noisy contour layer, create a clean layer, and polyline-trace the walls

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:

  1. Open the exported DWG in AutoCAD.
  2. Open the Layer Properties Manager (LA → Enter).
  3. 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.
  4. 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.
  5. Type PL and press Enter to start the Polyline command.
  6. 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.
  7. Close each room/wall loop by typing C and Enter, or snap back to the first point.
  8. Repeat for all walls, rooms, and significant openings on this floor.
  9. When all walls are traced, turn off (or freeze) the noisy locked layer so only your clean WALLS-CLEAN polylines remain visible.
  10. Save the DWG. This clean file is what the Dynamo script will import.
💡
Useful AutoCAD shortcuts for this step
  • LA — Layer Properties Manager
  • PL — Polyline
  • C — Close polyline loop
  • F3 — Toggle object snap on/off
  • Z + E — Zoom extents (see full drawing)
  • LAYOFF — Turn off a layer by clicking an object on it
⚠️
Do not delete the noisy layer Keep it locked and frozen, not deleted. It serves as a reference if you need to re-check your trace against the original scan data.
Phase 3

Dynamo + Revit — Automated Import

🤖
Steps 9–10 are fully automated The ELS911 Dynamo Python script picks up the clean DWG from AutoCAD, imports it into Revit, and formats the sheet for PDF output. No denoising or contour drawing happens here — that was completed in Phases 1 and 2.
9
Dynamo Python Bot — Import DWG into Revit Automated
The script watches for a new DWG, opens Revit and imports the contour geometry

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:

  1. Detects the latest DWG file in the input directory.
  2. Creates a new Revit project or opens the template project.
  3. Imports the DWG as a linked CAD file, scaled and positioned to the project base point.
  4. Explodes the CAD link to extract raw geometry lines into the Revit model.
Python (Dynamo) els911_import.py — import block
# 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]
10
Automated PDF Sheet Formatting Automated
Script creates a Revit sheet, places the floor plan view, and sets up the title block

The final automated step sets up the Revit sheet so the operator receives a pre-formatted, print-ready document:

  1. Creates a new sheet using the ELS911 title block template.
  2. Places the floor plan view at the correct scale and position on the sheet.
  3. Populates title block parameters: project name, floor number, date, revision.
  4. Saves the Revit file to the output directory.
Python (Dynamo) els911_sheet.py — sheet setup block
# 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
Phase 4

Revit — Final Details & PDF Export

11
Add Doors, Openings & Final Details Manual
Operator adds architectural elements that Dynamo cannot infer automatically

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:

  1. Place door families in the correct wall openings. Use the scan view as a reference to confirm placement.
  2. Add window openings if required by the brief.
  3. Add room/area labels and dimensions where needed.
  4. Insert any known structural elements visible in the point cloud (columns, stairs, lifts).
  5. Review the title block — update the revision field if this is not the first issue.
💡
Use the point cloud as a visual reference Keep FJD Trion Model open alongside Revit. The 3D view helps confirm the exact location and swing direction of doors.
12
Export PDF Manual
Produce the final deliverable PDF from the formatted Revit sheet
  1. In Revit, go to File → Export → PDF.
  2. Select the ELS911 sheet(s) to export. For multi-floor jobs, export all floor sheets in one batch.
  3. Set paper size to A1 (or as specified by the deliverable brief).
  4. Set Raster Quality to High for print output, or Medium for digital delivery.
  5. Confirm the output filename and destination folder.
  6. Click Export. Review the PDF before sending.
ℹ️
File naming convention Use the format: ELS911_[ProjectCode]_[FloorNumber]_[Date]_Rev[X].pdf
Example: ELS911_BLDG042_FL1_20260307_Rev1.pdf
Help

Troubleshooting

Problem Likely Cause Solution
Cannot export DWG (option greyed out) Trion Model version older than v204 Update to v204+. Use DXF as a temporary workaround — the Dynamo script accepts both.
Double walls / ghost walls in the slice Scan registration error — two scans not aligned correctly Re-register the scans. Check overlap quality before merging.
Floor 2 walls appearing in Floor 1 slice Clip range Z-max is too high Tighten the Z clip range to stay within the single storey height.
Very noisy slice — walls barely visible Slice height hitting a surface (floor, furniture) or slice too thick Adjust slice Z height to 1.0–1.2 m. Reduce thickness to 0.07 m.
Dynamo script fails to find DWG DWG saved to wrong folder, or file name mismatch Verify the input folder path in the Dynamo script's IN[1] parameter matches the export location.
PDF is blurry or walls are too thin Low raster quality setting or incorrect line weight Export at High raster quality. Check Revit line weight settings for the detail lines category.