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


Creates a new PathReinforcement object from an array of curves. The newly created object will use a default Rebar Shape.

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

Syntax

C#
public static PathReinforcement Create(
	Document document,
	Element hostElement,
	IList<Curve> curveArray,
	bool flip,
	ElementId pathReinforcementTypeId,
	ElementId rebarBarTypeId,
	ElementId startRebarHookTypeId,
	ElementId endRebarHookTypeId
)
Visual Basic
Public Shared Function Create ( _
	document As Document, _
	hostElement As Element, _
	curveArray As IList(Of Curve), _
	flip As Boolean, _
	pathReinforcementTypeId As ElementId, _
	rebarBarTypeId As ElementId, _
	startRebarHookTypeId As ElementId, _
	endRebarHookTypeId As ElementId _
) As PathReinforcement
Visual C++
public:
static PathReinforcement^ Create(
	Document^ document, 
	Element^ hostElement, 
	IList<Curve^>^ curveArray, 
	bool flip, 
	ElementId^ pathReinforcementTypeId, 
	ElementId^ rebarBarTypeId, 
	ElementId^ startRebarHookTypeId, 
	ElementId^ endRebarHookTypeId
)

Parameters

document
Type: Autodesk.Revit.DBDocument
The document.
hostElement
Type: Autodesk.Revit.DBElement
The element that will host the PathReinforcement. 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.GenericIListCurve
An array of curves that will define the outline of the PathReinforcement.
flip
Type: SystemBoolean
A flag controlling the bars relative to the curves.
pathReinforcementTypeId
Type: Autodesk.Revit.DBElementId
The id of the PathReinforcementType.
rebarBarTypeId
Type: Autodesk.Revit.DBElementId
The id of the RebarBarType.
startRebarHookTypeId
Type: Autodesk.Revit.DBElementId
The id of the RebarHookType for the start of the bar. If this parameter is InvalidElementId, it means to create a rebar with no start hook.
endRebarHookTypeId
Type: Autodesk.Revit.DBElementId
The id of the RebarHookType for the end of the bar. If this parameter is InvalidElementId, it means to create a rebar with no end hook.

Return Value

The newly created PathReinforcement.

Remarks

The method sets Rebar Shape of primary bars only.

Examples

CopyC#
PathReinforcement CreatePathReinforcement(Autodesk.Revit.DB.Document document, Wall wall)
{
    // Create a geometry line in the selected wall as the path
    List<Curve> curves = new List<Curve>();
    LocationCurve location = wall.Location as LocationCurve;
    XYZ start = location.Curve.GetEndPoint(0);
    XYZ end = location.Curve.GetEndPoint(1);
    curves.Add(Line.CreateBound(start, end));

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

    // Begin to create the path reinforcement
    PathReinforcement rein = PathReinforcement.Create(document, wall, curves, true, defaultPathReinforcementTypeId, defaultRebarBarTypeId, defaultHookTypeId, defaultHookTypeId);
    if (null == rein)
    {
        throw new Exception("Create path reinforcement failed.");
    }

    // Give the user some information
    TaskDialog.Show("Revit","Create path reinforcement succeed.");

    return rein;
}
CopyVB.NET
Private Function CreatePathReinforcement(document As Autodesk.Revit.DB.Document, wall As Wall) As PathReinforcement
    ' Create a geometry line in the selected wall as the path
    Dim curves As New List(Of Curve)()
    Dim location As LocationCurve = TryCast(wall.Location, LocationCurve)
    Dim start As XYZ = location.Curve.GetEndPoint(0)
    Dim [end] As XYZ = location.Curve.GetEndPoint(1)
    curves.Add(Line.CreateBound(start, [end]))

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

    ' Begin to create the path reinforcement
    Dim rein As PathReinforcement = PathReinforcement.Create(document, wall, curves, True, defaultPathReinforcementTypeId, defaultRebarBarTypeId, _
        defaultHookTypeId, defaultHookTypeId)
    If rein Is Nothing Then
        Throw New Exception("Create path reinforcement failed.")
    End If

    ' Give the user some information
    TaskDialog.Show("Revit", "Create path reinforcement succeed.")

    Return rein
End Function

Exceptions

ExceptionCondition
Autodesk.Revit.ExceptionsArgumentException 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 continuous and open. -or- pathReinforcementTypeId should refer to an Path Reinforcement Type element. -or- rebarBarTypeId should refer to an RebarBarType element. -or- startRebarHookTypeId should be invalid or refer to an RebarHookType element. -or- endRebarHookTypeId should be invalid or refer to an RebarHookType element.
Autodesk.Revit.ExceptionsArgumentNullException A non-optional argument was null
Autodesk.Revit.ExceptionsForbiddenForDynamicUpdateException This method may not be called during dynamic update.

See Also

ArchiLabs

Stop fighting Revit automation.

Build repeatable BIM design and documentation workflows with scripts, data, and AI in one place, without wrestling brittle one-off automations.

Try ArchiLabs →