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: 25.3.0.0 (25.3.0.0)
Syntax
C#
public Form NewLoftForm( bool isSolid, ReferenceArrayArray profiles )
Parameters
- 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
FormIf creation was successful form is are returned.
Example
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; }
VB
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