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