Revit Platform API Changes and Additions 2022 1
Revit Platform API Changes and Additions 2022 1
1 API
API additions
View API additions
Duplicating Sheets
The new enum:
• SheetDuplicateOption
allows you to indicate what information should be copied when duplicating a sheet. Its values are:
• ViewSheet.Duplicate(SheetDuplicateOption)
• ViewSheet.CanBeDuplicated(SheetDuplicateOption)
allow you to duplicate sheets and identify sheets which can be duplicated.
• Autodesk.Revit.DB.ScheduleHeightsOnSheet
returns the heights of schedule title, column header and each body row on sheet view.
The new method:
• ViewSchedule.GetScheduleHeightsOnSheet()
• ViewSchedule.IsSplit()
• ViewSchedule.Split(int segmentNumber)
• ViewSchedule.Split(IList<double> segmentHeights)
• ViewSchedule.SplitSegment()
• ViewSchedule.DeleteSegment()
• ViewSchedule.MergeSegments()
• ViewSchedule.GetSegmentCount()
• ViewSchedule.GetSegmentHeight()
• ViewSchedule.SetSegmentHeight()
• ViewSchedule.GetScheduleInstances()
• ScheduleSheetInstance.SegmentIndex
• ScheduleSheetInstance.Create(Document document, ElementId viewSheetId, ElementId
scheduleId, XYZ origin, int segmentIndex)
provide the ability to place a schedule segment on sheet and to get and set the schedule segment
instance's segment index.
• WorksetTable.DeleteWorkset()
supports deleting of worksets from the model. It takes a DeleteWorksetSettings input with options for
what to do with elements contained by that workset.
Import and Export API additions
AXM Import
The new class:
• Autodesk.Revit.DB.AXMImportOptions
allows user to determine the import options when importing an AXM file.
• OptionalFunctionalityUtils.IsAXMImportLinkAvailable()
supports export of Revit geometry to OBJ format. It uses a new class containing the options available for
export:
• OBJExportOptions.TargetUnit
• OBJExportOptions.SurfaceTolerance
• OBJExportOptions.NormalTolerance
• OBJExportOptions.MaxEdgeLength
• OBJExportOptions.GridAspectRatio
• OBJExportOptions.SetTessellationSettings()
provide support for importing files of STL and OBJ formats. These methods use new classes
representing the options for each of the new formats.
supports specification of a default length unit to use during import of unitless STL and OBJ files.
API changes
Parameter API changes (migration to ForgeTypeId)
In Revit 2021, Revit API functionality for units of measurement migrated from enumerated identifiers to
extensible identifiers represented by the ForgeTypeId class. ForgeTypeId is now used as the identifier
type for more data structures in the Revit API.
A ForgeTypeId instance holds a string, called a "typeid", that uniquely identifies a Forge schema. A Forge
schema is a JSON document describing a data structure, supporting data interchange between
applications. A typeid string includes a namespace and version number and may look something like
"autodesk.spec.aec:length-1.0.0" or "autodesk.unit.unit:meters-1.0.0". By default, comparison of
ForgeTypeId values in the Revit API ignores the version number.
• Autodesk.Revit.DB.DisciplineTypeId
• Autodesk.Revit.DB.GroupTypeId
• Autodesk.Revit.DB.ParameterTypeId
contain properties of type ForgeTypeId, following the pattern established in Revit 2021 with the
UnitTypeId, SymbolTypeId, and SpecTypeId classes. Values from the DisciplineTypeId class can be used
in code to replace values of the deprecated UnitGroup enumeration. For example, where you previously
used UnitGroup.Structural, you would now use DisciplineTypeId.Structural. Values from the GroupTypeId
and ParameterTypeId classes can be used to replace values of the BuiltInParameter and
BuiltInParameterGroup enumerations, respectively, which have not yet been deprecated.
The SpecTypeId class contains several new nested classes containing ForgeTypeId properties identifying
non-floating-point data types, such as integers and strings. ForgeTypeId properties in SpecTypeId and its
nested classes can be used to replace values of the deprecated ParameterType enumeration. These
tables list the deprecated types and their replacements, as well as some migrated types where the
original enumeration is not yet fully deprecated:
SpecTypeId.Boolean
ParameterType SpecTypeId.Int
SpecTypeId.Reference
SpecTypeId.String
The mapping of enumerations to different ForgeTypeId members has implications for previously existing
APIs related to parameter access, parameter definitions, shared parameter creation and binding, global
parameters and other utilities.
• For parameters associated with units of measurement, GetDataType() returns a measurable spec
identifier. Use UnitUtils.IsMeasurableSpec(ForgeTypeId) to detect a measurable spec identifier.
• For Family Type parameters, GetDataType() returns a category identifier. Use
Category.IsBuiltInCategory(ForgeTypeId) to detect a category identifier.
• For all other parameters, GetDataType() returns a spec identifier. Use
Parameter.IsSpec(ForgeTypeId) to detect a spec identifier, including measurable specs.
Use Parameter.IsValidDataType(ForgeTypeId) to detect any parameter data type identifier – i.e., any
measurable or non-measurable spec or category.
The deprecated class constructor and Type property setter taking ParameterType values now throw an
exception for input values ParameterType.Invalid or ParameterType.FamilyType. It was not possible to
use this interface to create Family Type shared parameters.
However, it is now possible to create Family Type shared parameters using the replacement functions
based on ForgeTypeId. The class constructor taking ForgeTypeId and the SetDataType(ForgeTypeId)
method accept any spec or category identifier. Using a category identifier produces a Family Type shared
parameter of the given category. Use Category.GetBuiltInCategoryTypeId(BuiltInCategory) to obtain the
ForgeTypeId identifier for a given category.
Use Parameter.IsValidDataType(ForgeTypeId) to detect any parameter data type identifier – i.e., any
measurable or non-measurable spec or category.
Shared parameters can also be created and leveraged in families using members of the FamilyManager
class.
• LabelUtils.GetLabelForDiscipline(ForgeTypeId)
returns the user visible name corresponding to a Revit discipline in the current Revit language. The
implementation of the method:
• LabelUtils.GetLabelForSpec(ForgeTypeId)
has been expanded to accept a ForgeTypeId argument identifying any parameter data type. For a
category identifier input, GetLabelForSpec(ForgeTypeId) returns the label of the Family Type spec for
that category, e.g. "Family Type: Wall Tags".
ParameterUtils is a new class with static utility functions related to ForgeTypeId parameter identifiers:
• ParameterUtils.GetAllBuiltInGroups()
• ParameterUtils.GetAllBuiltInParameters()
• ParameterUtils.IsBuiltInGroup(ForgeTypeId)
• ParameterUtils.IsBuiltInParameter(ForgeTypeId)
The ParameterUtils class contains several methods that are new in this release but also deprecated.
They are offered only to assist clients in migrating code from the BuiltInParameter and
BuiltInParameterGroup enumerations to the ForgeTypeId class.
SpecUtils is a new class with static utility functions related to ForgeTypeId spec identifiers:
• SpecUtils.GetAllSpecs()
• SpecUtils.IsSpec(ForgeTypeId)
• SpecUtils.IsValidDataType(ForgeTypeId)
The SpecUtils class contains two methods that are new in this release but also deprecated. They are
offered only to assist clients in migrating code from the ParameterType enumeration to the ForgeTypeId
class.
Changes were made to UnitUtils to clarify the meaning of some operations and to offer functions related
to disciplines.
• UnitUtils.GetAllDisciplines()
provides a list of all available Revit disciplines, suitable for iteration. Previously iteration would have used
the members of the UnitGroup enumeration.
Deprecated Replacement
UnitUtils.GetAllSpecs() UnitUtils.GetAllMeasurableSpecs()
UnitUtils.GetUnitGroup(ForgeTypeId) UnitUtils.GetDiscipline(ForgeTypeId)
UnitUtils.IsSpec(ForgeTypeId) UnitUtils.IsMeasurableSpec(ForgeTypeId)
Original Replacement
PG_ELECTRICAL PG_ELECTRICAL_ENGINEERING
PG_AELECTRICAL PG_ELECTRICAL
PG_TERMINTATION PG_TERMINATION
Note that because the name PG_ELECTRICAL now identifies a different group, client applications which
do not adjust will find parameters they create now in "Electrical" instead of "Electrical Engineering".
has been enhanced to support upload of local workshared file into BIM 360 Design as a Revit Cloud
Worksharing central model.
In addition, the exception UnauthenticatedUserException is removed from the documented exceptions for
this method.
have been enhanced to support creation of new cloud model Revit links. You may use ModelPathUtils.
ConvertCloudGUIDsToCloudPath() to create a cloud path to use as an argument to these methods.
• RevitLinkType.IsLoaded()
• RevitLinkType.Load()
• RevitLinkType.Reload()
• RevitLinkType.Unload()
will work with any cloud Revit link created by a Revit user or through the APIs above.
• RotationAngle
can be used to get or set the rotation of the tag relative to its view.
Multiple References
IndependentTag now supports multiple references to various elements or sub-elements.
A number of properties were deprecated. The users can now access the desired leader or tagged
element using their References.
All deprecated members still work in multi leader scenario by using only the first tagged reference.
• IndependentTag.AddReferences()
• IndependentTag.RemoveReferences()
• IndependentTag. MultiLeader
are used to bulk add or remove references from a tag, and to query if the tag references multiple
elements.
The following methods have been deprecated and replaced due to terminology changes in the Revisions
user interface:
• Document.Import()
• Document.Link()
that take a View as an argument have been updated to accept null for that argument. This applies to all
overloads of these methods except those that work with DWF. This View argument used to be required,
but now null will be used to take an appropriate default action for the import operations.
The following properties have been deprecated. Because they are not currently used and relate to not
yet available capabilities, there is no replacement for these members.
Some enumeration values were renamed to match the current naming of the commands in the Revit
UI. There is no way to preserve the old name as obsoleted so code referring to these values will need to
be updated:
Removed Replacement
ExportMassModelGBXML ExportGBXML
ModelBrowserContainer ToggleHome
PlaceOnHost PlaceOnStairOrRamp
Playlist DynamoPlayer
RunEnergySimulation Generate
ShowEnergyModel CreateEnergyModel
UseCurrentProject CoordinationReviewUseCurrentProject
Finally, some commands have been removed from the Revit UI. These commands can no longer be
posted, so the values have been removed from the enumeration:
ExportBuildingSite
PublishDGNToAutodeskBuzzsaw
PublishDWFToAutodeskBuzzsaw
PublishDWGToAutodeskBuzzsaw
PublishDXFToAutodeskBuzzsaw
PublishSATToAutodeskBuzzsaw
RecentFiles
ResultsAndCompare
StairBySketch
ViewRange
BuiltInFailures changes
Some changes have been made to existing BuiltInFailure definitions. Code that looks for or handles
specific failures may need updating, as it is not possible to obsolete the replaced members, so they have
been removed in this release.
The method FilterStringRuleEvaluator.Evaluate() still has an argument "caseSensitive", but it's never
called by filter code with this argument set to true.
API additions
create a new instance of a ceiling in a Revit project, with one overload supporting a sloped ceiling.fac
Floor APIs
In addition to the replacement Floor creation methods described above, the new method:
Wall APIs
The new methods:
• Wall.CreateProfileSketch()
• Wall.RemoveProfileSketch()
• Wall.CanHaveProfileSketch()
provide access to add and remove profile sketches to wall elements that support them. Once a sketch is
added, the profile sketch can be edited using SketchEditScope.
• Wall.CrossSection
• Wall.IsWallCrossSectionValid()
allow assignment of a cross section type to a given wall, and determine if that type can be assigned.
• Autodesk.Revit.DB.WallCrossSection
• Autodesk.Revit.DB.WidthMeasuredAt
• Autodesk.Revit.DB.InsertOrientation
enumerate the values for options related to alternate wall cross section values, especially the options
available for Tapered walls.
Sketch APIs
The new methods:
• Ceiling.SketchId
• Floor.SketchId
• Wall.SketchId
• Opening.SketchId
The method:
• Sketch.OwnerId
• Sketch.GetAllElements()
returns the ids of all the elements owned by the sketch, including elements of type:
• Autodesk.Revit.DB.ModelCurve
• Autodesk.Revit.DB.ReferencePlane
• Autodesk.Revit.DB.Dimension
This method works for any Sketch you can obtain from a Sketch-based element (Ceiling, Extrusion, etc.).
It is available both in and outside of a SketchEditScope.
• Autodesk.Revit.DB.SketchEditScope
allows an application to edit sketch based elements while preserving the unchanged elements that are
already present in the sketch. While a Sketch editing session is active, you can add, delete or modify
Sketch elements (curves, dimensions, reference planes). When you finish the session, the edited Sketch-
based element will be updated. Only certain sketches are currently supported for editing:
• Ceiling sketches
• Floor sketches
• Wall profile sketches
• Opening sketches
• BoundaryValidation.IsValidHorizontalBoundary()
validates input curves form a valid horizontal boundary for Ceiling or Floor creation.
CompoundStructure API
The new method:
• CompoundStructure.CanSplitAndMergeRegionsBeUsed()
checks whether split and merge regions operations can be used for this compound structure. This
validator is associated with the use of the existing M ergeRegionsAdjacentToSegment() and SplitRegion()
methods.
• Autodesk.Revit.DB.ColorFillScheme
represents a color scheme that can be applied to plan and section views. Key new members of this class
include:
• ColorFillScheme.AddEntry()
• ColorFillScheme.RemoveEntry()
• ColorFillScheme.UpdateEntry()
• ColorFillScheme.GetEntries()
• ColorFillScheme.SetEntries()
• ColorFillScheme.SortEntries()
• ColorFillScheme.AreaSchemeId
• ColorFillScheme.CategoryId
• ColorFillScheme.ParameterDefinition
• ColorFillScheme.StorageType
• ColorFillScheme.Title
• ColorFillScheme.Duplicate
• ColorFillScheme.GetFormatOptions()
• ColorFillScheme.SetFormatOptions()
• ColorFillScheme.GetSupportedParameterIds()
• Autodesk.Revit.DB.ColorFillSchemeEntry
represents an entry in a color scheme. Key new members of this class include:
• ColorFillSchemeEntry.Color
• ColorFillSchemeEntry.FillPatternId
• ColorFillSchemeEntry.Caption
• ColorFillSchemeEntry.StorageType
• ColorFillSchemeEntry.IsVisible
• ColorFillSchemeEntry.IsInUse
• ColorFillSchemeEntry.GetIntegerValue()
• ColorFillSchemeEntry.GetDoubleValue
• ColorFillSchemeEntry.GetStringValue()
• ColorFillSchemeEntry.GetElementIdValue()
• ColorFillSchemeEntry.SetIntegerValue()
• ColorFillSchemeEntry.SetDoubleValue()
• ColorFillSchemeEntry.SetStringValue()
• ColorFillSchemeEntry.SetElementIdValue()
• View.GetColorFillSchemeId()
• View.SetColorFillSchemeId()
provide access to read and apply the color fill scheme associated with a particular category in the view.
• Autodesk.Revit.DB.ColorFillLegend
offers the ability to create, read and modify properties of color fill legend annotation elements in a
particular owner view. Key new members of this class include:
• ColorFillLegend.Create()
• ColorFillLegend.GetColumnWidths()
• ColorFillLegend.SetColumnWidths()
• ColorFillLegend.ColorFillCategoryId
• ColorFillLegend.Height
• ColorFillLegend.Origin
• Autodesk.Revit.DB.PDFExportOptions
include graphical options, paper and output format options, and the option to combine output views and
sheets into a single PDF or to produce a different PDF for each view and sheet with a specific naming
convention.
• Autodesk.Revit.DB.ExportPDFSettings
represents a named stored PDF export option available in a document. You can use this class to
extract the options from this element to use for exporting to PDF, or modify or create new stored settings
with different options.
• Autodesk.Revit.DB.Infrastructure.Alignment
represents an alignment and can be used to find alignments in a document, and to query a particular
alignment's properties and to analyze alignment geometry. This object is not an Element, but the
underlying Element can be obtained from this object if needed.
• Autodesk.Revit.DB.Infrastructure.AlignmentStationLabel
represents an alignment station label annotation and can be used to find such labels in a document as
well as to create and modify such labels. This object is not an Element, but the underlying Element (which
is a SpotDimension instance) can be obtained from this object if needed.
• Autodesk.Revit.DB.Infrastructure.AlignmentStationLabelOptions
• Autodesk.Revit.DB.Infrastructure.AlignmentStationLabelSetOptions
provide options for creating a single alignment label or for creating a set of alignment labels.
• DirectShape.AddReferenceCurve()
• DirectShape.AddReferencePlane()
• DirectShape.AddReferencePoint()
• DirectShapeType.AddReferenceCurve()
• DirectShapeType.AddReferencePlane()
• DirectShapeType.AddReferencePoint()
enable the creation of reference curves, planes and points inside DirectShape elements. Explicit bounds
can be provided for direct shape reference curves and planes. Revit tools that can use named references
within families will also be able to select the references inside the DirectShape elements.
The overloads for these methods include an optional DirectShapeReferenceOptions input. Use:
• DirectShapeReferenceOptions.Name
to set the assigned name for the reference. If the name is specified, it is visible when picking the
reference's geometry. Otherwise, the default DirectShape element name is displayed.
• DirectShapeReferenceOptions.IsValidReferenceName()
• DirectShape.IsValidReferenceCurve()
• DirectShape.IsValidReferencePlaneBoundingBoxUV()
• DirectShapeType.IsValidReferenceCurve()
• DirectShapeType.IsValidReferencePlaneBoundingBoxUV()
validates the inputs needed for specifying a plane or curve explicit reference in the DirectShape.
External Geometry
The new class:
• ExternalGeometryId
• ExternalGeometryId.IsValidExternalGeometryId()
• ExternalGeometryId.Id
• ExternallyTaggedGeometryObject
• ExternallyTaggedGeometryObject.ExternalId
• ExternallyTaggedNonBRep
• ExternallyTaggedBRep
represents BRep (Solid) geometry with external identifiers for the BRep itself and any subset of Faces or
Edges.
• BRepBuilderPersistentIds
provide an ability to associate “tags” with Faces and Edges created by BRepBuilder.
A new member:
• BRepBuilder.GetResult()
• ExternallyTaggedGeometryValidation
provides validators
• ExternallyTaggedGeometryValidation.IsValidGeometry
• ExternallyTaggedGeometryValidation.IsNonSolid
• ExternallyTaggedGeometryValidation.IsSolid
to help determine validity of a GeometryObject for use with the new externally tagged geometry.
• DirectShape.AddExternallyTaggedGeometry()
• DirectShape.GetExternallyTaggedGeometry()
• DirectShape.HasExternallyTaggedGeometry()
• DirectShape.UpdateExternallyTaggedGeometry()
• DirectShape.RemoveExternallyTaggedGeometry()
• DirectShape.ResetExternallyTaggedGeometry()
• DirectShapeType.AddExternallyTaggedGeometry()
• DirectShapeType.GetExternallyTaggedGeometry()
• DirectShapeType.HasExternallyTaggedGeometry()
• DirectShapeType.UpdateExternallyTaggedGeometry()
• DirectShapeType.RemoveExternallyTaggedGeometry()
• DirectShapeType.ResetExternallyTaggedGeometry()
• DirectShapeType.SetFamilyName()
• DirectShapeType.CanChangeFamilyName()
provides the ability to check if a DirectShapeType supports a custom Family name. Certain categories do
not support custom Family names.
These methods all return strings, which will be empty for a document which is not a cloud model.
OpenOptions API
The new property:
• OpenOptions.IgnoreExtensibleStorageSchemaConflict
allows your application to ignore a schema conflict error on open. The default is false. Setting this to true
will ignore the exception of schema conflict while opening the model. Data in the existing schema with the
conflicting ID will be erased from the model.
• Viewport.LabelOffset
controls the two-dimensional label offset from left bottom corner of the viewport (as established with
Rotation set to None) to the left end of the viewport label line.
• Viewport.LabelLineLength
controls the length of the viewport label line in sheet space.
Callout view
The new method:
• View.GetCalloutParentId()
returns the ID of a view which this callout references, or InvalidElementId if there is not parent.
• View.IsCallout
Grids in 3D views
Several new methods in View3D control grid visibility in 3D Views:
• View3D.GetLevelsThatShowGrids()
• View3D.ShowGridsOnLevel(ElementId levelId)
• View3D.HideGridsOnLevel(ElementId levelId)
• View3D.ShowGridsOnLevels(ElementIdset levelIds)
• TemporaryGraphicsManager
allows the creation of temporary graphics in the canvas and can be used to create in-canvas controls.
• TemporaryGraphicsManager.GetTemporaryGraphicsManager()
• TemporaryGraphicsManager.AddControl()
• TemporaryGraphicsManager.UpdateControl()
• TemporaryGraphicsManager.RemoveControl()
• TemporaryGraphicsManager.SetVisibility()
• TemporaryGraphicsManager.GetAll()
• TemporaryGraphicsManager.Clear()
stores a reference to the image used in the temporary graphics. It has the following properties:
• InCanvasControlData.ImagePath
• InCanvasControlData.Position
return the id of the Level which is closest to the specified elevation. The level can be at, above or below
the target elevation. If there is more than one Level at the same distance from the elevation, the Level
with the lowest id will be returned.
• Autodesk.Revit.DB.MultipleValuesIndicationSettings
allows access to the custom value for used in instances of the Properties Palette, Tags and Schedules
when multiple elements are referenced and the value of the parameter is different.
• MultipleValuesIndicationSettings.GetMultipleValuesIndicationSettings()
• MultipleValuesIndicationSettings.Custom
• MultipleValuesIndicationSettings.CustomValue
• MultipleValuesIndicationSettings.Value
provide access to the settings in the document, the option for the custom value, and read-only access to
the value that will be used (either the custom value or the default).
DimensionType prefix/suffix
The new properties:
• DimensionType.Prefix
• DimensionType.Suffix
• Category.GetBuiltInCategoryTypeId(BuiltInCategory)
• Category.GetBuiltInCategory(ForgeTypeId)
• Category.IsBuiltInCategory(ForgeTypeId)
• Document.ResetSharedCoordinates()
resets the shared coordinates for the host model. It provides the same functionality as the UI Command
"Reset Shared Coordinates".
• bool BasePoint.Clipped
will get or set the clipped state of the survey point BasePoint based on the active ProjectLocation of its
Document. For the project base point, the get method will always return false, and the set method will
throw an exception.
• Autodesk.Revit.DB.RevisionNumberingSequence
defines the sequences by which numbers are assigned to Revisions. Revision numbering is either
numeric or alphanumeric. Revision numbering is assigned to Revisions to control the numbering scheme
of that Revision. Alphanumeric from the API corresponds to the UI concept of "Custom".
• RevisionNumberingSequence.CreateNumericSequence()
• RevisionNumberingSequence.CreateAlphanumericSequence()
• RevisionNumberingSequence.GetSequenceName()
• RevisionNumberingSequence.SetSequenceName()
• RevisionNumberingSequence.GetNumericRevisionSettings()
• RevisionNumberingSequence.SetNumericRevisionSettings()
• RevisionNumberingSequence.GetAlphanumericRevisionSettings()
• RevisionNumberingSequence.SetAlphanumericRevisionSettings()
• RevisionNumberingSequence.GetAllRevisionNumberingSequences()
• RevisionNumberingSequence.HasValidRevisionSettingsForNumberType()
• RevisionNumberingSequence.HasValidNumericRevisionSettings()
• RevisionNumberingSequence.HasValidAlphanumericRevisionSettings()
• RevisionNumberingSequence.NumberType
provide the ability to create, read and modify the settings related to Revision numbering sequences.
• Revision.GetRevisionNumberingSequenceId()
• Revision.SetRevisionNumberingSequenceId()
provide access to the id of the revision numbering sequence which controls this revision's numbering:
provide access to the setting controlling the minimum number of digits for a revision number.
• Element.IsDemolishedPhaseOrderValid()
• Element.IsCreatedPhaseOrderValid()
validate the order of phases on a given element with respect to the input phase id, ensuring that an object
is not assigned a phase where it is demolished before it was created.
• Mesh.IsClosed
• PointCloudType.GetReCapProject()
provides a direct entry point to get access to an object from the ReCap SDK (ReCapWrapper.RCProject)
from Revit. This object represents the point cloud from the RC file path stored in PointCloudType. The
ReCap assembly ReCapWrapper.dll will need to be included into code using this method.
The coordinate system in RCProject is defined by the Point Cloud. Please refer to ReCap SDK
documentation for RCProject.getCoordinateSystem(). If you need points converted to the modeling
coordinate system in Revit, you can obtain the transformation matrix from
PointCloudInstance.GetTransform().
• ScheduleField
has several new properties which allow customization of the multiple value indication per field:
• ScheduleField.MultipleValuesDisplayType
• ScheduleField.MultipleValuesText - The text to be used when a field has multiple values
• ScheduleField.MultipleValuesCustomText - The text to be used when a field has multiple values
and the display type is set to ScheduleFieldMultipleValuesDisplayType.Custom
• ScheduleFieldMultipleValuesDisplayType
defines how the schedule field's multiple value indication is displayed (using the project setting, a custom
text or a predefined text "<varies>").
allow an application to move an individual bar, and to read and reset the transform of the individual bar in
a Rebar Set.
• Rebar.SetBarIncluded()
• Rebar.IncludeFirstBar
• Rebar.IncludeFirstBar
continue to function as before, and setting these to true are equivalent to removing the bar at the first or
last position index.
• Rebar.DoesBarExistAtPosition()
now supports returning false for any bar position index and not just the first or last bar.
• RebarInSystem.SetBarIncluded()
• RebarInSystem.MoveBarInSet()
• RebarInSystem.GetMovedBarTransform()
• RebarInSystem.ResetMovedBarTransform()
• RebarInSystem.CanEditIndividualBars()
provide access to move, include or remove individual bars only for RebarInSystem elements that are
owned by PathReinforcement. (This is not supported for RebarInSystem owned by AreaReinforcement).
• AreaReinforcement.GetNumberOfLines()
• AreaReinforcement.GetLineFromLayerAtIndex()
• AreaReinforcement.SetLineIncluded()
• AreaReinforcement.IsLineIncluded()
• AreaReinforcement.MoveLine()
• AreaReinforcement.GetMovedLineTransform()
• AreaReinforcement.ResetMovedLineTransform()
• AreaReinforcement.SetLayerActive()
• AreaReinforcement.IsLayerActive()
• AreaReinforcement.GetLayerDirection()
provide access to the layers of Area Reinforcement elements, and to manipulate (move and remove) the
individual lines exposed through those layers.
Rebar conversion
The new methods:
• AreaReinforcement.ConvertRebarInSystemToRebars()
• PathReinforcement.ConvertRebarInSystemToRebars()
convert all of the RebarInSystem elements owned by the input element into equivalent Rebar elements.
Rebar geometry
The new methods:
• Rebar.GetTransformedCenterlineCurves()
• RebarInSystem.GetTransformedCenterlineCurves()
return the centerline curves for a given bar, where the geometry of the curves are in the actual
transformed position. The BarPositionTransform (representing the relative position of any individual bar in
the set - a translation along the distribution path) and MovedBarTransform (representing the movement of
the bar relative to its default position along the distribution path) will be applied to the returned curves.
Freeform Rebar
The new properties:
• RebarFreeFormAccessor.RebarStyle
• RebarFreeFormAccessor.StirrupTieAttachmentType
provides read and write access to the corresponding properties of freeform rebar elements.
• RebarFreeFormAccessor.SetReportedShape()
changes the rebar shape of a freeform rebar that is currently using the RebarWorkInstructions.Straight
option to the provided rebar shape.
MEP API additions
Building and Space Type additions
Several new properties have been added for Building and Space Types:
Zone additions
The new property:
• GenericZone.LevelOffset
gets or sets the offset distance from this zone to the associated level.
• HVACLoadType.HeatingSetPoint
• HVACLoadType.CoolingSetPoint
• HVACLoadType.HumidificationSetPoint
• HVACLoadType.DehumidificationSetPoint
provide access to the heating temperature, cooling temperature, humidification and dehumidifcation set
point values. Temperature set points are in Kelvin, while humidity set points are percentages ranging
from 0 to 1.
• ViewSystemsAnalysisReport.ReportStyle
• Autodesk.Revit.DB.Mechanical.MEPHiddenLineSettings
represents the settings of the mechanical hidden line display (e.g. ducts and pipes). It can be obtained
from the static method:
• MEPHiddenLineSettings.GetMEPHiddenLineSettings(Document)
• MEPHiddenLineSettings.DrawHiddenLine
• MEPHiddenLineSettings.LineStyle
• MEPHiddenLineSettings.InsideGap
• MEPHiddenLineSettings.OutsideGap
• MEPHiddenLineSettings.SingleLineGap
• PanelScheduleData.IsAutoShadingForLoadDisplay
indicates if a panel schedule will display shading for Load cells automatically.
Conversion to Fabrication
The new method to the DesignToFabricationConverter class:
• DesignToFabricationConverter.SetMapForFamilySymbolToFabricationPartType()
The method will set a map used when the design to fabrication tool is running. The map relationships will
be used to replace any family instance that is based upon the family symbols found in the map with the
corresponding fabrication part for the fabrication part type set in the mapping.
• AnalysisMode.RoomsOrSpaces
indicates that the energy analysis model should be based on volumes from rooms or spaces defined in
the building model.
• EnergyModelType.AnalysisMode
• ExportEnergyModelType.AnalysisMode
allow specification of the energy model production based on the given analysis type.