FloorCreate(Document, IListCurveLoop, ElementId, ElementId, Boolean, Line, Double) Method |
Creates a new instance of floor within the project.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic static Floor Create(
Document document,
IList<CurveLoop> profile,
ElementId floorTypeId,
ElementId levelId,
bool isStructural,
Line slopeArrow,
double slope
)
Public Shared Function Create (
document As Document,
profile As IList(Of CurveLoop),
floorTypeId As ElementId,
levelId As ElementId,
isStructural As Boolean,
slopeArrow As Line,
slope As Double
) As Floor
public:
static Floor^ Create(
Document^ document,
IList<CurveLoop^>^ profile,
ElementId^ floorTypeId,
ElementId^ levelId,
bool isStructural,
Line^ slopeArrow,
double slope
)
static member Create :
document : Document *
profile : IList<CurveLoop> *
floorTypeId : ElementId *
levelId : ElementId *
isStructural : bool *
slopeArrow : Line *
slope : float -> Floor
Parameters
- document Document
-
The document in which the new floor is created.
- profile IListCurveLoop
-
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
Floor
If successful a new floor object within the project.
ExceptionsException | 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.
|
Remarks
Example
Floor CreateSlopedFloor(Document document, Level level)
{
ElementId floorTypeId = Floor.GetDefaultFloorType(document, false);
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);
}
Private Function CreateSlopedFloor(ByVal document As Document, ByVal level As Level) As Floor
Dim floorTypeId As ElementId = Floor.GetDefaultFloorType(document, False)
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 Floor.Create(document, New List(Of CurveLoop) From {
profile
}, floorTypeId, level.Id, True, 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