yucad3d

Assemblies & the Composer

The cross-section template a corridor sweeps along the alignment. Two tools share the work, the Civil-3D way: the Composer authors ONE subassembly’s internals as a flowchart; the Assemblies tab visually composes those subassemblies into complete assemblies.

Looking for a specific subassembly? The subassembly reference lists all built-in subassemblies and section presets with their parameters and the point / link / shape codes each one publishes.

The three geometry kinds

EntityIsBecomes in the corridor
PointA named position at an offset and height from the centreline.A 3D feature line (stringline).
LinkA straight segment between two points.A surface strip.
ShapeA closed area bounded by points.A 3D solid (a pavement / material course).

The Assembly Designer

Tools › Open Assembly Designer. It is corridor-independent — you design, save and edit here, and preview on a built-in demo alignment (a tangent → curve → tangent → spiral → curve, so the whole superelevation story is visible).

The flowchart (centre)

A program executed once per station. Nodes:

NodeDoes
PointCreate a named point from a reference + a method (offset, angle/distance, slope, intersection, on-surface, slope-to-surface daylight, …). Can also emit its link and choose whether it banks with superelevation.
LinkConnect two existing points.
ShapeClose a ring over a list of point names.
Variable (ƒ)Define a value from an expression.
Decision (◊)Run one branch or another by a condition (e.g. add a ditch only in cut).
SwitchBranch on a discriminant value.
ForEach (↻)Loop a count, binding an index variable.
OutputPublish a named output value.
Mark / ReportRecord a point for later reference / emit a diagnostic.

Expressions

Every numeric field accepts an expression (names are case-insensitive; Civil-3D SAC formulas paste in directly):

CategoryReference
Operators+ − * / ^ (power), comparisons < <= > >= == !=, logic && || !
Functionsif(cond,a,b), min max clamp abs sign, sqrt pow exp ln log log10, sin cos tan asin acos atan atan2 sinh cosh tanh, floor ceil round trunc deg rad; constants pi, e, station
Point membersP1.Offset (= P1.X), P1.Y (height above origin), P1.Elevation, P1.IsValid
Link membersL1.length, L1.slope
TargetsName.IsValid, Name.Offset, Name.Elevation for each declared target parameter
Superelevationthe eight cross-slope keys (RightOutsideLaneSlope, …) and their SAC spellings SE.RightLO / SE.HasRightLO … — station-tracked when a corridor (or the preview slider) supplies a rate; PivotOffset
Cant (rail)Cant.IsDefined, Cant.PivotType, Cant.LeftRailDeltaElevation, Cant.RightRailDeltaElevation, Cant.TrackWidth
Runtime flagsSA.IsLayout (1 in editor previews, 0 in a corridor run), SA.IsInCut (ground above the attach point)

2D Sketch

Draw the section directly — point, line and polygon (shape) tools — and the flowchart and sketch stay in sync. A snap indicator marks the snapped point; lines rubber-band while you drag.

2D & 3D Preview

Packet Settings

TabContents
Input ParametersThe named inputs (lane width, slope, …) — change a number, not the geometry.
OutputThe named graph the assembly publishes.
Target ParametersDeclared targets the geometry binds at corridor time — Surface (a TIN to intersect / daylight against), Offset (a lateral offset that overrides a point’s Delta X) and Elevation (an elevation that overrides a point’s height). Each row carries a Preview Value and an Enabled In Preview check: in the editor an enabled target stands in as a flat guide line at that value (drawn labelled in the sketch), and clearing the check tests the target-not-found branches — exactly Civil 3D’s preview semantics. Points reference a declared target from dropdowns in their properties; expressions read Name.IsValid / Name.Offset / Name.Elevation. The combo above the table binds the corridor’s real target surface.
CantRail preview stand-ins mirroring Civil 3D’s Cant tab: CantPivotType (Left Rail / CenterLine / Right Rail), the rail point names, delta elevations and the track gauge. They feed the Cant.* expression identifiers in editor previews; in a corridor the real per-station cant takes over (see Corridors).
SuperelevationThe Auto superelevation from curvature toggle, the design Standard (AASHTO / RAL / VSS / KGM) and design speed, and the per-lane / per-shoulder cross-slope table. See Superelevation & widening.

The Assemblies tab — the visual builder

The project’s assemblies live as blocks in the Assemblies tab, and that is where you build them:

  1. New Assembly starts a fresh assembly (a lone CL origin).
  2. Click a block to select it; click one of its point markers to pick the attach point (an orange ring marks it — the hint line above the workspace guides each step).
  3. Double-click a subassembly in the left Subassemblies palette — or simply drag it onto a marker — to compose it there. Each placement gets its own independent parameters (two Lanes → two widths), and its points/links/shapes stay fully editable in the Composer.
  4. The right Parameters panel edits the selected assembly in place, grouped per placement (Lane1, Curb2, …).
  5. Save to Library… exports the selection as a library file; right-click a block › Edit in Composer opens its flowchart bound to the project instance (edits are undoable document edits).
Composing detaches. A library-referenced instance stores only its parameters and re-resolves its geometry from the library on load. The moment you compose into it (or edit its flowchart), it becomes self-owned: the flow is saved inside the project and the library file no longer drives it.

Conditional subassemblies

The palette’s built-in Conditional element is the Civil 3D conditional subassembly: everything attached behind it is processed at a corridor station only while its condition holds. Pick an attach point and double-click Conditional; the dialog offers three condition kinds:

  1. Horizontal Target — a target alignment/offset is Found (or Not Found) within a Minimum–Maximum distance window of the attach point. The distances become regular parameters (Cond1_MaximumDistance, …) editable in the Parameters panel.
  2. Marked Point — the same window test against a marked point set elsewhere in the assembly (Mark Point in the Composer).
  3. Cut or Fill — the attach point sits in a Cut (surface above) or Fill (surface below) situation against a surface target; Minimum/Maximum bound the cut depth or fill height (continue while min ≤ depth < max).
  4. Expression — any flowchart expression (Mark.MP.IsValid && LaneWidth > 3).

The workspace draws the conditional as a dashed diagonal marker (sloping down for Found, up for Not Found — the Civil 3D convention) that stays visible even when its branch doesn’t bake. Attach the guarded subassemblies to the diamond at its endpoint; attach a second Conditional with the opposite type to the same point to build a Found / Not Found pair whose branches are mutually exclusive.

Importing Civil 3D subassemblies (.pkt)

Assembly Designer › File › Import Civil 3D PKT… converts Subassembly Composer packages — including the whole stock catalog shipped with Civil 3D — into library subassemblies. Parameters (with display names and descriptions), target parameters (with their preview values), the full flowchart (decisions, switches, loops, curves, fillets), codes and the catalog description all carry over; a summary dialog lists anything that needed a stand-in (open Show Details). Imported subassemblies appear in the palette and behave like native ones.

The assembly library

The Assembly Library dock is a program-level library — assembly files stored next to the application, independent of any project.

  1. Drag a library assembly onto the Assemblies tab (or double-click) to import a copy into the project.
  2. Each import becomes its own project assembly with a unique name, remembering the source it came from and its own parameter values — so you can import the same source many times with different names and parameters.
  3. Edit from the browser opens the source in the Designer; Save to Library writes it back beside the application. The save dialog’s Kind chooses Assembly (a whole cross-section) or Subassembly (a composable part — requires exactly one Origin point, its insertion point).
Project vs program; reference, not copy The browser is the program library (shared across projects). A project stores a reference to the source (a stable GUID) plus its own parameters — not the geometry. If the source is missing at load, the Event Viewer reports it and the saved parameters are still applied where possible.

Assigning to a corridor

Bind assemblies to corridor regions on Corridor Properties › Parameters (the Assembly column). See Corridors.