NewLoftForm Method


Create new Form element by Loft operation, and add it into the Autodesk Revit family document.

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

Syntax

C#
public Form NewLoftForm(
	bool isSolid,
	ReferenceArrayArray profiles
)
Visual Basic
Public Function NewLoftForm ( _
	isSolid As Boolean, _
	profiles As ReferenceArrayArray _
) As Form
Visual C++
public:
Form^ NewLoftForm(
	bool isSolid, 
	ReferenceArrayArray^ profiles
)

Parameters

isSolid
Type: System Boolean
Indicates if the Form is Solid or Void.
profiles
Type: Autodesk.Revit.DB ReferenceArrayArray
The profile set of the newly created loft. Each profile should consist of only one curve loop.

Return Value

If creation was successful form is are returned.

Examples

Copy C#
private Form CreateLoftForm(Autodesk.Revit.DB.Document document)
{
    Form loftForm = null;

    ReferencePointArray rpa = new ReferencePointArray();
    ReferenceArrayArray ref_ar_ar = new ReferenceArrayArray();
    ReferenceArray ref_ar = new ReferenceArray();
    ReferencePoint rp = null;
    XYZ xyz = null;

    // make first profile curve for loft
    xyz = document.Application.Create.NewXYZ(0, 0, 0);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    xyz = document.Application.Create.NewXYZ(0, 50, 10);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    xyz = document.Application.Create.NewXYZ(0, 100, 0);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    CurveByPoints cbp = document.FamilyCreate.NewCurveByPoints(rpa);
    ref_ar.Append(cbp.GeometryCurve.Reference);
    ref_ar_ar.Append(ref_ar);
    rpa.Clear();
    ref_ar = new ReferenceArray();

    // make second profile curve for loft
    xyz = document.Application.Create.NewXYZ(50, 0, 0);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    xyz = document.Application.Create.NewXYZ(50, 50, 30);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    xyz = document.Application.Create.NewXYZ(50, 100, 0);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    cbp = document.FamilyCreate.NewCurveByPoints(rpa);
    ref_ar.Append(cbp.GeometryCurve.Reference);
    ref_ar_ar.Append(ref_ar);
    rpa.Clear();
    ref_ar = new ReferenceArray();

    // make third profile curve for loft
    xyz = document.Application.Create.NewXYZ(75, 0, 0);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    xyz = document.Application.Create.NewXYZ(75, 50, 5);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    xyz = document.Application.Create.NewXYZ(75, 100, 0);
    rp = document.FamilyCreate.NewReferencePoint(xyz);
    rpa.Append(rp);

    cbp = document.FamilyCreate.NewCurveByPoints(rpa);
    ref_ar.Append(cbp.GeometryCurve.Reference);
    ref_ar_ar.Append(ref_ar);

    loftForm = document.FamilyCreate.NewLoftForm(true, ref_ar_ar);

    return loftForm;
}
Copy VB.NET
Private Function CreateLoftForm(document As Autodesk.Revit.DB.Document) As Form
    Dim loftForm As Form = Nothing

    Dim rpa As New ReferencePointArray()
    Dim ref_ar_ar As New ReferenceArrayArray()
    Dim ref_ar As New ReferenceArray()
    Dim rp As ReferencePoint = Nothing
    Dim xyz As XYZ = Nothing

    ' make first profile curve for loft
    xyz = document.Application.Create.NewXYZ(0, 0, 0)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    xyz = document.Application.Create.NewXYZ(0, 50, 10)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    xyz = document.Application.Create.NewXYZ(0, 100, 0)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    Dim cbp As CurveByPoints = document.FamilyCreate.NewCurveByPoints(rpa)
    ref_ar.Append(cbp.GeometryCurve.Reference)
    ref_ar_ar.Append(ref_ar)
    rpa.Clear()
    ref_ar = New ReferenceArray()

    ' make second profile curve for loft
    xyz = document.Application.Create.NewXYZ(50, 0, 0)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    xyz = document.Application.Create.NewXYZ(50, 50, 30)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    xyz = document.Application.Create.NewXYZ(50, 100, 0)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    cbp = document.FamilyCreate.NewCurveByPoints(rpa)
    ref_ar.Append(cbp.GeometryCurve.Reference)
    ref_ar_ar.Append(ref_ar)
    rpa.Clear()
    ref_ar = New ReferenceArray()

    ' make third profile curve for loft
    xyz = document.Application.Create.NewXYZ(75, 0, 0)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    xyz = document.Application.Create.NewXYZ(75, 50, 5)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    xyz = document.Application.Create.NewXYZ(75, 100, 0)
    rp = document.FamilyCreate.NewReferencePoint(xyz)
    rpa.Append(rp)

    cbp = document.FamilyCreate.NewCurveByPoints(rpa)
    ref_ar.Append(cbp.GeometryCurve.Reference)
    ref_ar_ar.Append(ref_ar)

    loftForm = document.FamilyCreate.NewLoftForm(True, ref_ar_ar)

    Return loftForm
End Function

See Also

ArchiLabs Desktop

Put AI to work inside Revit.

Give Desktop your instructions and project files to build Revit families, update model elements, and create views and schedules. Works directly in Revit and AutoCAD.

Explore Desktop →