NewSweep Method (Boolean, CurveArray, SketchPlane, SweepProfile, Int32, ProfilePlaneLocation)


Adds a new sweep form to the family document, using a path of curve elements.

Namespace: Autodesk.Revit.Creation
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)

Syntax

C#
public Sweep NewSweep(
	bool isSolid,
	CurveArray path,
	SketchPlane pathPlane,
	SweepProfile profile,
	int profileLocationCurveIndex,
	ProfilePlaneLocation profilePlaneLocation
)
Visual Basic
Public Function NewSweep ( _
	isSolid As Boolean, _
	path As CurveArray, _
	pathPlane As SketchPlane, _
	profile As SweepProfile, _
	profileLocationCurveIndex As Integer, _
	profilePlaneLocation As ProfilePlaneLocation _
) As Sweep
Visual C++
public:
Sweep^ NewSweep(
	bool isSolid, 
	CurveArray^ path, 
	SketchPlane^ pathPlane, 
	SweepProfile^ profile, 
	int profileLocationCurveIndex, 
	ProfilePlaneLocation profilePlaneLocation
)

Parameters

isSolid
Type: System Boolean
Indicates if the Sweep is Solid or Void.
path
Type: Autodesk.Revit.DB CurveArray
The path of the sweep. The path should be 2D, where all input curves lie in one plane, and the curves are not required to reference existing geometry.
pathPlane
Type: Autodesk.Revit.DB SketchPlane
The sketch plane for the path. Use this when you want to create a 2D path that resides on an existing planar face. Optional, can be a null reference ( Nothing in Visual Basic) for 3D paths or for 2D paths where the path should not reference an existing face.
profile
Type: Autodesk.Revit.DB SweepProfile
The profile of the newly created Sweep. This may contain more than one curve loop or a profile family. The profile must lie in the XY plane, and it will be transformed to the profile plane automatically. Each loop must be a fully closed curve loop and the loops must not intersect. 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.
profileLocationCurveIndex
Type: System Int32
The index of the path curves. The curve upon which the profile plane will be determined.
profilePlaneLocation
Type: Autodesk.Revit.DB ProfilePlaneLocation
The location on the profileLocationCurve where the profile plane will be determined.

Return Value

If creation was successful the new Sweep is returned, otherwise an exception with failure information will be thrown.

Remarks

This method creates a sweep in a family document. The sweep will trace the profile along the path.

Examples

Copy C#
private Sweep CreateSweep(Autodesk.Revit.DB.Document document, SketchPlane sketchPlane)
{
    Sweep sweep = null;

    // make sure we have a family document
    if (true == document.IsFamilyDocument)
    {
        // Define a profile for the sweep
        CurveArrArray arrarr = new CurveArrArray();
        CurveArray arr = new CurveArray();

        // Create an ovoid profile
        XYZ pnt1 = new XYZ(0, 0, 0);
        XYZ pnt2 = new XYZ(2, 0, 0);
        XYZ pnt3 = new XYZ(1, 1, 0);
        arr.Append(Arc.Create(pnt2, 1.0d, 0.0d, 180.0d, XYZ.BasisX, XYZ.BasisY));
        arr.Append(Arc.Create(pnt1, pnt3, pnt2));
        arrarr.Append(arr);
        SweepProfile profile = document.Application.Create.NewCurveLoopsProfile(arrarr);

        // Create a path for the sweep
        XYZ pnt4 = new XYZ(10, 0, 0);
        XYZ pnt5 = new XYZ(0, 10, 0);
        Curve curve = Line.CreateBound(pnt4, pnt5);

        CurveArray curves = new CurveArray();
        curves.Append(curve);

        // create a solid ovoid sweep
        sweep = document.FamilyCreate.NewSweep(true, curves, sketchPlane, profile, 0, ProfilePlaneLocation.Start);

        if (null != sweep)
        {
            // move to proper place
            XYZ transPoint1 = new XYZ(11, 0, 0);
            ElementTransformUtils.MoveElement(document, sweep.Id, transPoint1);
        }
        else
        {
            throw new Exception("Failed to create a new Sweep.");
        }
    }
    else
    {
        throw new Exception("Please open a Family document before invoking this command.");
    }

    return sweep;
}
Copy VB.NET
Private Function CreateSweep(document As Autodesk.Revit.DB.Document, sketchPlane As SketchPlane) As Sweep
    Dim sweep As Sweep = Nothing

    ' make sure we have a family document
    If True = document.IsFamilyDocument Then
        ' Define a profile for the sweep
        Dim arrarr As New CurveArrArray()
        Dim arr As New CurveArray()

        ' Create an ovoid profile
        Dim pnt1 As New XYZ(0, 0, 0)
        Dim pnt2 As New XYZ(2, 0, 0)
        Dim pnt3 As New XYZ(1, 1, 0)
        arr.Append(Arc.Create(pnt2, 1.0, 0.0, 180.0, XYZ.BasisX, XYZ.BasisY))
        arr.Append(Arc.Create(pnt1, pnt3, pnt2))
        arrarr.Append(arr)
        Dim profile As SweepProfile = document.Application.Create.NewCurveLoopsProfile(arrarr)

        ' Create a path for the sweep
        Dim pnt4 As New XYZ(10, 0, 0)
        Dim pnt5 As New XYZ(0, 10, 0)
        Dim curve As Curve = Line.CreateBound(pnt4, pnt5)

        Dim curves As New CurveArray()
        curves.Append(curve)

        ' create a solid ovoid sweep
        sweep = document.FamilyCreate.NewSweep(True, curves, sketchPlane, profile, 0, ProfilePlaneLocation.Start)

        If sweep IsNot Nothing Then
            ' move to proper place
            Dim transPoint1 As New XYZ(11, 0, 0)
            ElementTransformUtils.MoveElement(document, sweep.Id, transPoint1)
        Else
            Throw New Exception("Failed to create a new Sweep.")
        End If
    Else
        Throw New Exception("Please open a Family document before invoking this command.")
    End If

    Return sweep
End Function

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentException Thrown when the input argument-path-is a null reference ( Nothing in Visual Basic) or empty.
Autodesk.Revit.Exceptions ArgumentNullException Thrown when the input argument-profile-is a null reference ( Nothing in Visual Basic) .
Autodesk.Revit.Exceptions ArgumentOutOfRangeException Thrown when the input argument-profileLocationCurveIndex-is out of index bounds.
Autodesk.Revit.Exceptions ArgumentOutOfRangeException Thrown when the input argument-profilePlaneLocation-does not exist in the ProfilePlaneLocation enumeration.
Autodesk.Revit.Exceptions InvalidOperationException Thrown when creation is attempted in Conceptual Mass, 2D, or other family where sweeps cannot be created.
Autodesk.Revit.Exceptions InvalidOperationException Thrown when the creation failed.

See Also