FloorCreate(Document, IListCurveLoop, ElementId, ElementId) Method |
Creates a new instance of architectural 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
)
Public Shared Function Create (
document As Document,
profile As IList(Of CurveLoop),
floorTypeId As ElementId,
levelId As ElementId
) As Floor
public:
static Floor^ Create(
Document^ document,
IList<CurveLoop^>^ profile,
ElementId^ floorTypeId,
ElementId^ levelId
)
static member Create :
document : Document *
profile : IList<CurveLoop> *
floorTypeId : ElementId *
levelId : ElementId -> 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.
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-
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 CreateFloor(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, 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 }, floorTypeId, level.Id);
}
Private Function CreateFloor(application As UIApplication, level As Level) As Floor
Dim document As Autodesk.Revit.DB.Document = application.ActiveUIDocument.Document
Dim appCreation As Autodesk.Revit.Creation.Application = application.Application.Create
Dim collector As New FilteredElementCollector(document)
collector.OfClass(GetType(FloorType))
Dim floorType As FloorType = TryCast(collector.FirstElement(), FloorType)
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)
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.
Floor CreateFloorAtElevation(Document document, double elevation)
{
ElementId floorTypeId = Floor.GetDefaultFloorType(document, false);
double offset;
ElementId levelId = Level.GetNearestLevelId(document, elevation, out offset);
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 floor = Floor.Create(document, new List<CurveLoop> { profile }, floorTypeId, levelId);
Parameter param = floor.get_Parameter(BuiltInParameter.FLOOR_HEIGHTABOVELEVEL_PARAM);
param.Set(offset);
return floor;
}
Private Function CreateFloorAtElevation(ByVal document As Document, ByVal elevation As Double) As Floor
Dim floorTypeId As ElementId = Autodesk.Revit.DB.Floor.GetDefaultFloorType(document, False)
Dim offset As Double
Dim levelId = Level.GetNearestLevelId(document, elevation, offset)
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, 15, 0)
Dim fourth As XYZ = New XYZ(0, 15, 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 floor = Autodesk.Revit.DB.Floor.Create(document, New List(Of CurveLoop) From {
profile
}, floorTypeId, levelId)
Dim param As Parameter = floor.Parameter(BuiltInParameter.FLOOR_HEIGHTABOVELEVEL_PARAM)
param.Set(offset)
Return floor
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