AreaReinforcement.Create(Document, Element, IList<Curve>, XYZ, ElementId, ElementId, ElementId)
Method
Description:
Creates a new AreaReinforcement object from an array of curves. This method replaces the NewAreaReinforcement method, which has been deprecated.
Creates a new AreaReinforcement object from an array of curves. This method replaces the NewAreaReinforcement method, which has been deprecated.
Syntax
Examples
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;
}
Parameters
Parameter | Type | Description |
---|---|---|
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 | IList | 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
Type | Description |
---|---|
AreaReinforcement | The newly created AreaReinforcement. |
Exceptions
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. |