Creates a new instance of floor within the project.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 22.0.0.0 (22.1.0.0)
Since: 2022
Syntax
C# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
Parameters
- document
- Type: Autodesk.Revit.DB Document
The document in which the new floor is created.
- profile
- Type: System.Collections.Generic IList CurveLoop
An array of planar curve loops that represent the profile of the floor.
- floorTypeId
- Type: Autodesk.Revit.DB ElementId
Id of the floor type to be used by the new Floor.
- levelId
- Type: Autodesk.Revit.DB ElementId
Id of the level on which the floor is to be placed.
- isStructural
- Type: System Boolean
True if new floor should be structural, false if architectural.
- slopeArrow
- Type: Autodesk.Revit.DB Line
A line used to control the slope angle of the Floor. It must be horizontal. If slopeArrow is a null reference ( Nothing in Visual Basic) , the horizontal floor will be created.
- slope
- Type: System Double
The slope angle. If slopeArrow is a null reference ( Nothing in Visual Basic) , this parameter will be ignored.
Return Value
If successful a new floor object within the project.Remarks
To validate curve loop profile use BoundaryValidation . To get default floor type use GetDefaultFloorType(Document, Boolean) .
Examples

Floor CreateFloor(UIApplication application, Level level)
{
// Get the Revit document
Autodesk.Revit.DB.Document document = application.ActiveUIDocument.Document;
// Get a floor type for floor creation
FilteredElementCollector collector = new FilteredElementCollector(document);
collector.OfClass(typeof(FloorType));
FloorType floorType = collector.FirstElement() as FloorType;
// 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, 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));
return Floor.Create(document, new List<CurveLoop> { profile }, floorType.Id, level.Id, true, null, 0.0);
}

Floor CreateFloor(UIApplication application, Level level)
{
// Get the Revit document
Autodesk.Revit.DB.Document document = application.ActiveUIDocument.Document;
// Get a floor type for floor creation
FilteredElementCollector collector = new FilteredElementCollector(document);
collector.OfClass(typeof(FloorType));
FloorType floorType = collector.FirstElement() as FloorType;
// 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, 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));
return Floor.Create(document, new List<CurveLoop> { profile }, floorType.Id, level.Id, true, null, 0.0);
}

Private Function CreateFloor(application As UIApplication, level As Level) As Floor
' Get the Revit document
Dim document As Autodesk.Revit.DB.Document = application.ActiveUIDocument.Document
' Get the application creation object
Dim appCreation As Autodesk.Revit.Creation.Application = application.Application.Create
' Get a floor type for floor creation
Dim collector As New FilteredElementCollector(document)
collector.OfClass(GetType(FloorType))
Dim floorType As FloorType = TryCast(collector.FirstElement(), FloorType)
' Build a floor profile for the floor creation
Dim first As New XYZ(0, 0, 0)
Dim second As New XYZ(20, 0, 0)
Dim third As New XYZ(20, 15, 0)
Dim fourth As New XYZ(0, 15, 0)
Dim profile As 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))
Return Floor.Create(document, New List(Of CurveLoop)({profile}), floorType.Id, level.Id, True, Nothing, 0.0)
End Function
Exceptions
Exception | Condition |
---|---|
Autodesk.Revit.Exceptions 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. |
Autodesk.Revit.Exceptions ArgumentNullException | A non-optional argument was null |
Autodesk.Revit.Exceptions InvalidOperationException | Cannot generate a sketch. -or- Failed to create new element. |
Autodesk.Revit.Exceptions 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. |
Autodesk.Revit.Exceptions ModificationOutsideTransactionException | The document has no open transaction. |