AreaReinforcementCreate(Document, Element, IListCurve, XYZ, ElementId, ElementId, ElementId) Method

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
)

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

AreaReinforcement
The newly created AreaReinforcement.
Exceptions
ExceptionCondition
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.
Example
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;
}
See Also