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.StructureAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic 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
AreaReinforcement
The newly created AreaReinforcement.
ExceptionsException | 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.
|
ExampleAreaReinforcement 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;
}
}
}
if (null == panel)
{
throw new Exception("Can't get AnalyticalModel from the selected wall");
}
IList<Curve> curves = panel.GetOuterContour().ToList();
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);
ElementId defaultRebarBarTypeId = document.GetDefaultElementTypeId(ElementTypeGroup.RebarBarType);
ElementId defaultAreaReinforcementTypeId = document.GetDefaultElementTypeId(ElementTypeGroup.AreaReinforcementType);
ElementId defaultHookTypeId = ElementId.InvalidElementId;
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
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
Throw New Exception("Can't get AnalyticalModel from the selected wall")
End If
Dim curves As IList(Of Curve) = analytical.GetOuterContour().ToList()
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)
Dim defaultRebarBarTypeId As ElementId = document.GetDefaultElementTypeId(ElementTypeGroup.RebarBarType)
Dim defaultAreaReinforcementTypeId As ElementId = document.GetDefaultElementTypeId(ElementTypeGroup.AreaReinforcementType)
Dim defaultHookTypeId As ElementId = ElementId.InvalidElementId
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