Search
AutoBRIDGE — 3D String · 3D Mass / Adaptive Edge
AutoBRIDGE · 3D Alignment String

3D String from
3D Mass / Adaptive Edge

Select any placed 3D Mass or Adaptive Component, click an edge in the interactive 3D canvas to choose your path curve, then generate a parametric 3D spline family that exactly follows that geometry edge — no topography reference required.

AutoBRIDGE 3D Alignment String 3D Mass / Adaptive Edge
Phase 1 — Source Element Phase 2 — Edge Curve Selection Phase 3 — 3D Canvas Navigation Phase 4 — Run

What Does This Tool Do?

The 3D Mass / Adaptive Edge tool (AlignmentAdaptive3D) extracts an edge curve directly from the solid geometry of a placed 3D Mass or Adaptive Component already in the Revit model. It tessellates the selected edge at a fixed 1-metre interval, adjusts all points relative to the first point, then creates a CurveByPoints spline family that precisely traces that edge in 3D space.

This tool is fundamentally different from the other 3D string tools — it reads geometry that already exists in 3D in Revit. No topography, no Civil 3D, no model lines are needed. The edge itself carries the full X, Y, and Z information.

🧱

Direct from Mass

Reads solid edges from any Conceptual Mass or placed Adaptive Component — geometry already in 3D.

🎯

Click to Select

Click directly on an edge in the interactive 3D canvas — no need to identify curves from a list.

🌐

Full 3D Orbit

Orbit (Ctrl+drag), pan (middle-drag), zoom (scroll) — inspect the mass from any angle before selecting.

No Topography

No terrain reference needed. The edge already has the correct Z from the 3D mass geometry.

How This Tool Differs from the Others

Civil 3D

Horizontal alignment + vertical profile from a running C3D session. Needs Civil 3D.

MLine + Toposolid

Model lines + Toposolid (Revit 2024+) for terrain Z. Needs grouped model lines.

MLine + Topography

Model lines + legacy TopographySurface. Revit 2023 and earlier terrain.

3D Mass Edge (this)

Edge directly from a 3D mass or adaptive component. No extra data needed — geometry is already 3D.

Key Unique Characteristics

Characteristic3D Mass / Adaptive Edge tool
IntervalFixed at 1 m (3.28084 ft) — hardcoded, no user spinner
Canvas typeSingle 3D perspective canvas with full orbit/pan/zoom — not a 2D plan view
Elevation viewNone — the selected edge already carries full 3D XYZ from the mass geometry
TopographyNot used or required
Output family nameAutoBRIDGE_3DCurveFromEdge_IDxxxxx
Source typesFamilyInstance (Adaptive Component), Wall, Floor, or any element with solid geometry edges

Select the Source Element

The top row contains two linked dropdowns. comboBox1 (left, placeholder: "3D Mass / Adaptive") lists all Adaptive Component family instances in the project, populated by PopulateFamilyComboBox() which calls Adaptives.GetAllFamilyInstanceDoc().

01

Select the 3D Mass or Adaptive Component

Click comboBox1 and choose the element whose edges you want to use. After selection, comboBox1_SelectedIndexChanged fires PopulateAdaptiveComponentCurves() which walks the full geometry tree of the selected element:

  1. Unpacks any GeometryInstance objects recursively
  2. Collects all Solid edges via edge.AsCurve()
  3. Collects any standalone Curve objects
  4. Sorts all found curves longest first
  5. Populates comboBox2 with entries labelled Curve N (Length: X.XX)

Simultaneously, the 3D canvas redraws showing all extracted edges of the selected element as white lines.

BridgeMass_01 (FamilyInstance) Curve Length
Top bar — source element selected (left, cyan border); Curve dropdown ready (right)
Tip — element must be placed: The element must already be placed as an instance in the Revit project. Unplaced family types in the project browser will not appear. Open a plan or 3D view, place the mass, and then open this form.

Select the Edge Curve

After selecting the source element, you can select the target edge curve in two ways — via the dropdown or by clicking directly in the 3D canvas. Both methods are equivalent and sync with each other.

02

Method A — Dropdown (comboBox2)

comboBox2 (right dropdown, placeholder: "Curve Length") lists all extracted edges sorted longest first, labelled Curve N (Length: X.XX) where the length is in Revit internal feet units. Select the edge by name. The canvas immediately highlights the selected edge in red (3 px) while all other edges remain white.

Which curve to pick: The tool sorts longest first so the main structural edges (deck chord, arch rib) appear at the top. Shorter edges (stiffeners, cross-beams) appear further down. Inspect the canvas after each selection to confirm which physical edge is highlighted red.
03

Method B — Click in the 3D Canvas

Left-click (without Ctrl) anywhere near an edge in the 3D canvas. The tool measures the screen-space distance from the click point to every projected edge segment. If the closest edge is within 10 pixels, it is selected — the canvas highlights it red and comboBox2 updates to match. Clicking in empty space clears the selection.

This is the recommended method for complex masses with many edges — orbit to a view where the desired edge is clearly visible, then click it directly.

Left-click here Left Click → select this edge Ctrl + Left Drag → orbit view Middle Drag → pan Scroll → zoom · Double-click → reset All form edges Selected edge (red) X Y Z
3D canvas — white edges = all extracted geometry; red = selected edge; yellow circle shows click target; orbit with Ctrl+drag to better view complex forms

Navigating the 3D Canvas

The 3D canvas (pictureBox2, background #7D7D7D) renders a perspective projection of all extracted edges. The camera is positioned using spherical coordinates (azimuth, elevation, radius) and supports full orbit, pan, and zoom.

04

Canvas Controls

ActionInputDetail
Select edgeLeft-click (no Ctrl)Selects nearest projected edge within 10 px threshold; clears selection if clicking empty space
OrbitCtrl + left-dragHorizontal drag: azimuth (0.5°/px). Vertical drag: elevation (0.5°/px), clamped to 5°–175° to avoid gimbal flip
PanMiddle-button dragShifts the viewport origin in screen space by the mouse delta
ZoomScroll wheelRadius × 10% per scroll step; minimum radius = 1 unit
Reset viewDouble-clickResets pan offset to (0,0) and radius to the auto-fit value computed from the geometry bounding box
Auto-fit on source change: When a new source element is selected, the camera radius is automatically set to fitRadius = maxExtent × 1.5 where maxExtent is the largest of the bounding box X, Y, Z dimensions. The view is fitted to show the entire element. Double-click to restore this fit-radius if you have zoomed in too far.

What the Canvas Renders

  • Fine grid — grey lines at 10 m spacing on the XY ground plane (colour: RGB 136,136,136)
  • Coarse grid — slightly darker lines at 50 m spacing (colour: RGB 100,100,118)
  • All edges — white, 2 px — every curve extracted from the selected mass
  • Selected edge — red, 3 px — the edge from comboBox2 or the last canvas click
  • No station dots in this tool — the interval is fixed at 1 m and tessellation happens only at RUN time, not in the preview
  • XYZ axis indicator — pinned top-left (X=red, Y=green, Z=blue)
Canvas message "No adaptive component selected": Appears when comboBox1 has no selection. Select a source element first to populate the canvas with geometry.
"No form edges in adaptive component": The selected element has no extractable solid edges in the current active view. Try a different element or ensure the mass has a resolved solid form.

Run and Validate

05

Click RUN — Five-Stage Pipeline

The cyan RUN button (bottom-right, 120×38 px) runs the following pipeline, tracked by a marquee-style progress bar:

  1. Curve validation — checks that cachedSelectedCurvePoints is non-null and non-empty. Error: "Please select a curve from the form edges." Progress: 0%.
  2. Tessellation at 1 m — calls TessellateCurveWithInterval(cachedSelectedCurvePoints, 3.28084). Walks the cached tessellation points, accumulates segment lengths, and interpolates new points at every 1-metre arc-length interval along the edge. The start and end points are always included. Progress: 20%.
  3. Point adjustment — calls AdjustPointsRelativeToFirst(): subtracts the first point's coordinates from all points so the spline origin is at (0,0,0) within the family document. The original first point is stored as firstPoint for placement. Progress: 30%.
  4. Family document creation — opens a new family from the selected template (.rft), saves it as AutoBRIDGE_3DCurveFromEdge_IDxxxxx.rfa in the Temp folder, creates a ReferencePointArray with one ReferencePoint per tessellation point, and calls familyDoc.FamilyCreate.NewCurveByPoints() to build the 3D spline. Progress: 40–80%.
  5. Load & place — loads the .rfa into the active Revit document with familyDoc.LoadFamily(doc), then places an instance at firstPoint using Adaptives.PlaceAdaptiveFamily2(). Progress: 80–100%.
Output: A new Generic Model family instance named AutoBRIDGE_3DCurveFromEdge_IDxxxxx is placed in the model at the first point of the selected edge. The 3D spline inside the family traces the full edge at 1-metre intervals. The .rfa file is saved to Documents\AutoBRIDGE\Modeler\2026\family_template\{template}\Temp\.
Fixed 1 m interval — why? Unlike the other 3D string tools where interval affects terrain accuracy, here the edge geometry is already exactly 3D. A 1 m tessellation provides very high fidelity for any typical bridge geometry (including curved deck edges and arch ribs) without requiring user input.

Troubleshooting

SymptomCauseFix
comboBox1 is emptyNo Adaptive Component family instances placed in the projectPlace at least one Adaptive Component instance in the model before opening the form
comboBox2 is empty after selecting sourceElement has no extractable solid edges in the active viewEnsure the mass has a joined solid form; try with IncludeNonVisibleObjects — if still empty, the element's geometry may not have edge-level access
Canvas shows "No form edges"Geometry extraction returned zero curvesSelect a different mass element or verify the adaptive component has a solid body (not just reference lines)
Canvas click selects wrong edgeEdges are close together in projection; click threshold is 10 pxOrbit the view (Ctrl+drag) until the desired edge is clearly separated from its neighbours, then click
RUN error: "Please select a curve"No edge selected in canvas or comboBox2Click on an edge in the canvas or select one from comboBox2 before clicking RUN
RUN error: "Not enough points to create a 3D curve"The selected edge is shorter than 1 m (one interval)Select a longer edge; the minimum usable edge length is slightly above 1 m
Placed family appears at wrong locationMass is not at the Revit project originThis is expected — the family is placed at firstPoint which is the first tessellation point of the selected edge in project coordinates
Spline does not match the edge exactly1 m interval introduces chord error on tight curvesThe interval is fixed. For very tight curves (radius < 5 m) the chord approximation may be visible — this is a current limitation of the fixed 1 m tessellation
Template not foundAutoBRIDGE template setting is blankOpen AutoBRIDGE global settings and select a family template (.rft) before using this tool

Complete Workflow Summary

StepActionResult
1Select source from comboBox1Canvas draws all edges of the mass; comboBox2 populated with curves sorted longest first
2Orbit the canvas if needed (Ctrl+drag)Rotate to a view angle where the desired edge is clearly visible and isolated
3Left-click on the target edge in canvasEdge highlighted red; comboBox2 synced to matching curve entry
4Verify the red highlight is on the correct edgeIf wrong, click again on the correct edge or use comboBox2 to switch
5Click RUNTessellate at 1 m → adjust relative to first point → create family → load → place in Revit
6Confirm success dialogFamily AutoBRIDGE_3DCurveFromEdge_IDxxxxx placed at the first edge point in the model
AutoBRIDGE — 3D Alignment String · 3D Mass / Adaptive Edge — Workflow Guide
© 2026 AutoBRIDGE Documentation  ·  auto-bridge.net
Scroll to Top