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# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
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