.. index:: single: Grading single: Culverts single: 3D Object Viewer Grading, Culverts and the 3D Object Viewer ========================================== .. _grading: .. index:: single: Grading Grading ------- **Grading** designs a graded pad — a building platform, parking lot, pond, or terrace — by projecting cut and fill slopes outward from a footprint at a design elevation until they *daylight* (meet) an existing-ground surface. The result is a graded terrain surface plus the earthwork cut/fill volumes. A grading is a **dynamic, self-contained object** (``AECC_GRADING``): it owns and draws its own geometry (the graded TIN, the daylight line and any bench lines) — no separate polylines or surfaces clutter the drawing — and it **recomputes automatically** when you change its inputs. Grip-drag a footprint vertex and the graded surface follows live; edit a slope in the inspector and it recomputes at once. .. index:: single: The grading object The grading object ~~~~~~~~~~~~~~~~~~~ A grading binds three inputs and produces its outputs internally: - **Footprint** — a closed (or open) polyline outlining the pad. - **Target surface** — the existing-ground TIN (or DEM) the slopes daylight onto. - **Criteria** — the design elevation, the cut/fill slopes, and benching. From these it builds, and draws itself: - the **graded TIN** (pad top + the sloped skirt out to daylight), styled by a surface style; - the **daylight line** — the outer perimeter where the slopes meet ground; - **bench lines** — the concentric terrace edges when benching is enabled; - the **cut, fill and net volumes** against the target surface. .. index:: single: Creating a grading Creating a grading ~~~~~~~~~~~~~~~~~~~ 1. Draw a **closed polyline** for the pad outline and have an existing-ground **surface** in the drawing. 2. Run :command:`GRADING` (alias ``GRD``), or **Civil › Grading**. The **Grading** dialog opens. 3. Fill in the criteria (below) and click **Create / Build**. The **Grading** dialog groups the settings: - **Footprint** — pick the pad polyline (all polylines in the drawing are listed; unnamed ones are auto-named so they can be referenced). - **Target surface** — the existing-ground surface, listed by its civil name. - **Elevation** — how the pad-top elevation is set: - **Flat** — a single **design elevation** for the whole pad. - **Footprint vertex Z** — the pad edge follows the polyline's own per-vertex elevations (use a 3D polyline). - **Drainage** — the design elevation plus a constant cross-pad slope in a given direction (a drainage grade to a low edge). - **Cut / Fill** — the outslope for each, entered as a **slope** (H:V ratio, e.g. ``3`` = 3:1) or a **grade** (%); toggle the **Format** to switch. Each perimeter point automatically uses the **cut** slope where the pad is below ground (excavation) and the **fill** slope where it is above (embankment). - **Benching** — terraces on tall slopes, set separately for cut and fill: - **Enable** — turn benching on for that side. - **Width** — the horizontal width of each flat bench shelf (m). - **Interval** — the vertical rise between benches (m); a bench is inserted each time the slope has climbed/dropped this far. - **Cross-slope (%)** — an optional tilt across each shelf (a back-drain). A positive value tilts the shelf down toward the outer, slope-face edge so water collects at the toe of the upper batter; ``0`` = flat. - **Sample interval** — how finely the perimeter is discretised (smaller = smoother daylight, more triangles). - **Max search distance** — how far a slope may run before it is reported as *ungraded* (it never reaches ground within this distance). .. note:: **Cut vs fill sign.** Cut and fill volumes are both reported as positive magnitudes; **net = fill − cut** (a negative net means net cut / export). A pad below existing ground yields cut; a pad above yields fill. .. index:: single: Dynamic editing and rebuild single: Dynamic editing single: rebuild Dynamic editing and rebuild ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A grading keeps itself up to date. With **Auto rebuild** on (the default): - **Grip-drag a footprint vertex** → the grading recomputes and redraws live, every mouse-move. - **Move the whole footprint** → it updates when you release. - **Edit a criterion** (design elevation, a cut/fill ratio, benching, the surface style) in the **Object Inspector** → it recomputes immediately. - **Edit the target surface** → the grading follows. Turn **Auto rebuild** off (in the inspector) for very large pads; the grading then marks itself ``[stale]`` on an edit and you rebuild on demand with :command:`BUILDGRADING` (alias ``BG``) or the prospector **Rebuild** item. .. index:: single: Volume balance Volume balance ~~~~~~~~~~~~~~~ **Balance** solves the pad's design elevation so the earthwork hits a target net volume — most often **0**, a balanced cut/fill site with no import or export. Run :command:`GRADINGBALANCE` (alias ``GRDB``), or right-click the grading in the prospector and choose **Balance…**. Enter the **target net volume** (default ``0``) and a **tolerance** (default ``1`` m³). Because net volume rises monotonically with the pad elevation, the tool root-finds the elevation (bracket + bisection, re-running the grading at each trial), sets it, and rebuilds. It reports the solved elevation and achieved net, or that the target is **not achievable** for this pad within the search range (e.g. asking for more fill than the pad can physically produce). Balance adjusts the **design elevation**, so it applies to **Flat** and **Drainage** pads; on a **vertex-Z** footprint (whose Z comes from the polyline) it reports that it needs a Flat or Drainage pad instead. .. index:: single: Extract single: show/hide single: lock Extract, show/hide, lock ~~~~~~~~~~~~~~~~~~~~~~~~~~ The grading's graded surface is internal, but you can get a real one on demand: - **Extract Surface** — :command:`GRADINGEXTRACT` (alias ``GRDX``) or the prospector **Extract Surface** item clones the graded TIN into a standalone ``AECC_SURFACE`` named ``_Extracted``, which you can section, contour, difference or feed to a corridor. It is a snapshot — re-extract to refresh. - **Show / Hide** — the prospector **Show/Hide** item (or the **Visible** inspector property) hides the grading from the drawing; hidden gradings are not drawn and cannot be clicked. - **Lock / Unlock** — the prospector **Lock/Unlock** item (or the **Locked** inspector property) prevents the grading from being selected or moved. A locked civil object is unlocked from the **prospector** node (not by clicking it on the canvas). .. index:: single: Selecting a grading Selecting a grading ~~~~~~~~~~~~~~~~~~~~ Click anywhere on the graded surface to select the grading and edit its values in the Object Inspector. A grading appears in the **Civil Toolspace** under a **Gradings** node, tagged ``[stale]``, ``[hidden]`` or ``[locked]`` as applicable; right-click it for **Rebuild**, **Balance…**, **Extract Surface**, **Show/Hide**, **Lock/Unlock** and **Delete**. .. index:: single: Grading commands Grading commands ~~~~~~~~~~~~~~~~~ .. index:: single: GRADING (command) single: BUILDGRADING (command) single: GRADINGBALANCE (command) single: GRADINGEXTRACT (command) .. list-table:: :header-rows: 1 :widths: 22 10 68 * - Command - Alias - Description * - ``GRADING`` - ``GRD`` - Open the Grading dialog to create/build a grading from a footprint, target surface and criteria. * - ``BUILDGRADING`` - ``BG`` - Rebuild a stale grading (when Auto rebuild is off). * - ``GRADINGBALANCE`` - ``GRDB`` - Solve the design elevation for a target net cut/fill volume. * - ``GRADINGEXTRACT`` - ``GRDX`` - Clone the graded surface into a standalone editable surface. Limitations and notes ~~~~~~~~~~~~~~~~~~~~~~~ - **Convex pads are fully supported.** For a strongly **concave / notched** (e.g. L-shaped) footprint the graded TIN may bridge the notch — check the result on such shapes. - Per-segment cut/fill overrides are supported by the engine and files but are not yet editable from the dialog (the global cut/fill applies to every side). - Balance targets the design elevation (Flat/Drainage pads); vertex-Z pads are warned. - Corner rounding is applied automatically (convex corners fan, concave corners trim), so the skirt closes cleanly at every vertex. .. index:: single: Culverts Culverts -------- **Culvert** creates a parametric **box culvert** — a reinforced-concrete drainage structure — as a dynamic 3D civil object (``AECC_CULVERT``) swept along a **flow-line** polyline. From a compact parameter set it builds the whole assembly: the box barrel (in segments), bottom and top slabs and haunches, the subbase and protection layers, inlet and outlet headwalls with splayed wing walls, footings and aprons, and an optional fall (drop) chamber — each as a solid part on its own layer, with a computed concrete volume. Like a grading, a culvert is **self-drawing and dynamic**: it owns its part meshes and rebuilds whenever you edit its parameters or move the flow-line. .. index:: single: Creating a culvert Creating a culvert ~~~~~~~~~~~~~~~~~~~ 1. Draw the **flow-line** as a 2D or 3D polyline along the culvert axis (its vertices set the plan route; a 3D polyline also sets the invert levels). At least two vertices are required. 2. Run :command:`CULVERT` (alias ``CULV``), or **Civil › Culverts › Culvert**, and click the flow-line polyline when prompted (or pre-select it first). 3. The culvert is built with default box parameters and reported on the command line (*"Culvert created: N parts, total volume = X m³"*). Double-click it to open the editor and tune the design. .. index:: single: Editing — the Culvert editor Editing — the Culvert editor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Double-click** a culvert (or run :command:`CULVERTEDIT`, alias ``CULVEDIT``) to open the tabbed **Culvert editor**. Each tab draws a live cross- and long-section schematic that highlights the dimension you are editing: - **Box** — the barrel: clear width **B** and height **H**, wall thickness **T**, top haunches, invert chamfer, bottom/top slab thickness, subbase and top-protection thickness, footing depth, and the segment length **L1** (split the barrel into *n* equal pieces, or into fixed-length pieces). - **Left Wing / Right Wing** — the inlet and outlet wing walls: splay angle, wing length, footing thickness and top slope for each wing panel. - **Fall Chamber** — an optional drop structure at the inlet or outlet (**None / Inlet / Outlet**) with its inner size, wall thickness, floor drop and a stepped ditch profile. - **Materials** — the material name assigned to each component group (box, subbase, protection, wings, fall chamber); used to group the quantities. - **Quantities** — a live table of concrete volume per component and material. Use **Apply** to rebuild the culvert without closing the dialog, or **OK** to apply and close. **Load / Save** store a parameter set as a ``.cvt`` template; **Import** reads a legacy GCulvert ``.txt`` parameter file. You can also edit the box parameters and flow-line vertices, and read the total volume, directly in the **Object Inspector** when a culvert is selected. .. index:: single: Moving a culvert Moving a culvert ~~~~~~~~~~~~~~~~~ The grips are the flow-line vertices. Grip-drag a vertex to move it in plan (its level is kept) and the culvert rebuilds along the new route. .. index:: single: Sections and quantities single: Sections single: quantities single: Culvert report Sections, quantities and report ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - :command:`CULVERTSECTION` (alias ``CULVSEC``) cuts the culvert into a dimensioned 2D **section** — a **cross-section** at a station you pick along the flow-line, or a **longitudinal** section (run it with the ``LONG`` option). It draws the outlines, material hatches and dimensions at a point you pick. - :command:`CULVERTQUANTITIES` (alias ``CULVQTY``) reports the concrete volumes — grouped by component and by material, with a grand total — and places a **quantities table** on the drawing. - :command:`CULVERTREPORT` (alias ``CULVRPT``) writes a **PDF report** of the selected culvert: identity, a plan sketch with numbered stake-out points, cross and long sections, a volumes table, and an X/Y/Z coordinates table. **Civil › Culverts › Culvert Report** on the menu and ribbon. .. index:: single: Viewing a culvert in 3D Viewing a culvert in 3D ~~~~~~~~~~~~~~~~~~~~~~~~~ Select a culvert and open the **3D Object Viewer** (:command:`OBJVIEW`, below) to orbit the assembled solid, isolate individual parts and read part names and coordinates. .. index:: single: Culvert commands Culvert commands ~~~~~~~~~~~~~~~~~ .. index:: single: CULVERT (command) single: CULVERTEDIT (command) single: CULVERTSECTION (command) single: CULVERTQUANTITIES (command) single: CULVERTREPORT (command) .. list-table:: :header-rows: 1 :widths: 22 12 66 * - Command - Alias - Description * - ``CULVERT`` - ``CULV`` - Create a parametric box culvert from a picked flow-line polyline (built with default parameters; reports the part count and total volume). * - ``CULVERTEDIT`` - ``CULVEDIT`` - Open the tabbed Culvert editor for a selected culvert (same as double-clicking it) to edit box, wing, fall-chamber and material parameters with a live schematic and quantities. * - ``CULVERTSECTION`` - ``CULVSEC`` - Cut the culvert into a dimensioned 2D cross-section (or a longitudinal section with the ``LONG`` option) with outlines, material hatches and dimensions. * - ``CULVERTQUANTITIES`` - ``CULVQTY`` - Report concrete volumes grouped by component and material and place a quantities table on the drawing. * - ``CULVERTREPORT`` - ``CULVRPT`` - Write a PDF report of a selected culvert (identity, plan with numbered stake-out points, cross and long sections, volumes, X/Y/Z table). Notes ~~~~~ - A culvert does **not** appear in the Civil Toolspace / Prospector. Reach it by clicking or double-clicking it on the drawing, or from the ribbon / menu / command line. - The flow-line polyline drives the route — keep it in the drawing; the culvert references it. - The angle and batter fields on the wing tabs are stored with the design but a few are reserved for a future solver revision; wing geometry currently follows the splay, length, footing and slope values. .. index:: single: 3D Object Viewer 3D Object Viewer ---------------- The **3D Object Viewer** is a separate, modeless window that isolates the objects you have selected and shows them in **true 3D** — orbit, shade, hide individual objects and pick to inspect. It is **read-only**: it never changes the drawing. It is ideal for checking a **surface**, a **grading** pad or a **culvert** (or several together) in three dimensions without leaving your 2D layout. .. index:: single: Opening the viewer Opening the viewer ~~~~~~~~~~~~~~~~~~~ 1. Select one or more objects that have 3D geometry (surfaces, gradings, culverts, 3D polylines). 2. Open the viewer by any of: - :command:`OBJVIEW` (alias ``OBJECTVIEWER``); - **View** ribbon → **3D** pane → **Obj Viewer**; - right-click the canvas → **Object Viewer…**. The selected objects are isolated into the viewer. Objects with no 3D geometry are skipped (a note appears in the status bar). .. index:: single: Navigating Navigating ~~~~~~~~~~ - **Left-drag** — pan. - **Right-drag** — orbit (rotate). - **Middle-drag** — pan. - **Wheel** — zoom. - **Preset views** — a dropdown of Top / Bottom / Front / Back / Left / Right and the four isometric corners (SW / SE / NE / NW). - **Zoom Extents** — frame everything. - **Ortho / Persp** — toggle parallel vs perspective projection. .. index:: single: Display modes Display modes ~~~~~~~~~~~~~ A dropdown selects how solids are drawn: **Wireframe**, **Hidden Line**, **Flat**, **Gouraud**, **Shaded + Edges** (default) and **X-ray**. Surfaces are rendered **double-sided and smooth-shaded**, so a TIN never drops triangles when you rotate it. .. index:: single: Object list — show / hide / isolate Object list — show / hide / isolate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The left panel lists one row per object (a multi-part culvert is a single row): - **Checkbox** — show or hide that object. - **Double-click a row** — *isolate* it (hide the others) and refit the view. - **Show All** — show every object again. Below the list, a summary panel reports the object, triangle and vertex counts and the XYZ extents. .. index:: single: Inspecting Inspecting ~~~~~~~~~~ **Hover** the cursor over the geometry and the status bar reads out the point under the cursor: - for a **TIN / graded surface** triangle: XYZ, elevation, **slope %** and ratio, **aspect** (compass bearing) and triangle **area**; - for a **culvert** part: the **part name** and XYZ. .. index:: single: Colours Colours ~~~~~~~ Surface triangles are coloured by the surface's **elevation-band** style (the low-to-high gradient set in the Surface Style Editor); gradings and culverts use their entity colour. Lighting shades the result. .. index:: single: Live update Live update ~~~~~~~~~~~ While the viewer is open it tracks the objects you loaded and **updates automatically** when you edit them in model space — grip-drag a surface point or a grading footprint, edit a culvert parameter — and the 3D view follows within a moment, keeping your camera angle and any hidden/shown state. A **Live** toggle (on by default) turns this off for a frozen view. The viewer follows the objects by handle, so they no longer need to stay selected. **Reload** re-syncs to the current model-space selection if you have one, otherwise it refreshes the objects already shown. .. index:: single: Object Viewer commands Object Viewer commands ~~~~~~~~~~~~~~~~~~~~~~~ .. index:: single: OBJVIEW (command) .. list-table:: :header-rows: 1 :widths: 22 18 60 * - Command - Alias - Description * - ``OBJVIEW`` - ``OBJECTVIEWER`` - Open the 3D Object Viewer on the current selection: orbit, shade, show/hide and isolate objects, pick to inspect, with live update while you edit in model space. Read-only.