Revit 2025 API
CeilingCreate(Document, IListCurve |
Creates a new instance of ceiling within the project.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public static Ceiling Create( Document document, IList<CurveLoop> curveLoops, ElementId ceilingTypeId, ElementId levelId, Line slopeArrow, double slope )
Public Shared Function Create ( document As Document, curveLoops As IList(Of CurveLoop), ceilingTypeId As ElementId, levelId As ElementId, slopeArrow As Line, slope As Double ) As Ceiling
public: static Ceiling^ Create( Document^ document, IList<CurveLoop^>^ curveLoops, ElementId^ ceilingTypeId, ElementId^ levelId, Line^ slopeArrow, double slope )
static member Create : document : Document * curveLoops : IList<CurveLoop> * ceilingTypeId : ElementId * levelId : ElementId * slopeArrow : Line * slope : float -> Ceiling
Parameters
- document Document
- The document in which the new ceiling is created.
- curveLoops IListCurveLoop
- An array of planar curve loops that represent the profile of the ceiling.
- ceilingTypeId ElementId
- Id of the ceiling type to be used by the new ceiling. If InvalidElementId is passed, the default type will be used.
- levelId ElementId
- Id of the level on which the ceiling is to be placed.
- slopeArrow Line
- A line used to control the slope angle of the Ceiling. It must be horizontal.
- slope Double
- The slope angle.
Return Value
CeilingIf successful a new ceiling object within the project.

Exception | Condition |
---|---|
ArgumentException | The ElementId levelId is not a Level. -or- The ElementId ceilingTypeId does not correspond to a CeilingType. -or- The input curve loops cannot compose a valid boundary, that means: the "curveLoops" collection is empty; or some curve loops intersect with each other; or each curve loop is not closed individually; or each curve loop is not planar; or each curve loop is not in a plane parallel to the horizontal(XY) plane; or input curves contain at least one helical curve. -or- The slopeArrow must be a horizontal line. -or- Input curves build invalid sketch. -or- Failed to create curve elements. |
ArgumentNullException | A non-optional argument was null |
InvalidOperationException | Cannot generate a sketch. -or- Failed to create new element. |
ModificationForbiddenException | The document is in failure mode: an operation has failed, and Revit requires the user to either cancel the operation or fix the problem (usually by deleting certain elements). -or- The document is being loaded, or is in the midst of another sensitive process. |
ModificationOutsideTransactionException | The document has no open transaction. |

To validate curve loop profile use BoundaryValidation.

Ceiling CreateSlopedCeiling(Document document, Level level) { XYZ first = new XYZ(0, 0, 0); XYZ second = new XYZ(20, 0, 0); XYZ third = new XYZ(20, 20, 0); XYZ fourth = new XYZ(0, 20, 0); CurveLoop profile = new CurveLoop(); profile.Append(Line.CreateBound(first, second)); profile.Append(Line.CreateBound(second, third)); profile.Append(Line.CreateBound(third, fourth)); profile.Append(Line.CreateBound(fourth, first)); Line slopeArrow = Line.CreateBound(new XYZ(10, 10, 0), new XYZ(11, 10, 0)); return Ceiling.Create(document, new List<CurveLoop> { profile }, ElementId.InvalidElementId, level.Id, slopeArrow, Math.PI / 2); }
Private Function CreateSlopedCeiling(ByVal document As Document, ByVal level As Level) As Ceiling Dim first As XYZ = New XYZ(0, 0, 0) Dim second As XYZ = New XYZ(20, 0, 0) Dim third As XYZ = New XYZ(20, 20, 0) Dim fourth As XYZ = New XYZ(0, 20, 0) Dim profile As CurveLoop = New CurveLoop() profile.Append(Line.CreateBound(first, second)) profile.Append(Line.CreateBound(second, third)) profile.Append(Line.CreateBound(third, fourth)) profile.Append(Line.CreateBound(fourth, first)) Dim slopeArrow As Line = Line.CreateBound(New XYZ(10, 10, 0), New XYZ(11, 10, 0)) Return Ceiling.Create(document, New List(Of CurveLoop) From { profile }, ElementId.InvalidElementId, level.Id, slopeArrow, Math.PI / 2) End Function
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also