RVTDocs.com

FamilyItemFactory.NewLoftForm

Method
Description:
Create new Form element by Loft operation, and add it into the Autodesk Revit family document.
Syntax
public Form NewLoftForm(
	bool isSolid,
	ReferenceArrayArray profiles
)
Examples
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;
}
Parameters
Parameter Type Description
isSolid Boolean Indicates if the Form is Solid or Void.
profiles ReferenceArrayArray The profile set of the newly created loft. Each profile should consist of only one curve loop.
Return Value
Type Description
Form If creation was successful form is are returned.