Floor Create(Document, IList Curve |
Creates a new instance of floor within the project.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

public static Floor Create(
Document document,
IList<CurveLoop> profile,
ElementId floorTypeId,
ElementId levelId,
bool isStructural,
Line slopeArrow,
double slope
)
Parameters
- document Document
- The document in which the new floor is created.
- profile IList CurveLoop
- An array of planar curve loops that represent the profile of the floor.
- floorTypeId ElementId
- Id of the floor type to be used by the new Floor.
- levelId ElementId
- Id of the level on which the floor is to be placed.
- isStructural Boolean
- True if new floor should be structural, false if architectural.
- slopeArrow Line
- A line used to control the slope angle of the Floor. It must be horizontal. If slopeArrow is , the horizontal floor will be created.
- slope Double
- The slope angle. If slopeArrow is , this parameter will be ignored.
Return Value
FloorIf successful a new floor object within the project.

Exception | Condition |
---|---|
ArgumentException | The ElementId levelId is not a Level. -or- The floorTypeId does not correspond to a FloorType. -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 . To get default floor type use GetDefaultFloorType(Document, Boolean) .

/// The example below shows how to use Floor.Create method to create a new slopped floor on one level
/// using a geometry profile and a floor type.
/// In this sample, the geometry profile is a CurveLoop of lines, you can also use arcs, ellipses and splines.
Floor CreateSlopedFloor(Document document, Level level)
{
// Get a floor type for floor creation
ElementId floorTypeId = Floor.GetDefaultFloorType(document, false);
// Build a floor profile for the floor creation
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 Floor.Create(document, new List<CurveLoop> { profile }, floorTypeId, level.Id, true, slopeArrow, Math.PI / 2);
}
