Revit 2025 API
Area |
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: 25.0.0.0 (25.0.0.0)
Syntax
public static AreaReinforcement Create( Document document, Element hostElement, IList<Curve> curveArray, XYZ majorDirection, ElementId areaReinforcementTypeId, ElementId rebarBarTypeId, ElementId rebarHookTypeId )
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
public: static AreaReinforcement^ Create( Document^ document, Element^ hostElement, IList<Curve^>^ curveArray, XYZ^ majorDirection, ElementId^ areaReinforcementTypeId, ElementId^ rebarBarTypeId, ElementId^ rebarHookTypeId )
static member Create : document : Document * hostElement : Element * curveArray : IList<Curve> * majorDirection : XYZ * areaReinforcementTypeId : ElementId * rebarBarTypeId : ElementId * rebarHookTypeId : ElementId -> AreaReinforcement
Parameters
- document Document
- The document.
- hostElement 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 IListCurve
- An array of curves that will define the outline of the AreaReinforcement.
- majorDirection XYZ
- A vector to define the major direction of the AreaReinforcement.
- areaReinforcementTypeId ElementId
- The id of the AreaReinforcementType.
- rebarBarTypeId ElementId
- The id of the RebarBarType.
- rebarHookTypeId ElementId
- The id of the RebarHookType. If this parameter is InvalidElementId, it means to create a rebar with no hooks.
Return Value
AreaReinforcementThe newly created AreaReinforcement.

Exception | Condition |
---|---|
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. |
ArgumentNullException | A non-optional argument was null |
ArgumentOutOfRangeException | majorDirection has zero length. |
ForbiddenForDynamicUpdateException | This method may not be called during dynamic update. |

AreaReinforcement CreateAreaReinforcementInWall(Wall wall, Autodesk.Revit.DB.Document document) { AnalyticalToPhysicalAssociationManager assocManager = AnalyticalToPhysicalAssociationManager.GetAnalyticalToPhysicalAssociationManager(document); AnalyticalPanel panel = null; if (assocManager != null) { ElementId associatedElementId = assocManager.GetAssociatedElementId(wall.Id); if (associatedElementId != ElementId.InvalidElementId) { Element associatedElem = document.GetElement(associatedElementId); if (associatedElem != null && associatedElem is AnalyticalPanel) { panel = associatedElem as AnalyticalPanel; } } } // Get the wall analytical profile whose curves will define the boundary of the the area reinforcement if (null == panel) { throw new Exception("Can't get AnalyticalModel from the selected wall"); } IList<Curve> curves = panel.GetOuterContour().ToList(); //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; }
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 Autodesk.Revit.DB.Structure.AnalyticalPanel = Nothing Dim relManager As Autodesk.Revit.DB.Structure.AnalyticalToPhysicalAssociationManager = Autodesk.Revit.DB.Structure.AnalyticalToPhysicalAssociationManager.GetAnalyticalToPhysicalAssociationManager(document) If (relManager Is Nothing) Then Throw New Exception("Can't get AnalyticalModel from the selected wall") End If Dim counterpartId As ElementId = relManager.GetAssociatedElementId(wall.Id) If (counterpartId Is Nothing) Then Throw New Exception("Can't get AnalyticalModel from the selected wall") End If analytical = document.GetElement(counterpartId) If analytical Is Nothing Then ' the profile reference can't be retrieved. Throw New Exception("Can't get AnalyticalModel from the selected wall") End If Dim curves As IList(Of Curve) = analytical.GetOuterContour().ToList() '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
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also