Skip to content

Ceiling.Create(Document, IList.CurveLoop., ElementId, ElementId)

Public Class

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
)

Parameters

document Document

The document in which the new ceiling is created.

curveLoopsIList. CurveLoop.

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.

Return Value

Ceiling
If successful a new ceiling object within the project.

Exceptions

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- 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.


Remarks

To validate curve loop profile use BoundaryValidation.

Example

Ceiling CreateCeilingAtElevation(Document document, Level level, double elevation)
{
XYZ first = new XYZ(0, 0, 0);
XYZ second = new XYZ(20, 0, 0);
XYZ third = new XYZ(20, 15, 0);
XYZ fourth = new XYZ(0, 15, 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));
var ceiling = Ceiling.Create(document, new List<CurveLoop> { profile }, ElementId.InvalidElementId, level.Id);
Parameter param = ceiling.get_Parameter(BuiltInParameter.CEILING_HEIGHTABOVELEVEL_PARAM);
param.Set(elevation);
return ceiling;
}