Stairs |
The StairsEditScope type exposes the following members.
Name | Description | |
---|---|---|
![]() | StairsEditScope | Instantiates a StairsEditScope object. |
Name | Description | |
---|---|---|
![]() | IsActive |
Tells if the EditScope is active. In other words, the EditScope has started but not committed/canceled yet.
(Inherited from EditScope) |
![]() | IsPermitted |
Tells if the edit scope is permitted to start.
(Inherited from EditScope) |
![]() | IsValidObject |
Specifies whether the .NET object represents a valid Revit entity.
(Inherited from EditScope) |
Name | Description | |
---|---|---|
![]() | Cancel |
Cancels the edit scope.
(Inherited from EditScope) |
![]() | Commit |
Finishes the edit scope.
(Inherited from EditScope) |
![]() | Dispose | (Inherited from EditScope) |
![]() | Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
![]() | GetHashCode | Serves as the default hash function. (Inherited from Object) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object) |
![]() | Start(ElementId) | Starts an stairs edit mode for an existing Stairs element |
![]() | Start(ElementId, ElementId) | Creates a new empty stairs element with a default stairs type in the specified levels and then starts stairs edit mode and editing the new stairs. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object) |
private ElementId CreateStairs(Document document, Level levelBottom, Level levelTop) { ElementId newStairsId = null; using (StairsEditScope newStairsScope = new StairsEditScope(document, "New Stairs")) { newStairsId = newStairsScope.Start(levelBottom.Id, levelTop.Id); using (Transaction stairsTrans = new Transaction(document, "Add Runs and Landings to Stairs")) { stairsTrans.Start(); // Create a sketched run for the stairs IList<Curve> bdryCurves = new List<Curve>(); IList<Curve> riserCurves = new List<Curve>(); IList<Curve> pathCurves = new List<Curve>(); XYZ pnt1 = new XYZ(0, 0, 0); XYZ pnt2 = new XYZ(15, 0, 0); XYZ pnt3 = new XYZ(0, 10, 0); XYZ pnt4 = new XYZ(15, 10, 0); // boundaries bdryCurves.Add(Line.CreateBound(pnt1, pnt2)); bdryCurves.Add(Line.CreateBound(pnt3, pnt4)); // riser curves const int riserNum = 20; for (int ii = 0; ii <= riserNum; ii++) { XYZ end0 = (pnt1 + pnt2) * ii / (double)riserNum; XYZ end1 = (pnt3 + pnt4) * ii / (double)riserNum; XYZ end2 = new XYZ(end1.X, 10, 0); riserCurves.Add(Line.CreateBound(end0, end2)); } //stairs path curves XYZ pathEnd0 = (pnt1 + pnt3) / 2.0; XYZ pathEnd1 = (pnt2 + pnt4) / 2.0; pathCurves.Add(Line.CreateBound(pathEnd0, pathEnd1)); StairsRun newRun1 = StairsRun.CreateSketchedRun(document, newStairsId, levelBottom.Elevation, bdryCurves, riserCurves, pathCurves); // Add a straight run Line locationLine = Line.CreateBound(new XYZ(20, -5, newRun1.TopElevation), new XYZ(35, -5, newRun1.TopElevation)); StairsRun newRun2 = StairsRun.CreateStraightRun(document, newStairsId, locationLine, StairsRunJustification.Center); newRun2.ActualRunWidth = 10; // Add a landing between the runs CurveLoop landingLoop = new CurveLoop(); XYZ p1 = new XYZ(15, 10, 0); XYZ p2 = new XYZ(20, 10, 0); XYZ p3 = new XYZ(20, -10, 0); XYZ p4 = new XYZ(15, -10, 0); Line curve_1 = Line.CreateBound(p1, p2); Line curve_2 = Line.CreateBound(p2, p3); Line curve_3 = Line.CreateBound(p3, p4); Line curve_4 = Line.CreateBound(p4, p1); landingLoop.Append(curve_1); landingLoop.Append(curve_2); landingLoop.Append(curve_3); landingLoop.Append(curve_4); StairsLanding newLanding = StairsLanding.CreateSketchedLanding(document, newStairsId, landingLoop, newRun1.TopElevation); stairsTrans.Commit(); } // A failure preprocessor is to handle possible failures during the edit mode commitment process. newStairsScope.Commit(new StairsFailurePreprocessor()); } return newStairsId; }