FamilyItemFactory.NewExtrusion
Add a new Extrusion instance into the Autodesk Revit family document.
Namespace: Autodesk.Revit.Creation
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public Extrusion NewExtrusion( bool isSolid, CurveArrArray profile, SketchPlane sketchPlane, double end)
Parameters
isSolidBoolean
Indicates if the Extrusion is Solid or Void.
profile CurveArrArray
The profile of the newly created Extrusion. This may contain more than one curve loop. Each loop must be a fully closed curve loop and the loops may not intersect. All input curves must lie in the same plane. The loop can be a unbound circle or ellipse, but its geometry will be split in two in order to satisfy requirements for sketches used in extrusions.
sketchPlane SketchPlane
The sketch plane for the extrusion. The direction of extrusion is determined by the normal for the sketch plane. To extrude in the other direction set the end value to negative.
endDouble
The length of the extrusion.
Return Value
Extrusion
If creation was successful the new Extrusion is returned, otherwise an exception with failure information will be thrown.
Exceptions
Exception
Condition
ArgumentException
Thrown when the input argument-profile-is . or empty array.
ArgumentNullException
Thrown when the input argument-sketchPlane-is ..
ArgumentException
Thrown when the input argument-sketchPlane-is an invalid sketch plane.
InvalidOperationException
Thrown when the creation failed.
Remarks
This method creates an extrusion in a family document. The extrusion will be extended perpendicular to the sketch plane of the extrusion profile.
Example
private Extrusion CreateExtrusion(Autodesk.Revit.DB.Document document, SketchPlane sketchPlane){ Extrusion rectExtrusion = null;
// make sure we have a family document if (true == document.IsFamilyDocument) { // define the profile for the extrusion CurveArrArray curveArrArray = new CurveArrArray(); CurveArray curveArray1 = new CurveArray(); CurveArray curveArray2 = new CurveArray(); CurveArray curveArray3 = new CurveArray();
// create a rectangular profile XYZ p0 = XYZ.Zero; XYZ p1 = new XYZ(10, 0, 0); XYZ p2 = new XYZ(10, 10, 0); XYZ p3 = new XYZ(0, 10, 0); Line line1 = Line.CreateBound(p0, p1); Line line2 = Line.CreateBound(p1, p2); Line line3 = Line.CreateBound(p2, p3); Line line4 = Line.CreateBound(p3, p0); curveArray1.Append(line1); curveArray1.Append(line2); curveArray1.Append(line3); curveArray1.Append(line4);
curveArrArray.Append(curveArray1);
// create solid rectangular extrusion rectExtrusion = document.FamilyCreate.NewExtrusion(true, curveArrArray, sketchPlane, 10);
if (null != rectExtrusion) { // move extrusion to proper place XYZ transPoint1 = new XYZ(-16, 0, 0); ElementTransformUtils.MoveElement(document, rectExtrusion.Id, transPoint1); } else { throw new Exception("Create new Extrusion failed."); } } else { throw new Exception("Please open a Family document before invoking this command."); }
return rectExtrusion;}