NewBlend Method


Add a new Blend instance 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 Blend NewBlend(
	bool isSolid,
	CurveArray topProfile,
	CurveArray baseProfile,
	SketchPlane sketchPlane
)
Visual Basic
Public Function NewBlend ( _
	isSolid As Boolean, _
	topProfile As CurveArray, _
	baseProfile As CurveArray, _
	sketchPlane As SketchPlane _
) As Blend
Visual C++
public:
Blend^ NewBlend(
	bool isSolid, 
	CurveArray^ topProfile, 
	CurveArray^ baseProfile, 
	SketchPlane^ sketchPlane
)

Parameters

isSolid
Type: System Boolean
Indicates if the Blend is Solid or Void.
topProfile
Type: Autodesk.Revit.DB CurveArray
The top blend section. It should consist of only one curve loop. The input profile must be in one plane.
baseProfile
Type: Autodesk.Revit.DB CurveArray
The base blend section. It should consist of only one curve loop. The input profile must be in one plane.
sketchPlane
Type: Autodesk.Revit.DB SketchPlane
The sketch plane for the base profile. Use this to associate the base of the blend to geometry from another element. Optional, it can be a null reference ( Nothing in Visual Basic) if you want Revit to derive a new sketch plane from the geometry of the base profile.

Return Value

If creation was successful the new blend is returned, otherwise an exception with failure information will be thrown.

Remarks

This method creates a blend in a family document. The blend will be extended between the two independent pieces of geometry. Revit will determine an appropriate default mapping for the vertices of the two profiles. The two input profiles must be parallel. If the input profile is to be a cyclic profile (curve or ellipse) it must be split into at least two segments, so that Revit can find vertices to use for mapping the blend.

Examples

Copy C#
private Blend CreateBlend(UIApplication application, SketchPlane sketchPlane)
{
    Blend blend = null;

    // make sure we have a family document
    Document familyDocument = application.ActiveUIDocument.Document;
    if (true == familyDocument.IsFamilyDocument)
    {
        // Define top and base profiles for the blend
        CurveArray topProfile = new CurveArray();
        CurveArray baseProfile = new CurveArray();

        // create rectangular base profile
        XYZ p00 = XYZ.Zero;
        XYZ p01 = new XYZ(10, 0, 0);
        XYZ p02 = new XYZ(10, 10, 0);
        XYZ p03 = new XYZ(0, 10, 0);
        Line line01 = Line.CreateBound(p00, p01);
        Line line02 = Line.CreateBound(p01, p02);
        Line line03 = Line.CreateBound(p02, p03);
        Line line04 = Line.CreateBound(p03, p00);

        baseProfile.Append(line01);
        baseProfile.Append(line02);
        baseProfile.Append(line03);
        baseProfile.Append(line04);

        // create rectangular top profile
        XYZ p10 = new XYZ(5, 2, 10);
        XYZ p11 = new XYZ(8, 5, 10);
        XYZ p12 = new XYZ(5, 8, 10);
        XYZ p13 = new XYZ(2, 5, 10);
        Line line11 = Line.CreateBound(p10, p11);
        Line line12 = Line.CreateBound(p11, p12);
        Line line13 = Line.CreateBound(p12, p13);
        Line line14 = Line.CreateBound(p13, p10);

        topProfile.Append(line11);
        topProfile.Append(line12);
        topProfile.Append(line13);
        topProfile.Append(line14);

        // now create solid rectangular blend
        blend = familyDocument.FamilyCreate.NewBlend(true, topProfile, baseProfile, sketchPlane);

        if (null != blend)
        {
            // move to proper place
            XYZ transPoint1 = new XYZ(0, 11, 0);
            ElementTransformUtils.MoveElement(familyDocument, blend.Id, transPoint1);
        }
        else
        {
            throw new Exception("Create new Blend failed.");
        }
    }
    else
    {
        throw new Exception("Please open a Family document before invoking this command.");
    }

    return blend;
}
Copy VB.NET
Private Function CreateBlend(application As UIApplication, sketchPlane As SketchPlane) As Blend
    Dim blend As Blend = Nothing

    ' make sure we have a family document
    Dim familyDocument As Document = application.ActiveUIDocument.Document
    If True = familyDocument.IsFamilyDocument Then
        ' Define top and base profiles for the blend
        Dim topProfile As New CurveArray()
        Dim baseProfile As New CurveArray()

        ' create rectangular base profile
        Dim p00 As XYZ = XYZ.Zero
        Dim p01 As New XYZ(10, 0, 0)
        Dim p02 As New XYZ(10, 10, 0)
        Dim p03 As New XYZ(0, 10, 0)
        Dim line01 As Line = Line.CreateBound(p00, p01)
        Dim line02 As Line = Line.CreateBound(p01, p02)
        Dim line03 As Line = Line.CreateBound(p02, p03)
        Dim line04 As Line = Line.CreateBound(p03, p00)

        baseProfile.Append(line01)
        baseProfile.Append(line02)
        baseProfile.Append(line03)
        baseProfile.Append(line04)

        ' create rectangular top profile
        Dim p10 As New XYZ(5, 2, 10)
        Dim p11 As New XYZ(8, 5, 10)
        Dim p12 As New XYZ(5, 8, 10)
        Dim p13 As New XYZ(2, 5, 10)
        Dim line11 As Line = Line.CreateBound(p10, p11)
        Dim line12 As Line = Line.CreateBound(p11, p12)
        Dim line13 As Line = Line.CreateBound(p12, p13)
        Dim line14 As Line = Line.CreateBound(p13, p10)

        topProfile.Append(line11)
        topProfile.Append(line12)
        topProfile.Append(line13)
        topProfile.Append(line14)

        ' now create solid rectangular blend
        blend = familyDocument.FamilyCreate.NewBlend(True, topProfile, baseProfile, sketchPlane)

        If blend IsNot Nothing Then
            ' move to proper place
            Dim transPoint1 As New XYZ(0, 11, 0)
            ElementTransformUtils.MoveElement(familyDocument, blend.Id, transPoint1)
        Else
            Throw New Exception("Create new Blend failed.")
        End If
    Else
        Throw New Exception("Please open a Family document before invoking this command.")
    End If

    Return blend
End Function

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentException Thrown when the argument is invalid.
Autodesk.Revit.Exceptions InvalidOperationException Thrown when creation is attempted in Conceptual Mass, 2D, or other family where blends cannot be created.
Autodesk.Revit.Exceptions InvalidOperationException Thrown when the creation failed.

See Also