FamilyItemFactoryNewExtrusionForm Method |
Create new Form element by Extrude operation, and add it into the Autodesk Revit family document.
Namespace: Autodesk.Revit.CreationAssembly: RevitAPI (in RevitAPI.dll) Version: 27.0.4.0 (27.0.4.0)
Syntaxpublic Form NewExtrusionForm(
bool isSolid,
ReferenceArray profile,
XYZ direction
)
Public Function NewExtrusionForm (
isSolid As Boolean,
profile As ReferenceArray,
direction As XYZ
) As Form
public:
Form^ NewExtrusionForm(
bool isSolid,
ReferenceArray^ profile,
XYZ^ direction
)
member NewExtrusionForm :
isSolid : bool *
profile : ReferenceArray *
direction : XYZ -> Form Parameters
- isSolid Boolean
- Indicates if the Form is Solid or Void.
- profile ReferenceArray
- The profile of extrusion. It should consist of only one curve loop.
- direction XYZ
- The direction of extrusion, with its length the length of the extrusion. The direction must be perpendicular to the plane determined by profile. The length of vector must be non-zero.
Return Value
FormIf creation was successful new form is returned.
Exceptions| Exception | Condition |
|---|
| InvalidOperationException |
Thrown when creation is attempted in Conceptual Mass, 2D, or other family where extrusions cannot be created.
|
Exampleprivate Form CreateExtrusionForm(Autodesk.Revit.DB.Document document)
{
Form extrusionForm = null;
ReferenceArray ref_ar = new ReferenceArray();
XYZ ptA = new XYZ(10, 10, 0);
XYZ ptB = new XYZ(90, 10, 0);
ModelCurve modelcurve = MakeLine(document, ptA, ptB);
ref_ar.Append(modelcurve.GeometryCurve.Reference);
ptA = new XYZ(90, 10, 0);
ptB = new XYZ(10, 90, 0);
modelcurve = MakeLine(document, ptA, ptB);
ref_ar.Append(modelcurve.GeometryCurve.Reference);
ptA = new XYZ(10, 90, 0);
ptB = new XYZ(10, 10, 0);
modelcurve = MakeLine(document, ptA, ptB);
ref_ar.Append(modelcurve.GeometryCurve.Reference);
XYZ direction = new XYZ(0, 0, 50);
extrusionForm = document.FamilyCreate.NewExtrusionForm(true, ref_ar, direction);
int profileCount = extrusionForm.ProfileCount;
return extrusionForm;
}
public ModelCurve MakeLine(Document doc, XYZ ptA, XYZ ptB)
{
Autodesk.Revit.ApplicationServices.Application app = doc.Application;
Line line = Line.CreateBound(ptA, ptB);
XYZ norm = ptA.CrossProduct(ptB);
if (norm.IsZeroLength()) norm = XYZ.BasisZ;
Plane plane = Plane.CreateByNormalAndOrigin(norm, ptB);
SketchPlane skplane = SketchPlane.Create(doc, plane);
ModelCurve modelcurve = doc.FamilyCreate.NewModelCurve(line, skplane);
return modelcurve;
}
See Also