-
-
Notifications
You must be signed in to change notification settings - Fork 1
Menu Reference
This page explains the main task panels used early in the CorridorRoad workflow. The goal is to clarify what each option means, when to change it, and how it affects downstream commands.
Use Project Setup immediately after New Project, before importing alignment or terrain data.
This panel defines project-wide scale, coordinate conversion, and design-standard metadata.
Important behavior:
-
Project Setupdoes not move or transform existing geometry automatically. - It changes how CorridorRoad interprets
LocalandWorldcoordinates. - For that reason, it is best to finalize these values before importing terrain or alignment data.
| Option | Meaning | How to use it |
|---|---|---|
Target Project |
Selects which CorridorRoadProject object will be updated. |
Normally leave this on the active project created by New Project. |
Length Scale |
Internal units per meter. 1.0 means meter-native. Larger values such as 1000.0 mean the model uses millimeter-like internal units. |
Set this once at the start of the project. Other tools such as DEM import and PVI scaling follow this value. Changing it after data already exists can create inconsistencies. |
Design Standard |
Stores the selected road design standard on the project. | Use the standard that should control alignment/design checks. Even if the current stage is mostly geometric, keep this consistent for later validation work. |
CRS / EPSG |
Coordinate system identifier, for example EPSG:5186. The panel now exposes this through an editable preset-style combo box. |
Use the built-in CRS/EPSG presets for common coordinate systems, or type a custom EPSG code directly when the project uses a different CRS. |
Coordinate Workflow |
Recommended coordinate-input policy for downstream task panels. |
World-first is recommended when CRS / EPSG is set. Local-first is recommended when the project stays in local engineering coordinates. Custom keeps the project metadata but stops pushing one policy as the main recommendation. |
Auto-apply recommended modes in task panels |
Controls whether task panels should use the workflow recommendation as their initial coordinate mode. | Keep this enabled for a consistent project-wide policy. Turn it off only when each task panel should decide its own coordinate mode manually. |
Horizontal Datum |
Horizontal datum text metadata. | Optional. Fill it when the survey or project requires explicit datum documentation. |
Vertical Datum |
Vertical datum text metadata. | Optional. Fill it when elevations must be traceable to a known datum. |
Project Origin E |
World easting origin of the project anchor point. | Use this when converting between local model coordinates and world coordinates. |
Project Origin N |
World northing origin of the project anchor point. | Same role as Project Origin E, but for northing. |
Project Origin Z |
World elevation origin of the project anchor point. | Use when local Z must map to real-world elevation. |
Local Origin X |
Local model X corresponding to the chosen world origin. | Usually 0 for a new project, unless you intentionally anchor a shifted local coordinate system. |
Local Origin Y |
Local model Y corresponding to the chosen world origin. | Same role as Local Origin X. |
Local Origin Z |
Local model Z corresponding to the chosen world origin. | Same role as Local Origin X, but for elevation. |
North Rotation |
Rotation from local model axes to world north, in degrees, positive counter-clockwise around Z. | Leave 0 if local X/Y already aligns with the world frame. Use a nonzero value only when the project coordinate frame is intentionally rotated. |
Lock coordinate setup |
Prevents accidental edits to the stored coordinate setup. | After coordinate values are verified, turn this on to protect the project. To edit locked values later, uncheck the lock and apply again. |
Setup Status |
Project workflow status such as Uninitialized, Initialized, or Validated. |
Use this as a human-readable project state marker. It is not a full validator by itself. |
Refresh Context |
Reloads the currently selected project values into the panel. | Use this if you changed properties elsewhere and want the panel to reflect the current state. |
Apply Setup |
Writes the current values back to the project object and recomputes the document. | Use after confirming scale and coordinate values. |
- Set
Length Scalefirst. - Enter
CRS / EPSGand origin values if the workflow uses real-world coordinates. - Confirm
Coordinate Workflow. - In most survey/UTM jobs, use
World-first. - In simple local test files, use
Local-first. - Leave local origins at zero unless you deliberately want an offset local model.
- Apply once and confirm imports behave correctly.
- Lock the setup after the coordinate policy is confirmed.
- If point cloud CSV is in UTM,
Project Setupshould usually be completed beforeImport PointCloud DEM. - If alignment and terrain appear shifted, check
Project Origin,Local Origin, andNorth Rotationbefore changing other tools. - If
Auto-apply recommended modes in task panelsis enabled,Import PointCloud DEM,Alignment,Edit Profiles,Generate Sections,Design Terrain, andCut/Fill Calcwill start from the workflow recommendation. -
Setup Statusis useful for team workflow, but it does not prevent generation commands by itself.
[Screenshot Needed] Project Setup panel with coordinate fields filled. Suggested file:
wiki-menu-reference-project-setup.png
Use Edit Alignment to create or update the horizontal alignment from table rows, CSV input, sketch geometry, or built-in starter presets.
Important behavior:
- The alignment table always stores the values currently shown in the panel coordinate mode.
- Built-in presets are defined as local pattern rows.
- If
Coord Input = World (E/N),Load Presetconverts those local preset rows through the activeProject Setup. -
Preset Placementdefaults toCenter on terrain, so starter geometry tries to land inside the current terrain extent instead of staying near(0,0). - CSV import remains the main path for real survey or design data; presets are meant for quick starts and test geometry.
| Option | Meaning | How to use it |
|---|---|---|
Alignment |
Selects which HorizontalAlignment object will be edited. |
Choose an existing alignment or let Apply Alignment create one when none exists and creation is enabled. |
Sketch |
Selects a sketch for sketch-based row generation. | Use when you already drafted a path in a FreeCAD sketch and want starter IP rows from it. |
Load from Sketch |
Reads the selected sketch into the alignment table. | Good for fast concept geometry. Review radii and transitions after loading. |
CSV / Browse CSV / Load from CSV
|
Reads alignment rows from a CSV file. | Use this for real project data or repeatable exchange files. |
Preset |
Built-in starter geometry such as Simple Tangent, Single Curve, S-C-S Curve, Reverse Curve, or Sample Local Alignment. |
Use when you want to start from a known local-pattern geometry instead of a blank table. |
Load Preset |
Loads the selected preset into the alignment table. | In Local (X/Y) mode the preset rows are inserted directly. In World (E/N) mode they are converted using the active Project Setup. |
Preset Placement |
Controls where preset rows are placed before they are written into the table. |
Center on terrain is the default and is the best choice for sample/test workflows. Pattern only keeps the original local pattern location. Center on project origin is a safe fallback when no terrain exists yet. |
Coord Input |
Declares whether the table currently represents local or world coordinates. | Keep this consistent with the source you are loading or the way you want presets to be converted. |
Save CSV |
Writes the current table rows back to a CSV file. | Useful after starting from a preset and refining it into reusable project data. |
- Presets are best thought of as pattern starters, not authoritative survey coordinates.
- If the project uses
World-first, preset loading is still safe because the conversion usesProject Origin,Local Origin, andNorth Rotation. -
Center on terrainwill fall back toCenter on project originwhen no terrain can be resolved. - If a preset still lands outside the expected area, check
Coord Input,Preset Placement, andProject Setuprotation/origin values first.
[Screenshot Needed] Alignment editor showing the Preset combo, Load Preset, and Coord Input. Suggested file:
wiki-menu-reference-alignment-preset.png
Use Import PointCloud DEM to turn point cloud CSV data into a DEM-style mesh terrain for EG sampling, daylight reference, and terrain-based analysis.
Important behavior:
- If a
PointCloudDEMobject already exists, this panel updates that object instead of creating a second terrain object. - The DEM is built by regular XY grid sampling, not TIN.
- DEM quality depends strongly on
Cell Size, input coordinate mode, and source point density.
| Option | Meaning | How to use it |
|---|---|---|
CSV File |
Path to the point cloud CSV file. | Select a CSV with easting,northing,elevation or supported aliases. |
Input Coords |
Declares whether the CSV values are World coordinates or Local project coordinates. |
Use World for UTM or survey ENZ input. Use Local only when the CSV is already in project XY/Z coordinates. |
Output Mesh Coords |
Chooses whether the generated terrain mesh is stored in Local or World coordinates. |
Local is the safer default for internal modeling. Use World only when a downstream workflow explicitly expects world-coordinate terrain geometry. |
Delimiter |
CSV delimiter mode. |
Auto is usually fine. Force a delimiter only when auto-detection misreads the file. |
CSV has header row |
Tells the importer whether the first row is a header. | Keep enabled for normal CSV files. Disable only for raw data files with no header row. |
Coordinate Setup |
Read-only hint showing the active coordinate context. | Use it as a sanity check before import, especially when using World coordinates. |
Refresh Context |
Reloads project and DEM object state into the panel. | Useful after changing project setup or DEM properties elsewhere. |
Practical default note:
- When
Project SetupisWorld-first, a new DEM import panel now defaultsInput CoordstoWorld. - When
Project SetupisLocal-first, it defaults toLocal.
| Option | Meaning | How to use it |
|---|---|---|
Cell Size (scaled) |
DEM grid resolution in internal project units. Smaller cells keep more detail; larger cells smooth more. | Start near the source point spacing. Increase it if EG/profile values contain many blanks or zeros due to sparse point cloud coverage. |
Aggregation |
How multiple points inside the same DEM cell are reduced to one elevation. |
Mean is general-purpose. Median is better when outliers exist. Min and Max are specialized and can bias the terrain downward or upward. |
Max Cells |
Safety limit for estimated grid size. | If import fails with too many estimated cells, increase Cell Size rather than simply raising this limit. |
Auto update on parameter changes |
If enabled, changing DEM properties can trigger recompute behavior. If disabled, the object is marked as needing recompute. | Keep enabled during normal interactive work. Turn it off only when you want to stage several changes before rebuilding. |
| Option | Meaning | How to use it |
|---|---|---|
Import CSV and Build DEM |
Runs the import, creates or updates the PointCloudDEM object, and builds the mesh. |
Main execution button. |
Status |
Current importer state. | Read it for OK, ERROR, or CANCELED messages. |
Progress |
Import/build progress bar. | Useful for large CSV files. |
Cancel |
Requests cancellation during a long import. | Use if the input file or settings are clearly wrong. |
- Set
Input Coordsto match the CSV. - Keep
Output Mesh Coordsconsistent with the rest of the project, usuallyLocal. - Start with a practical
Cell Size, not the smallest possible value. - Build the DEM and inspect both the mesh coverage and the completion message.
- If EG/profile data later contains many blanks or zeros, rebuild with a slightly larger
Cell Size.
- A very small
Cell Sizecan preserve detail but also expose holes in sparse point clouds. -
Mediancan be more stable thanMeanwhen the CSV contains bad high/low spikes. -
MinandMaxare usually for envelope-like cases, not for neutral terrain reconstruction. - The completion dialog reports points used, skipped rows, estimated grid size, and no-data counts. Use that information when diagnosing poor EG coverage.
[Screenshot Needed] PointCloud DEM panel with source and DEM options visible. Suggested file:
wiki-menu-reference-pointcloud-dem.png
Use Edit Profiles to manage station-based EG/FG profile data.
This panel is where station lists, sampled EG values, manual FG values, and FG-from-VerticalAlignment behavior come together.
Important behavior:
- The table stores
Station,EG,FG, and computedDelta. -
Applycan sample EG from the selected terrain before saving. - If
FG from VerticalAlignmentis enabled and a vertical alignment exists, theFGcolumn becomes read-only and is regenerated from the vertical alignment. - If manual FG editing is used, the FG display wire is hidden to avoid showing stale geometry.
| Column | Meaning | How to use it |
|---|---|---|
Station |
Station value along the alignment. | Required. At least 2 valid rows are needed to save a profile bundle. |
EG |
Existing ground elevation. | Can be filled from terrain sampling or edited manually. Blank EG values may later be saved as 0 if unresolved. |
FG |
Finished grade elevation. | Editable only in manual FG mode. Locked and auto-filled when FG from VerticalAlignment is enabled. |
Delta (FG-EG) |
Difference between FG and EG. | Read-only diagnostic field. |
| Option | Meaning | How to use it |
|---|---|---|
Add Row |
Adds one blank table row. | Use for manual editing. |
Remove Row |
Removes the selected row. | If no row is selected, the last row is removed. |
Sort by Station |
Sorts valid rows by station. | Use before saving if rows were manually edited out of order. |
Fill Stations from Stationing |
Replaces the table with Stationing.StationValues. |
Use after Generate Stations. This is the fastest way to build the profile table. |
Fill FG from VerticalAlignment |
Fills FG values from the current VerticalAlignment. |
Useful after editing PVIs. It only matters when a vertical alignment exists. |
| Option | Meaning | How to use it |
|---|---|---|
Create ProfileBundle if missing |
Allows the panel to create a new ProfileBundle automatically. |
Keep enabled in normal workflows. Disable it only if you want strict control and expect the object to exist already. |
FG from VerticalAlignment (lock FG column) |
Uses the VerticalAlignment object as the FG source of truth and locks the FG table column. |
Recommended when FG should follow PVI design. Turn it off only when you intentionally want manual FG editing. |
Show EG wire (ProfileBundle) |
Controls EG profile wire visibility. | Turn off if the EG wire clutters the view. |
Show FG wire (Finished Grade (FG)) |
Controls FG display wire visibility. | When using FG from VA, keep this on so the 3D/profile display matches the computed FG. |
EG Z Offset |
Vertical display offset for the EG wire. | Use only for visual separation in profile view. It does not change stored EG data. |
FG Z Offset |
Vertical display offset for the FG wire. | Use only for display clarity. |
EG Terrain Source |
Terrain object used to sample EG values. | Choose the PointCloudDEM terrain or another valid mesh/shape source. |
EG Terrain Coords |
Declares how the selected terrain should be sampled: Local or World. |
Match this to the terrain object. For PointCloudDEM, this often auto-syncs from OutputCoords. |
Use Selected Terrain |
Takes the currently selected mesh/shape from the 3D view or tree and sets it as the EG terrain source. | Fastest way to avoid choosing the wrong terrain object in the combo. |
Apply |
Samples EG if possible, then saves stations/EG/FG/display settings to the ProfileBundle and related display objects. |
Main save button. |
- Run
Generate Stationsfirst. - Open
Edit Profiles. - Click
Fill Stations from Stationing. - Choose the DEM terrain as
EG Terrain Source. - Keep
FG from VerticalAlignmentenabled if FG should be driven byEdit PVI. - Click
Apply.
- If EG sampling fails or coverage is poor, first verify terrain extent and coordinate mode.
- If EG remains blank in the table, unresolved blanks can become
0on save. Fix terrain sampling before treating those values as valid. - If you manually edit FG while FG-from-VA is off, the FG wire is hidden on purpose so the display does not misrepresent the table data.
-
EG Terrain Coordsshould usually match the terrain's actual storage mode, not just the coordinate mode of the input CSV.
[Screenshot Needed] Edit Profiles panel with terrain source, coord mode, and profile table. Suggested file:
wiki-menu-reference-edit-profiles.png
Use Edit PVI to define vertical alignment geometry and generate FG values from it.
This tool creates or updates the VerticalAlignment object and then writes computed FG values into the profile bundle.
Important behavior:
-
Vertical Alignment (PVI)is now shown in 3D view by default. - The station list used for FG generation comes from
ProfileBundle.Stationsif available, otherwise fromStationing.StationValues. -
Generate FG Now (apply)updates both theVerticalAlignmentand theProfileBundle.
| Column | Meaning | How to use it |
|---|---|---|
PVI Station |
Station of the PVI point. | Required. Rows are sorted by station before use. |
PVI Elev |
Elevation at the PVI point. | Required. |
Curve Length |
Vertical curve length L at that PVI. |
Use 0 for no vertical curve at that PVI. Positive values create symmetric vertical curves. |
| Option | Meaning | How to use it |
|---|---|---|
Clamp overlapping vertical curves (auto adjust L) |
Automatically shortens curve lengths when adjacent curves would overlap or violate tangent spacing. | Recommended for interactive editing. Turn it off only when you want the tool to reject invalid geometry instead of adjusting it. |
Min Tangent |
Minimum required tangent length between adjacent vertical curves. | Increase this when you want to enforce a minimum straight grade segment between curves. |
Create ProfileBundle if missing |
Allows FG generation to create a profile bundle if one does not exist yet. | Keep enabled unless you want generation to fail when prerequisites are incomplete. |
Keep existing EG values (do not overwrite) |
Preserves current EG values in the profile bundle during FG generation. | Recommended in normal workflows because Edit PVI is for FG generation, not terrain resampling. |
Preview FG (console) |
Saves the current PVI table, resolves a station list, and prints sample FG elevations to the FreeCAD console. | Use for quick validation before writing data into the profile bundle. |
Generate FG Now (apply) |
Saves the vertical alignment, computes FG on the resolved stations, updates the profile bundle, and shows a completion dialog. | Main execution button. |
- Create or confirm stationing first.
- Enter PVI rows in station order or click
Sort by Station. - Use
Curve Length = 0where you want simple grade breaks. - Keep
Clamp overlapping vertical curvesenabled unless you are intentionally checking invalid geometry. - Click
Generate FG Now (apply). - Return to
Edit ProfileswithFG from VerticalAlignmentenabled if you want the profile table locked to the generated FG.
- If no profile bundle exists, FG generation can create one and seed it from the resolved station list.
- If no station list exists in either
ProfileBundleorStationing, FG generation cannot proceed. -
Keep existing EG valuesdoes not resample terrain. It only protects existing EG data while FG is regenerated. - The completion dialog confirms station count and helps show that FG generation has actually finished.
[Screenshot Needed] Edit PVI panel with PVI table and Generate FG options. Suggested file:
wiki-menu-reference-edit-pvi.png
Use Edit Structures after Generate Stations.
This panel creates or updates the StructureSet object that stores structure zones, structure station ranges, and 3D/reference geometry.
Important behavior:
-
StartStation,EndStation, andCenterStationare station-combo values populated fromStationing. -
Type,Side, andBehaviorModeare controlled lists to keep structure behavior predictable. -
Applywrites theStructureSet, updates 3D solids, and links the result into01_Inputs/Structures. -
Applyalso reports external-shape fallback diagnostics and frame diagnostics when placement had to usealignmentinstead ofcenterline3d. - The upper table now starts in a compact
Basicview and exposes advanced fields mainly throughSelected Structure Details.
| Option | Meaning | How to use it |
|---|---|---|
Target StructureSet |
Chooses whether to edit an existing StructureSet or create a new one. |
Use the existing set in a single-alignment workflow. Create a new one only when you intentionally want a separate structure dataset. |
CSV File |
Optional path to a structure CSV file. | Use it when bulk-loading structure records instead of typing rows manually. |
Browse CSV |
Opens a file chooser for structure CSV. | Recommended for standard sample/test workflows. |
Load CSV |
Reads the CSV and fills the structure table. | Review the table before Apply. |
Browse Shape |
Opens a file chooser for the selected row's external shape source. | Supports .step, .brep, and .FCStd. For FCStd, append #ObjectName in ShapeSourcePath. |
Pick FCStd Object |
Opens an object picker for the selected .FCStd source. |
After selecting the .FCStd file, use this to choose a shape-bearing object and automatically fill ShapeSourcePath as path.FCStd#ObjectName. |
Browse Profile CSV |
Opens a file chooser for station-profile control-point CSV data. | Use after loading or defining the base structure rows. |
Load Profile CSV |
Reads the station-profile CSV and stores control points for later apply. | Load the base structure CSV first, then the profile CSV. |
Columns: Template / External Shape / Advanced |
Reveals grouped upper-table columns on demand. | Keep them off for overview work; turn them on temporarily for focused editing. |
Add Common Structure |
Inserts a starter row for the selected structure type. | Useful for quickly adding one culvert, crossing, wall, abutment, bridge zone, or external-shape placeholder. |
Clone Selected |
Duplicates the selected structure row and shifts it forward in station. | Also duplicates station-profile points linked to that structure ID. |
Preset + Load Preset
|
Loads a built-in structure set preset. | Good for testing drainage, wall, mixed, or variable-size workflows without starting from a blank table. |
Profile Preset + Load Profile Preset
|
Generates starter station-profile rows for the currently selected structure row. | Use this when one structure needs quick variable-size control points without preparing a separate profile CSV first. |
Apply |
Saves the table into the active StructureSet, validates it, recomputes the document, and shows a status message. |
Main execution button. |
| Column | Meaning | How to use it |
|---|---|---|
Id |
Structure identifier. | Use a stable readable ID like CULV-01 or RW-02. |
Type |
Structure classification. | Allowed values are crossing, culvert, retaining_wall, bridge_zone, abutment_zone, other. |
StartStation |
Structure influence start station. | Select from the generated station list when possible. |
EndStation |
Structure influence end station. | Must be greater than or equal to StartStation. |
CenterStation |
Main representative station for labeling and midpoint behavior. | Usually set to the center of the structure zone. |
Side |
Which side of the alignment the structure belongs to. | Use left, right, center, or both. |
Offset |
Lateral offset from the centerline. | Positive/negative placement depends on the resolved local section frame. Use 0 for center crossings. |
Width |
Structure width or influence width. | Used for both simple 3D display and section overlay envelope. |
Height |
Structure height or influence height. | Used for display and overlay envelope. |
BottomElevation |
Explicit bottom elevation for display/overlay. | Use this when the structure invert or footing elevation is known. |
Cover |
Cover depth used when bottom elevation is not specified. | Useful for culverts or buried crossings. |
RotationDeg |
Rotation about the local vertical axis. | Leave 0 unless the structure should be rotated relative to alignment normal/tangent. |
BehaviorMode |
Controls how the structure participates in section generation. |
tag_only adds metadata only, section_overlay adds section-aware overlay behavior, assembly_override also enables section override logic. |
GeometryMode |
Controls how the structure is displayed in 3D and in Structure Sections overlays. |
box keeps the simple rectangular fallback. template enables parametric structure geometry. |
TemplateName |
Selects the template when GeometryMode=template. |
Current values are box_culvert, utility_crossing, retaining_wall, and abutment_block. |
ShapeSourcePath |
Local source path for GeometryMode=external_shape. |
First-pass supported formats are .step / .stp, .brep / .brp, and .FCStd#ObjectName. |
ScaleFactor |
Uniform scale applied to external geometry before placement. | Keep 1.0 unless the source model units require adjustment. |
PlacementMode |
Chooses whether the external model is centered or start-anchored at the selected station. | Use center_on_station for symmetric models and start_on_station for start-based models. |
UseSourceBaseAsBottom |
Controls whether the source model bottom (ZMin) is aligned to the resolved structure bottom. |
Keep true for most imported solids. |
WallThickness |
Template wall thickness. | Used by both box_culvert and retaining_wall. |
FootingWidth |
Retaining-wall footing width. | Mainly used by the retaining_wall template. |
FootingThickness |
Retaining-wall footing thickness. | Mainly used by the retaining_wall template. |
CapHeight |
Optional top cap height. | Used by both templates when a raised top cap is needed. |
CellCount |
Number of culvert cells. | Used by the box_culvert template. Minimum practical value is 1. |
CorridorMode |
Controls how the structure should be consumed by Corridor. |
none ignores corridor-level changes, split_only only splits corridor spans, skip_zone omits the corridor body across the active structure span, and notch uses a notch-aware corridor profile. In the current implementation, notch is mainly intended for culvert and crossing. |
CorridorMargin |
Expands the corridor skip envelope beyond start/end station. | Use a small positive margin only when the skipped corridor zone should be slightly wider than the structure station range. |
Notes |
Free-form notes. | Use for documentation and later review. |
- Generate stations first.
- Load
tests/samples/structure_utm_realistic_hilly.csvor enter rows manually. - Use
tag_onlyfor reference structures andsection_overlay/assembly_overrideonly where section behavior should change. - Choose
GeometryMode=templatewhen you want parametric structure display instead of the simple rectangular fallback. - Apply and verify that the
StructureSetappears under01_Inputs/Structures. - If you use
GeometryMode=external_shape, replace placeholder sample paths with real local.step,.brep, or.FCStd#ObjectNamesources beforeApply. - If
Applyreportsframe source=alignment, run3D Centerlineagain and re-apply the structure set. - For
FCStd, the easiest path isBrowse Shape->Pick FCStd Object. -
GeometryMode=external_shapeis currently for realistic structure display/reference placement; earthwork still follows type-based rules. - Use
Selected Structure Detailsfor most advanced edits instead of turning on every table column. - The validation summary now reports row-level warnings and errors before apply.
- A
retaining_wallshould usually useleftorright, notcenter. - A
culvertorcrossingusually makes more sense withcenterorboth. - If
BottomElevationis empty, the display system falls back to centerline Z andCover. - The 3D solids created here are reference geometry, not final corridor boolean geometry.
-
CorridorModeis now the main way to tellCorridorwhether a structure should only stabilize segmentation or actually omit a corridor span. -
GeometryMode=templatecurrently improves 3D display andStructure Sectionsoverlay quality first; it does not yet imply full corridor boolean consumption. -
GeometryMode=external_shapecurrently supports first-pass placement of localSTEP/BREPfiles andFCStd#ObjectNamelinks, and falls back to safeboxgeometry if the source cannot be loaded. -
ShapeSourcePathcell color is part of the workflow: green means the source file exists, red means the path or FCStd object reference still needs attention. - Even when
external_shapeis displayed correctly, current earthwork still uses the structureTypeand simple dimensional fields rather than the true imported solid. - The selected-structure summary now reports the interpreted earthwork behavior and the current validation state.
- Upper-table context changes are now driven by explicit row press/click; the workflow no longer depends on hover.
The runtime now supports variable-size structures driven by station control points, and Edit Structures now exposes this through a second linked table.
Current status:
- The upper table edits base structure header rows.
- The lower table shows station-profile control points for the currently selected structure row.
-
Load Profile CSVpopulates the same backing data used by the lower table. - The runtime already consumes station-profile values for:
- 3D structure display
-
Structure Sectionsoverlays - section overrides / earthwork
- corridor
notchhandling
- The lower table now also supports
Sort by Station,Duplicate Profile Row,Add Midpoint, andDelete All for Selected. - A
Profile Presetrow above the lower table can generate starter control points directly from the currently selected structure span and dimensions.
Current practical workflow:
- Use
tests/samples/structure_utm_realistic_hilly_station_profile_headers.csvas the base structure-header reference. - Use
tests/samples/structure_utm_realistic_hilly_station_profile_points.csvas the companion station-profile reference. - Or use
tests/samples/structure_utm_realistic_hilly_mixed.csvandtests/samples/structure_utm_realistic_hilly_mixed_profile_points.csvfor one combined multi-structure test set. - Select a structure in the upper table to inspect or edit only that structure's profile rows in the lower table.
| Template | Current behavior |
|---|---|
box_culvert |
Builds an outer culvert shell with internal cell voids in 3D display and shows cell-aware section overlays in Structure Sections. |
retaining_wall |
Builds footing + stem + optional cap in 3D display and shows matching retaining-wall section overlays. |
[Screenshot Needed] Edit Structures panel with sample rows loaded. Suggested file:
wiki-menu-reference-edit-structures.png
Use Manage Region Plan to define alignment-owned span logic before section generation.
This panel is now the main place to author corridor span intent, not a low-level runtime rule table.
Important behavior:
- The main workflow is grouped into
Base Regions,Overrides, andHints. -
Base Regionsdefine the main corridor span layout. -
Overridesdefine local exceptions such as ditch/berm, urban edge, or corridor split/skip zones. -
Hintsare seeded proposals from project, typical section, structure, or design-standard context and do not become design data until accepted. -
Advancedis a flat runtime preview/export surface for existing plans; direct flat-row editing is only available while creating a new plan. - The
Station Timelinesummary,Base Regions,Overrides, andHintstables use palette-aware tinting so both FreeCAD light and dark themes keep readable cell values.
| Area | Meaning | How to use it |
|---|---|---|
Target Region Plan |
Selects an existing alignment-owned RegionPlan or creates a new one. |
Use [New] Create new Region Plan when starting authoring from scratch. |
Workflow tab |
Main grouped editing surface. | Use this tab for nearly all editing work. |
Base Regions |
Main span layout of the corridor. | Split or merge these first so every station falls into the intended base regime. |
Overrides |
Local span exceptions on top of the base plan. | Use structured controls instead of raw policy strings for normal editing. |
Hints |
Managed proposals from project seed logic. | Review, accept, or ignore them explicitly. |
Station Timeline |
Ordered span summary across base/override/hint rows. | Use it to review span order and make direct span edits without switching to raw rows. |
Advanced tab |
Flat runtime preview/export view. | Use it for diagnostics, CSV round-trip, and raw export inspection rather than normal authoring. |
| Option | Meaning | How to use it |
|---|---|---|
Preset Data |
Loads starter grouped region rows. | Useful for quick experiments or template-like seeding. |
Auto-seed [New] |
Seeds a new plan from current project context. | Keep it on when you want project-linked starter hints and base rows for a brand-new plan. |
Seed From Project |
Refreshes managed hints from project, typical-section, structure, and design-standard context. | Use this after changing typical section, structures, or project design-standard metadata. |
Add Base Region |
Creates a new base span row. | Use when the corridor regime changes along station. |
Split Selected / Merge Selected
|
Splits one base span or merges adjacent compatible base spans. | Use these before editing lower-level overrides. |
Override starters |
Quick starter buttons such as ditch/urban/split/skip. | Use these for common override types instead of building rows from scratch. |
Accept / Accept and Edit / Ignore
|
Hint workflow actions. |
Accept turns the hint into a real override. Ignore keeps it traceable without applying it. |
Import Region Plan CSV / Export Region Plan CSV
|
Round-trip grouped rows through the current CSV schema. | Useful for diagnostics, review, or template reuse. |
-
RegionPlanlives under the owning alignmentRegionsbranch, not under genericInputs. - Existing plans should be edited from
Workflow; do not treatAdvancedas a second primary editor. - Project-seeded hints may include confidence levels and source/family labels such as
Typical Section / Urban EdgeorDesign Standard / Speed Review. - If a table row tint looks unreadable after a FreeCAD theme change, reopen the panel so the palette-aware row colors can be applied again.
The Generate Sections panel now includes both region-aware and structure-aware options.
| Option | Meaning | How to use it |
|---|---|---|
Use linked Region Plan |
Enables region-driven station merge and optional section-rule consumption. | Turn this on when the alignment uses a RegionPlan for span-based control. |
Region Plan Source |
Chooses the source RegionPlan. |
Normally use the active project or alignment plan. |
Include region boundaries |
Adds region start/end stations to the generated section list. | Keep enabled in most region-driven workflows. |
Include region transitions |
Adds transition stations around region boundaries. | Keep enabled when region changes should be sampled more smoothly. |
Apply region overrides |
Lets accepted region overrides affect section-side or daylight behavior. | Turn this on when the RegionPlan should modify actual section output, not just station density. |
Recommended user policy:
- Build the base corridor station pattern first with
Region Plan. - Use region overrides for corridor-side/daylight intent that is not structure-specific.
- Keep structure overrides and region overrides conceptually separate: region for corridor design intent, structure for structure-driven behavior.
| Option | Meaning | How to use it |
|---|---|---|
Use linked StructureSet |
Enables station merge and structure-aware section generation from StructureSet. |
Turn this on when structures should influence section station selection or overlays. |
Structure Source |
Chooses the source StructureSet. |
Normally use the active project structure set. |
Include start/end stations |
Adds structure start and end stations into the section station list. | Keep enabled in most workflows. |
Include center stations |
Adds structure center stations into the section station list. | Keep enabled when you want a clear mid-structure section. |
Include transition stations |
Adds transition stations before and after each structure zone. | Keep enabled in most workflows so section shape changes do not happen too abruptly at structure boundaries. |
Auto transition distance |
Derives transition distance automatically from structure type and size. | Recommended default. It reduces manual tuning when different structure types need different boundary spacing. |
Transition Distance |
Manual fallback distance used for transition stations when auto mode is off. | Turn off auto mode only when you need to force one fixed distance for all structure records. |
Add structure tags to child sections |
Adds tags and metadata to child sections at structure-related stations. | Keep enabled if you want labels and tree identification. |
Apply structure overrides |
Enables structure-type override logic during section build. | Turn this on when structure zones should constrain daylight/side-slope behavior. |
| Option | Meaning | How to use it |
|---|---|---|
Use structure corridor modes |
Reads CorridorMode from the linked StructureSet during corridor build. |
Keep enabled if structures should affect the corridor body, not just sections. |
Default structure corridor mode |
Fallback mode used when a structure record does not specify CorridorMode. |
split_only is the safe default. Use skip_zone only when missing corridor modes should still create corridor gaps. |
Notch transition scale |
Scales how gradually a notch ramps in and out around transition stations. | Start with 1.0. Increase it for a longer, softer notch transition; reduce it if the notch should reach full effect more quickly. |
Recommended user policy:
-
culvert,crossing->notch -
bridge_zone,abutment_zone->skip_zone -
retaining_wall->split_only
| Structure Type | Current Section Override Behavior |
|---|---|
crossing |
Affects both sides; replaces daylight-driven side slopes with short flat berm-like side segments through the active zone. |
culvert |
Affects both sides; behaves like a crossing and keeps a wider flat berm around the structure envelope instead of full daylight slopes. |
retaining_wall |
Affects only the declared side; replaces that side with a short steep wall-like segment while the opposite side can stay normal. |
bridge_zone |
Affects both sides conservatively; trims side-slope reach and disables daylight so the section remains loft-stable near the zone. |
abutment_zone |
Affects both sides conservatively; trims side-slope reach and disables daylight so the section remains loft-stable near the zone. |
other |
No special type logic beyond the selected BehaviorMode. |
When Auto transition distance is enabled, the current default rules are:
| Structure Type | Auto Rule |
|---|---|
culvert, crossing
|
max(5 m, 0.75 x Width, 1.50 x Height) |
retaining_wall |
max(3 m, 0.50 x Width, 1.00 x Height) |
bridge_zone, abutment_zone
|
max(10 m, 0.50 x Width, 1.00 x Height) |
other |
max(5 m, 0.50 x Width, 1.00 x Height) |
Interpretation:
- Crossing-like structures use a moderate transition so section shape and daylight do not change too abruptly at entry and exit.
- Retaining walls usually need a shorter transition because only one side is typically constrained.
- Bridge and abutment zones use longer transition spacing because their influence is usually wider and more conservative.
- If project
Length Scaleis not meter-native, the actual stored internal distance scales automatically.
When to override manually:
- The structure boundary still looks too abrupt even with auto mode on.
- The structure influence should be much tighter than its displayed width.
- You want a uniform transition distance for all structures in a specific test case.
- Standard section children continue to appear under
Sections. - Structure overlay objects appear under
Structure Sections. -
SectionSet.Statusreports merged structure count and override hit count. -
Corridorcan reportNotch-aware stationsandClosed profile schemawhen a notch-aware profile is used.
[Screenshot Needed] Generate Sections panel with StructureSet options expanded. Suggested file:
wiki-menu-reference-generate-sections-structures.png
Typical Section is the component-based editor for finished-grade top-profile composition.
| Option | Meaning | How to use it |
|---|---|---|
Preset |
Built-in starter configuration such as 2-Lane Rural, Urban Complete Street, or Road With Ditch. |
Choose a preset when you want a fast starting point before manual edits. |
Load Preset |
Loads the selected built-in preset into the component table. | Useful when you want to start from a known cross-section pattern instead of a blank table. |
Component CSV |
Path to the typical-section component CSV. | Select one of the sample files or your own CSV. |
Browse CSV |
Opens a file chooser for a typical-section CSV. | Recommended first step for sample-driven testing. |
Load CSV |
Reads the CSV and fills the component table. | Review or adjust rows before Apply. |
Save Component CSV |
Writes the current component table back to CSV. | Use when you want to keep an edited template as a reusable file. |
Pavement CSV |
Path to the pavement-layer CSV for the same typical section. | Use when you want to track pavement thickness data with the section template. |
Pavement Preset |
Built-in pavement-layer starter stack such as Asphalt Basic, Asphalt Thin, or Concrete Road. |
Use this when you want to fill the pavement-layer table quickly without a separate CSV file. |
Load Pavement Preset |
Loads the selected pavement-layer preset into the pavement table. | Best for quick trials before refining layer thicknesses manually or saving them to CSV. |
Browse Pavement CSV |
Opens a file chooser for a pavement-layer CSV. | Select the sample pavement CSV or your own layer stack file. |
Load Pavement CSV |
Reads the pavement CSV and fills the lower pavement table. | Review or adjust layers before Apply. |
Save Pavement CSV |
Writes the current pavement-layer table back to CSV. | Use when you want to reuse the same pavement stack in another template. |
Apply |
Saves the component rows into the active TypicalSectionTemplate. |
Main execution button. |
| Option | Meaning | How to use it |
|---|---|---|
Add Lane / Add Shoulder / Add Curb / Add Ditch / Add Berm
|
Inserts a pre-filled component row with sensible defaults. | Fastest way to build a section without starting from a blank row. |
Add Row |
Adds a blank component row. | Use for uncommon component combinations or detailed manual input. |
Remove Row |
Removes the selected component row. | If no row is selected, remove the last row. |
Move Up / Move Down
|
Reorders the selected component row in the table. | Useful when the visual build order should change without retyping Order. |
Mirror Left -> Right |
Copies the selected left-side row to the right side. | Best for lane/shoulder/gutter/ditch/berm rows when building symmetric sections. |
Mirror Right -> Left |
Copies the selected right-side row to the left side. | Use for the reverse direction when the right side is already defined. |
Sort by Order |
Sorts rows by Order, then side/id. |
Use after large edits or imports to restore predictable build order. |
Add Layer / Remove Layer
|
Adds or removes pavement-layer rows. | Use after setting up the top profile when pavement data should also be tracked. |
| Column | Meaning |
|---|---|
Id |
Component identifier |
Type |
lane, shoulder, median, sidewalk, bike_lane, curb, green_strip, gutter, ditch, berm
|
Side |
left, right, center, both
|
Width |
Component width |
CrossSlopePct |
Cross slope (%) |
Height |
Vertical step / sag depth depending on component |
Offset |
Additional local lateral offset before the component |
Order |
Per-side build order |
Enabled |
Boolean enable flag |
tests/samples/typical_section_basic_rural.csvtests/samples/typical_section_urban_complete_street.csvtests/samples/typical_section_with_ditch.csvtests/samples/typical_section_pavement_basic.csv
-
curbcurrently creates a vertical step plus top width. -
ditchcurrently creates a simple sag/V-style break. -
bermcurrently acts as a flat road-edge platform segment. -
benchis reserved for future earthwork mid-slope benching terminology. - Pavement layers are currently data-only and tracked as total thickness/result metadata.
- The panel now includes a
Summarygroup that reports current component count, top width, edge types, and pavement total thickness beforeApply. - Type-aware tooltips and cell tinting are used to show whether
CrossSlopePctorHeightis the more important field for each component type. - To consume the template in actual section generation, use
Generate SectionswithUse Typical Section Template.
- Start with Quick Start.
- Use Workflow for command order.
- Use this page when you need field-by-field option meaning.
- Use Troubleshooting when sampled EG/FG or structure-aware output is incomplete or inconsistent.
Last verified with commit: 61ba6d5