| Operation | Manual (minutes) | Plugin (seconds) | Accuracy gain | |-----------|----------------|-----------------|----------------| | Initial modeling | 25 | 8 | 99.8% fewer manual errors | | Change floor height (+6″) | 15 (redo) | 2 (param update) | 100% consistency | | Railing re-alignment | 10 | 1 | Auto-continuous | | Code check | 5 (manual) | 0.2 (real-time) | 100% coverage |
| Parameter | IBC 2021 | ADA | Plugin Check | |-----------|----------|-----|---------------| | Riser height | 4″–7″ | ≤7″ | Warning if outside | | Tread depth | ≥11″ | ≥11″ | Error if <11″ | | Handrail height | 34″–38″ | 34″–38″ | Auto-set, user override | | Baluster spacing | ≤4″ | N/A | Auto-calc spacing | | Landing depth | ≥ stair width | ≥60″ | Auto-enforce | | Nosing projection | ¾″–1¼″ | Optional | Configurable | stairs and railings plugin
N = round(H / r_target) Actual riser h = H / N Total run (horizontal length of one flight): | Operation | Manual (minutes) | Plugin (seconds)
public class RailingBuilder public Railing AttachToStair(Stair stair, double height, double extension) List<Curve> railPaths = new List<Curve>(); foreach (var flight in stair.Flights) Curve topRail = flight.GetTopRailCurve(height); railPaths.Add(topRail); double extension) List<
For Revit: Use Stairs.Create() and Railing.Create() methods; for Rhino: use Brep.CreateFromBox and extrusion along curve.