FamilyItemFactoryNewRevolution Method | 
Add a new Revolution instance into the Autodesk Revit family document.
Namespace: Autodesk.Revit.CreationAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic Revolution NewRevolution(
	bool isSolid,
	CurveArrArray profile,
	SketchPlane sketchPlane,
	Line axis,
	double startAngle,
	double endAngle
)
Public Function NewRevolution ( 
	isSolid As Boolean,
	profile As CurveArrArray,
	sketchPlane As SketchPlane,
	axis As Line,
	startAngle As Double,
	endAngle As Double
) As Revolution
public:
Revolution^ NewRevolution(
	bool isSolid, 
	CurveArrArray^ profile, 
	SketchPlane^ sketchPlane, 
	Line^ axis, 
	double startAngle, 
	double endAngle
)
member NewRevolution : 
        isSolid : bool * 
        profile : CurveArrArray * 
        sketchPlane : SketchPlane * 
        axis : Line * 
        startAngle : float * 
        endAngle : float -> Revolution Parameters
- isSolid  Boolean
 - Indicates if the Revolution is Solid or Void.
 - profile  CurveArrArray
 - The profile of the newly created revolution. This may contain
more than one curve loop. Each loop must be a fully closed curve loop and the loops 
must not intersect. All loops 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 revolution.  The direction of revolution
is determined by the normal for the sketch plane.
 - axis  Line
 - The axis of revolution. This axis must lie in the same plane as the curve loops.
 - startAngle  Double
 - The start angle of Revolution in radians.
 - endAngle  Double
 - The end angle of Revolution in radians.
 
Return Value
RevolutionIf creation was successful the new revolution is returned, 
otherwise an exception with failure information will be thrown.
Exceptions
RemarksThis method creates an Revolution in a family document. The Revolution will be 
rotated the plane of the Revolution profile about the Axis. 
Exampleprivate Revolution CreateRevolution(Autodesk.Revit.DB.Document document, SketchPlane sketchPlane)
{
    Revolution revolution = null;
    
    if (true == document.IsFamilyDocument)
    {
        
        CurveArrArray curveArrArray = new CurveArrArray();
        CurveArray curveArray = new CurveArray();
        
        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);
        XYZ pp = new XYZ(1, -1, 0);
        Line axis1 = Line.CreateBound(XYZ.Zero, pp);
        curveArray.Append(line1);
        curveArray.Append(line2);
        curveArray.Append(line3);
        curveArray.Append(line4);
        curveArrArray.Append(curveArray);
        
        revolution = document.FamilyCreate.NewRevolution(true, curveArrArray, sketchPlane, axis1, -Math.PI, 0);
        if (null != revolution)
        {
            
            XYZ transPoint1 = new XYZ(0, 32, 0);
            ElementTransformUtils.MoveElement(document, revolution.Id, transPoint1);
        }
        else
        {
            throw new Exception("Create a new Revolution failed.");
        }
    }
    else
    {
        throw new Exception("Please open a Family document before invoking this command.");
    }
    return revolution;
}Private Function CreateRevolution(document As Autodesk.Revit.DB.Document, sketchPlane As SketchPlane) As Revolution
    Dim revolution As Revolution = Nothing
    
    If True = document.IsFamilyDocument Then
        
        Dim curveArrArray As New CurveArrArray()
        Dim curveArray As New CurveArray()
        
        Dim p0 As XYZ = XYZ.Zero
        Dim p1 As New XYZ(10, 0, 0)
        Dim p2 As New XYZ(10, 10, 0)
        Dim p3 As New XYZ(0, 10, 0)
        Dim line1 As Line = Line.CreateBound(p0, p1)
        Dim line2 As Line = Line.CreateBound(p1, p2)
        Dim line3 As Line = Line.CreateBound(p2, p3)
        Dim line4 As Line = Line.CreateBound(p3, p0)
        Dim pp As New XYZ(1, -1, 0)
        Dim axis1 As Line = Line.CreateBound(XYZ.Zero, pp)
        curveArray.Append(line1)
        curveArray.Append(line2)
        curveArray.Append(line3)
        curveArray.Append(line4)
        curveArrArray.Append(curveArray)
        
        revolution = document.FamilyCreate.NewRevolution(True, curveArrArray, sketchPlane, axis1, -Math.PI, 0)
        If revolution IsNot Nothing Then
            
            Dim transPoint1 As New XYZ(0, 32, 0)
            ElementTransformUtils.MoveElement(document, revolution.Id, transPoint1)
        Else
            Throw New Exception("Create a new Revolution failed.")
        End If
    Else
        Throw New Exception("Please open a Family document before invoking this command.")
    End If
    Return revolution
End FunctionNo 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