Rebar Class

Represents a rebar element in Autodesk Revit.
Inheritance Hierarchy
SystemObject
  Autodesk.Revit.DBElement
    Autodesk.Revit.DB.StructureRebar

Namespace: Autodesk.Revit.DB.Structure
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public class Rebar : Element

The Rebar type exposes the following members.

Properties
 NameDescription
Public propertyAssemblyInstanceId The id of the assembly instance to which the element belongs.
(Inherited from Element)
Public propertyCode exampleBoundingBoxRetrieves a box that circumscribes all geometry of the element.
(Inherited from Element)
Public propertyCanHaveVaryingLengthBars Identifies if a set can have varying length bars or not.
Public propertyCategoryRetrieves a Category object that represents the category or sub category in which the element resides.
(Inherited from Element)
Public propertyCode exampleCreatedPhaseId Id of a Phase at which the Element was created.
(Inherited from Element)
Public propertyCode exampleDemolishedPhaseId Id of a Phase at which the Element was demolished.
(Inherited from Element)
Public propertyCode exampleDesignOptionReturns the design option to which the element belongs.
(Inherited from Element)
Public propertyDistributionTypeObsolete.
The type of rebar distribution(also known as Rebar Set Type).
Public propertyDocumentReturns the Document in which the Element resides.
(Inherited from Element)
Public propertyCode exampleGeometryRetrieves the geometric representation of the element.
(Inherited from Element)
Public propertyGroupId The id of the group to which an element belongs.
(Inherited from Element)
Public propertyHasVariableLengthBars Identifies if a set has varying length bars or not.
Public propertyCode exampleId A unique identifier for an Element in an Autodesk Revit project.
(Inherited from Element)
Public propertyIncludeFirstBar Identifies if the first bar in rebar set is shown.
Public propertyIncludeLastBar Identifies if the last bar in rebar set is shown.
Public propertyIsModifiable Identifies if the element is modifiable.
(Inherited from Element)
Public propertyIsTransient Indicates whether an element is transient or permanent.
(Inherited from Element)
Public propertyIsValidObject Specifies whether the .NET object represents a valid Revit entity.
(Inherited from Element)
Public propertyLayoutRule Identifies the layout rule of rebar set.
Public propertyLevelId The id of the level associated with the element.
(Inherited from Element)
Public propertyCode exampleLocationThis property is used to find the physical location of an element within a project.
(Inherited from Element)
Public propertyMaxSpacing Identifies the maximum spacing between rebar in rebar set.
Public propertyNameA human readable name for the Element.
(Inherited from Element)
Public propertyNumberOfBarPositions The number of potential bars in the set.
Public propertyOwnerViewId The id of the view that owns the element.
(Inherited from Element)
Public propertyCode exampleParameterBuiltInParameterRetrieves a parameter from the element given a parameter id.
(Inherited from Element)
Public propertyParameterDefinitionRetrieves a parameter from the element based on its definition.
(Inherited from Element)
Public propertyParameterGuidRetrieves a parameter from the element given a GUID for a shared parameter.
(Inherited from Element)
Public propertyCode exampleParametersRetrieves a set containing all of the parameters that are contained within the element.
(Inherited from Element)
Public propertyParametersMapRetrieves a map containing all of the parameters that are contained within the element.
(Inherited from Element)
Public propertyPinned Identifies if the element has been pinned to prevent changes.
(Inherited from Element)
Public propertyQuantity Identifies the number of bars in rebar set.
Public propertyReadOnlyParameters When set to true, Rebar will report all its parameters as read only. For example, the method Parameter::IsReadOnly() for all Rebar Parameters will return true. When set to false, the return value of Parameter::IsReadOnly() will not be affected.
Public propertyScheduleMark The Schedule Mark parameter. On creation, the Schedule Mark is set to a value that is unique to the host, but it can be set to any value.
Public propertyTotalLength The length of an individual bar multiplied by Quantity.
Public propertyCode exampleUniqueId A stable unique identifier for an element within the document.
(Inherited from Element)
Public propertyVersionGuid Get the element version Guid.
(Inherited from Element)
Public propertyViewSpecific Identifies if the element is owned by a view.
(Inherited from Element)
Public propertyVolume The volume of an individual bar multiplied by Quantity.
Public propertyWorksetId Get Id of the Workset which owns the element.
(Inherited from Element)
Top
Methods
 NameDescription
Public methodArePhasesModifiable Returns true if the properties CreatedPhaseId and DemolishedPhaseId can be modified for this Element.
(Inherited from Element)
Public methodCanApplyPresentationMode Checks if a presentation mode can be applied for this rebar in the given view.
Public methodCanBeHiddenIndicates if the element can be hidden in the view.
(Inherited from Element)
Public methodCanBeLocked Identifies if the element can be locked.
(Inherited from Element)
Public methodCanBeMatchedWithMultipleShapes Checks if this Rebar can be matched with multiple Rebar Shapes.
Public methodCanDeleteSubelement Checks if given subelement can be removed from the element.
(Inherited from Element)
Public methodCanHaveTypeAssigned Identifies if the element can have a type assigned.
(Inherited from Element)
Public methodCanSuppressFirstOrLastBar Checks if the first or last bar in rebar set can be hidden in the given view.
Public methodCanUseHookType Checks if the specified RebarHookType id is of a valid RebarHookType for the Rebar's RebarBarType
Public methodChangeTypeId(ElementId) Changes the type of the element.
(Inherited from Element)
Public methodClearPresentationMode Sets the presentation mode for this rebar set to the default (either for a single view, or for all views).
Public methodConstraintsCanBeEdited

For ShapeDriven Rebar: returns true, if the Rebar element's external constraints are available for editing using the RebarConstraintsManager class. It will return false if Rebar is in Group

For FreeForm rebar: constraints can be edited if there is a valid external server Guid assigned to that Rebar

Public methodStatic memberContainsValidArcRadiiForStyleAndBarType Checks that all arcs in the chain of curves have radii that are not less than minimum bend radius for bar type and style
Public methodStatic memberCreateFreeForm(Document, Guid, RebarBarType, Element) Creates a free form rebar that can have constraints.
Public methodStatic memberCreateFreeForm(Document, RebarBarType, Element, IListCurveLoop, RebarFreeFormValidationResult) Creates a free form rebar that will be unconstrained. Constraints can't be added later to this rebar.
Public methodStatic memberCreateFreeForm(Document, RebarBarType, Element, IListIListCurve, RebarFreeFormValidationResult) Creates a free form rebar that will be unconstrained. Constraints can't be added later to this rebar.
Public methodStatic memberCode exampleCreateFromCurves(Document, RebarStyle, RebarBarType, RebarHookType, RebarHookType, Element, XYZ, IListCurve, RebarHookOrientation, RebarHookOrientation, Boolean, Boolean) Creates a new instance of a shape driven Rebar element within the project.
Public methodStatic memberCreateFromCurves(Document, RebarStyle, RebarBarType, RebarHookType, RebarHookType, Element, XYZ, IListCurve, RebarHookOrientation, RebarHookOrientation, Double, Double, ElementId, ElementId, Boolean, Boolean) Creates a new instance of a shape driven Rebar element within the project.
Public methodStatic memberCreateFromCurvesAndShape(Document, RebarShape, RebarBarType, RebarHookType, RebarHookType, Element, XYZ, IListCurve, RebarHookOrientation, RebarHookOrientation) Creates a new instance of a shape driven Rebar element within the project. The instance will have the default shape parameters from the RebarShape. If the RebarShapeDefinesHooks flag in ReinforcementSettings has been set to true, then both the curves and hooks must match the RebarShape definition. Otherwise, the hooks can be different than the defaults specified in the RebarShape
Public methodStatic memberCreateFromCurvesAndShape(Document, RebarShape, RebarBarType, RebarHookType, RebarHookType, Element, XYZ, IListCurve, RebarHookOrientation, RebarHookOrientation, Double, Double, ElementId, ElementId) Creates a new instance of a shape driven Rebar element within the project. The instance will have the default shape parameters from the RebarShape. If the RebarShapeDefinesHooks flag in ReinforcementSettings has been set to true, then curves, hook types and hook rotation angles should match the rebar shape definition. Otherwise, the hooks can be different than the defaults specified in the RebarShape. If the RebarShapeDefinesEndTreatment flag in ReinforcementSettings has been set to true, then curves and end treatment types should match the rebar shape definition. Otherwise, the end treatment types can be different than the defaults specified in the RebarShape.
Public methodStatic memberCode exampleCreateFromRebarShape Creates a new shape driven Rebar, as an instance of a RebarShape. The instance will have the default shape parameters from the RebarShape, and its location is based on the bounding box of the shape in the shape definition. Hooks are removed from the shape before computing its bounding box. If appropriate hooks can be found in the document, they will be assigned arbitrarily.
Public methodDeleteEntity Deletes the existing entity created by %schema% in the element
(Inherited from Element)
Public methodDeleteSubelement Removes a subelement from the element.
(Inherited from Element)
Public methodDeleteSubelements Removes the subelements from the element.
(Inherited from Element)
Public methodDispose
(Inherited from Element)
Public methodDoesBarExistAtPosition Checks whether a bar is included at the specified position.
Public methodEnableHookLengthOverride Enables or disables the ability to override hook lengths for this rebar instance.
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Public methodEvaluateAllParameterValues Evaluates all the parameters' values of the element.
(Inherited from Element)
Public methodEvaluateParameterValues Evaluate the parameters' values of the element on the given parameter ID set.
(Inherited from Element)
Public methodFindMatchingPredefinedPresentationMode Determines if there is a matching RebarPresentationMode for the current set of selected hidden and unhidden bars assigned to the given view.
Public methodGetAllRebarShapeIds Gets the ids of the RebarShapes elements that defines the shapes of the rebar.
Public methodGetBarIndexFromReference Given a reference that represents a part of a bar, this method will return the bar index.
Public methodGetBendData Gets the RebarBendData, containing bar and hook information, of the instance.
Public methodGetCenterlineCurves A chain of curves representing the centerline of the rebar.
Public methodGetCouplerId Get the id of the Rebar Coupler that is applied to the rebar at the specified end.
Public methodGetDependentElements Get all elements that, from a logical point of view, are the children of this Element.
(Inherited from Element)
Public methodCode exampleGetEndTreatmentTypeId Get the id of the EndTreatmentType to be applied to the rebar.
Public methodGetEntity Returns the existing entity corresponding to the Schema if it has been saved in the Element, or an invalid entity otherwise.
(Inherited from Element)
Public methodGetEntitySchemaGuids Returns the Schema guids of any Entities stored in this element.
(Inherited from Element)
Public methodGetExternalFileReference Gets information pertaining to the external file referenced by the element.
(Inherited from Element)
Public methodGetExternalResourceReference Gets the ExternalResourceReference associated with a specified external resource type.
(Inherited from Element)
Public methodGetExternalResourceReferenceExpanded Gets the collection of ExternalResourceReference associated with a specified external resource type.
(Inherited from Element)
Public methodGetExternalResourceReferences Gets the map of the external resource references referenced by the element.
(Inherited from Element)
Public methodGetExternalResourceReferencesExpanded Gets the expanded map of the external resource references referenced by the element.
(Inherited from Element)
Public methodGetFreeFormAccessor Returns an interface providing access to free-form properties and methods for this Rebar element.
Public methodGetFullGeometryForView Generates full geometry for the Rebar for a specific view.
Public methodCode exampleGetGeneratingElementIds Returns the ids of the element(s) that generated the input geometry object.
(Inherited from Element)
Public methodGetGeometryObjectFromReference Retrieve one geometric primitive contained in the element given a reference.
(Inherited from Element)
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetHookOrientation Returns the orientation of the hook plane at the start or at the end of the rebar with respect to the orientation of the first or the last curve and the plane normal.
Public methodGetHookRotationAngle Gets the out of plane hook rotation angle at the specified end.
Public methodGetHookTypeId Get the id of the RebarHookType to be applied to the rebar.
Public methodGetHostId The element that contains the rebar.
Public methodGetLapLength Gets the lap length that is used for the specified end - 0 for start, 1 for end.
Public methodGetMaterialArea Gets the area of the material with the given id.
(Inherited from Element)
Public methodGetMaterialIds Gets the element ids of all materials present in the element.
(Inherited from Element)
Public methodGetMaterialVolume Gets the volume of the material with the given id.
(Inherited from Element)
Public methodGetMonitoredLinkElementIds Provides the link instance IDs when the element is monitoring.
(Inherited from Element)
Public methodGetMonitoredLocalElementIds Provides the local element IDs when the element is monitoring.
(Inherited from Element)
Public methodGetMovedBarTransform Returns a transform representing the movement of the bar relative to its default position along the distribution path.
Public methodGetOrderedParameters Gets the parameters associated to the element in order.
(Inherited from Element)
Public methodGetOverridableHookParameters Outputs the formula parameter ids defined in the RebarShape family which are associated with hook length and hook tangent length parameters.
Public methodGetParameterRetrieves a parameter from the element given identifier.
(Inherited from Element)
Public methodGetParameterFormatOptions Returns a FormatOptions override for the element Parameter, or a default FormatOptions if no override exists.
(Inherited from Element)
Public methodGetParametersRetrieves the parameters from the element via the given name.
(Inherited from Element)
Public methodGetParameterValueAtIndex Get the parameter value for a bar at the specified index.
Public methodGetPhaseStatus Gets the status of a given element in the input phase
(Inherited from Element)
Public methodGetPresentationMode Gets the presentation mode for this rebar set when displayed in the given view.
Public methodGetRebarConstraintsManager Returns an object for managing the external constraints on the Rebar element
Public methodGetRebarSplice Gets the rebar splice at the specified bar end - 0 for start, 1 for end.
Public methodGetReinforcementRoundingManager Returns an object for managing reinforcement rounding override settings.
Public methodGetShapeDrivenAccessor Returns an interface providing access to shape-driven properties and methods for this Rebar element.
Public methodGetShapeId Returns the id of the RebarShape element that defines the shape of the rebar.
Public methodGetSpliceStaggerLength Gets the stagger length that is used for the specified end - 0 for start, 1 for end.
Public methodGetSubelements Returns the collection of element subelements.
(Inherited from Element)
Public methodGetTransformedCenterlineCurves A chain of curves representing the centerline of the rebar.
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodCode exampleGetTypeId Returns the identifier of this element's type.
(Inherited from Element)
Public methodGetValidTypes Obtains a set of types that are valid for this element.
(Inherited from Element)
Public methodHasPhases Returns true if this Element has the properties CreatedPhaseId and DemolishedPhaseId.
(Inherited from Element)
Public methodHasPresentationOverrides Identifies if this Rebar has overridden default presentation settings for the given view.
Public methodHookAngleMatchesRebarShapeDefinition Checks that the hook angle of the specified RebarHookType matches the hook angle used in the Rebar's RebarShape at the specified end of the bar.
Public methodIsBarHidden Identifies if a given bar in this rebar set is hidden in this view.
Public methodIsCreatedPhaseOrderValid Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element)
Public methodIsDemolishedPhaseOrderValid Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element)
Public methodIsExternalFileReference Determines whether this Element represents an external file.
(Inherited from Element)
Public methodIsHiddenIdentifies if the element has been permanently hidden in the view.
(Inherited from Element)
Public methodIsHookLengthOverrideEnabled Returns True if the ability to override hook lengths is enabled for this rebar instance, False otherwise.
Public methodIsMonitoringLinkElement Indicate whether an element is monitoring any elements in any linked models.
(Inherited from Element)
Public methodIsMonitoringLocalElement Indicate whether an element is monitoring other local elements.
(Inherited from Element)
Public methodIsPhaseCreatedValid Returns true if createdPhaseId is an allowed value for the property CreatedPhaseId in this Element.
(Inherited from Element)
Public methodIsPhaseDemolishedValid Returns true if demolishedPhaseId is an allowed value for the property DemolishedPhaseId in this Element.
(Inherited from Element)
Public methodIsRebarFreeForm Returns true if the rebar is free form and false if shape driven.
Public methodIsRebarInSection Identifies if this Rebar is cut by the view plane of the given view.
Public methodIsRebarShapeDriven Returns true if the rebar is shape driven and false if free form.
Public methodIsUnobscuredInView Checks if this rebar element is shown unobscured in a view.
Public methodIsValidType(ElementId) Checks if given type is valid for this element.
(Inherited from Element)
Public methodLookupParameterAttempts to find a parameter on the element which has the given name.
(Inherited from Element)
Public methodMoveBarInSet This method applies the transformation matrix to the rebar bar at the desired position in the rebar set. If the bar was already moved, the method will concatenate the transformation matrix with the existing movement.
Public methodStatic memberRebarShapeMatchesCurvesAndHooks Checks if rebarShape matches curves and hooks. If the RebarShapeDefinesHooks flag in ReinforcementSettings has been set to false, then this method will ignore the hook information.
Public methodStatic memberRebarShapeMatchesCurvesHooksAndEndTreatment Checks if rebarShape matches curves, hooks and end treatment. If the RebarShapeDefinesHooks flag in ReinforcementSettings has been set to false, then this method will ignore the hook information. If the RebarShapeDefinesEndTreatment flag in ReinforcementSettings has been set to false, then this method will ignore the end treatment information.
Public methodRefersToExternalResourceReference Determines whether this Element uses external resources associated with a specified external resource type.
(Inherited from Element)
Public methodRefersToExternalResourceReferences Determines whether this Element uses external resources.
(Inherited from Element)
Public methodRemoveSplice Removes the splice relation at the specified end and all the Rebar Constraints involved in splice.
Public methodResetMovedBarTransform Reset the transformation representing the movement of the bar relative to its default position along the distribution path. The moved bar transform will be set to Identity.
Public methodSetBarHiddenStatus Sets the bar in this rebar set to be hidden or unhidden in the given view.
Public methodSetBarIncluded Sets if the bar at the desired index is included or not.
Public methodSetEndTreatmentTypeId Sets the id of the EndTreatmentType to be applied to the rebar. This can be done if and only if the end of the bar on which the end treatment is applied has no RebarCoupler on it, otherwise will throw an exception. If a RebarHookType is present at the rebar end, it will automatically set to invalidElementId.
Public methodSetEntity Stores the entity in the element. If an Entity described by the same Schema already exists, it is overwritten.
(Inherited from Element)
Public methodSetHookOrientation Defines the orientation of the hook plane at the start or at the end of the rebar with respect to the orientation of the first or the last curve and the plane normal.
Public methodSetHookRotationAngle Sets the out of plane hook rotation angle at the specified end.
Public methodSetHookTypeId Set the id of the RebarHookType to be applied to the rebar. If an EndTreatmentType is present at the rebar end, it will automatically set to invalidElementId.
Public methodSetHostId The element that contains the rebar.
Public methodSetPresentationMode Sets the presentation mode for this rebar set when displayed in the given view.
Public methodSetUnobscuredInView Sets this rebar element to be shown unobscured in a view.
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Top
Example
private void Getinfo_Rebar(Rebar rebar)
{
    string message = "Rebar: ";
    //get the bar type of the rebar
    message += "\nBar Type: " + (rebar.Document.GetElement(rebar.GetTypeId()) as RebarBarType).Name;

    //get the curve information
    IList<Curve> curves = rebar.GetCenterlineCurves(false, false, false, MultiplanarOption.IncludeOnlyPlanarCurves, 0);
    message += "\n\nThe Curves property has " + curves.Count + " curves:";
    foreach (Curve curve in curves)
    {
        // Get curve start point
        message += "\nCurve start point:(" + curve.GetEndPoint(0).X + ", "
            + curve.GetEndPoint(0).Y + ", " + curve.GetEndPoint(0).Z + ")";
        // Get curve end point
        message += "; Curve end point:(" + curve.GetEndPoint(1).X + ", "
            + curve.GetEndPoint(1).Y + ", " + curve.GetEndPoint(1).Z + ")";
    }

    //get the host element of the rebar
    if (null != rebar.Document.GetElement(rebar.GetHostId())) //maybe some rebars don't have host
    {
        message += "\n\nThe host element ID : " + rebar.GetHostId().ToString();
    }

    TaskDialog.Show("Revit", message);
}
See Also