Create Method (Document, Element, IList(Curve), XYZ, ElementId, ElementId, ElementId)


Creates a new AreaReinforcement object from an array of curves. This method replaces the NewAreaReinforcement method, which has been deprecated.

Namespace: Autodesk.Revit.DB.Structure
Assembly: RevitAPI (in RevitAPI.dll) Version: 16.0.0.0 (16.0.0.0)
Since: 2015

Syntax

C#
public static AreaReinforcement Create(
	Document document,
	Element hostElement,
	IList<Curve> curveArray,
	XYZ majorDirection,
	ElementId areaReinforcementTypeId,
	ElementId rebarBarTypeId,
	ElementId rebarHookTypeId
)
Visual Basic
Public Shared Function Create ( _
	document As Document, _
	hostElement As Element, _
	curveArray As IList(Of Curve), _
	majorDirection As XYZ, _
	areaReinforcementTypeId As ElementId, _
	rebarBarTypeId As ElementId, _
	rebarHookTypeId As ElementId _
) As AreaReinforcement
Visual C++
public:
static AreaReinforcement^ Create(
	Document^ document, 
	Element^ hostElement, 
	IList<Curve^>^ curveArray, 
	XYZ^ majorDirection, 
	ElementId^ areaReinforcementTypeId, 
	ElementId^ rebarBarTypeId, 
	ElementId^ rebarHookTypeId
)

Parameters

document
Type: Autodesk.Revit.DB Document
The document.
hostElement
Type: Autodesk.Revit.DB Element
The element that will host the AreaReinforcement. The host can be a Structural Floor, Structural Wall, Structural Slab, or a Part created from a structural layer belonging to one of those element types.
curveArray
Type: System.Collections.Generic IList Curve
An array of curves that will define the outline of the AreaReinforcement.
majorDirection
Type: Autodesk.Revit.DB XYZ
A vector to define the major direction of the AreaReinforcement.
areaReinforcementTypeId
Type: Autodesk.Revit.DB ElementId
The id of the AreaReinforcementType.
rebarBarTypeId
Type: Autodesk.Revit.DB ElementId
The id of the RebarBarType.
rebarHookTypeId
Type: Autodesk.Revit.DB ElementId
The id of the RebarHookType. If this parameter is InvalidElementId, it means to create a rebar with no hooks.

Return Value

The newly created AreaReinforcement.

Examples

Copy C#
AreaReinforcement CreateAreaReinforcementInWall(Wall wall, Autodesk.Revit.DB.Document document)
{
    // Get the wall analytical profile whose curves will define the boundary of the the area reinforcement 
    AnalyticalModel analytical = wall.GetAnalyticalModel() as AnalyticalModel;
    if (null == analytical)
    {
        throw new Exception("Can't get AnalyticalModel from the selected wall");
    }

    IList<Curve> curves = analytical.GetCurves(AnalyticalCurveType.ActiveCurves);

    //define the Major Direction of AreaReinforcement,
    //we get direction of first Line on the Wall as the Major Direction
    Line firstLine = (Line)(curves[0]);
    XYZ majorDirection = new XYZ(
        firstLine.GetEndPoint(1).X - firstLine.GetEndPoint(0).X,
        firstLine.GetEndPoint(1).Y - firstLine.GetEndPoint(0).Y,
        firstLine.GetEndPoint(1).Z - firstLine.GetEndPoint(0).Z);

    // Obtain the default types
    ElementId defaultRebarBarTypeId = document.GetDefaultElementTypeId(ElementTypeGroup.RebarBarType);
    ElementId defaultAreaReinforcementTypeId = document.GetDefaultElementTypeId(ElementTypeGroup.AreaReinforcementType);
    ElementId defaultHookTypeId = ElementId.InvalidElementId;

    // Create the area reinforcement
    AreaReinforcement rein = AreaReinforcement.Create(document, wall, curves, majorDirection, defaultAreaReinforcementTypeId, defaultRebarBarTypeId, defaultHookTypeId);

    return rein;
}
Copy VB.NET
Private Function CreateAreaReinforcementInWall(wall As Wall, document As Autodesk.Revit.DB.Document) As AreaReinforcement
    ' Get the wall analytical profile whose curves will define the boundary of the the area reinforcement 
    Dim analytical As AnalyticalModel = TryCast(wall.GetAnalyticalModel(), AnalyticalModel)
    If analytical Is Nothing Then
        Throw New Exception("Can't get AnalyticalModel from the selected wall")
    End If

    Dim curves As IList(Of Curve) = analytical.GetCurves(AnalyticalCurveType.ActiveCurves)

    'define the Major Direction of AreaReinforcement,
    'we get direction of first Line on the Wall as the Major Direction
    Dim firstLine As Line = DirectCast(curves(0), Line)
    Dim majorDirection As New XYZ(firstLine.GetEndPoint(1).X - firstLine.GetEndPoint(0).X, firstLine.GetEndPoint(1).Y - firstLine.GetEndPoint(0).Y, firstLine.GetEndPoint(1).Z - firstLine.GetEndPoint(0).Z)

    ' Obtain the default types
    Dim defaultRebarBarTypeId As ElementId = document.GetDefaultElementTypeId(ElementTypeGroup.RebarBarType)
    Dim defaultAreaReinforcementTypeId As ElementId = document.GetDefaultElementTypeId(ElementTypeGroup.AreaReinforcementType)
    Dim defaultHookTypeId As ElementId = ElementId.InvalidElementId

    ' Create the area reinforcement
    Dim rein As AreaReinforcement = AreaReinforcement.Create(document, wall, curves, majorDirection, defaultAreaReinforcementTypeId, defaultRebarBarTypeId, _
        defaultHookTypeId)

    Return rein
End Function

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentException The input curveArray is empty. -or- The input curveArray contains at least one helical curve and is not supported for this operation. -or- The element hostElement was not found in the given document. -or- the host Element is not a valid host for Area Reinforcement, Path Reinforcement, Fabric Area or Fabric Sheet. -or- Curves in curveArray are not closed and continuous. -or- areaReinforcementTypeId should refer to an AreaReinforcementType element. -or- rebarBarTypeId should refer to an RebarBarType element. -or- rebarHookTypeId should be invalid or refer to an RebarHookType element.
Autodesk.Revit.Exceptions ArgumentNullException A non-optional argument was NULL
Autodesk.Revit.Exceptions ArgumentOutOfRangeException majorDirection has zero length.
Autodesk.Revit.Exceptions DisabledDisciplineException None of the following disciplines is enabled: Structural.
Autodesk.Revit.Exceptions ForbiddenForDynamicUpdateException This method may not be called during dynamic update.

See Also