### Get Model to Projection Transform Source: https://www.revitapidocs.com/2023/news Use TransformWithBoundary.GetModelToProjectionTransform() to obtain the transform from model space to a view's projection space. View.GetModelToProjectionTransforms() retrieves all such transforms for a view, which can be multiple for views with split crop regions. ```C# TransformWithBoundary.GetModelToProjectionTransform() ``` ```C# View.GetModelToProjectionTransforms() ``` -------------------------------- ### Get View Transform Boundary Source: https://www.revitapidocs.com/2023/news TransformWithBoundary.GetBoundary() returns the boundary for the model space to view projection space transform. ```C# TransformWithBoundary.GetBoundary() ``` -------------------------------- ### Sketched Elements API Additions - SketchEditScope Source: https://www.revitapidocs.com/2023/news New method for starting sketch edit mode on elements that do not currently have a sketch. ```APIDOC ## Sketched Elements API Additions - SketchEditScope ### Description Enables starting a sketch edit mode for elements that lack an existing sketch, facilitating editing for such elements. ### Method - **SketchEditScope.StartWithNewSketch()**: Initiates a sketch edit mode for an element that does not currently possess a valid sketch. ``` -------------------------------- ### Selection API Additions - SelectionChangedEventArgs Source: https://www.revitapidocs.com/2023/news Event arguments class for SelectionChanged event, providing methods to get references and the associated document. ```APIDOC ## Selection API additions - SelectionChangedEventArgs ### Description Event arguments used by the SelectionChanged event. Provides methods to retrieve the selected references and the document associated with the event. ### Class `Autodesk.Revit.UI.Events.SelectionChangedEventArgs` ### Method `SelectionChangedEventArgs.GetReferences()` `SelectionChangedEventArgs.GetDocument()` ### Endpoint N/A (Method calls within event handler) ``` -------------------------------- ### Get Symbol ID for Shared Geometry Source: https://www.revitapidocs.com/2023/news Access SymbolGeometryId.SymbolId to retrieve the ID of the symbol that manages the shared geometry. ```C# SymbolGeometryId.SymbolId ``` -------------------------------- ### Check for View Transforms Source: https://www.revitapidocs.com/2023/news View.HasViewTransforms() returns true if the view provides model space to view projection space transforms. Schedules and legends, for example, do not have these transforms. ```C# View.HasViewTransforms() ``` -------------------------------- ### Import/Link STL and OBJ Files Source: https://www.revitapidocs.com/2023/news Use Document.Import() and Document.Link() methods with OBJImportOptions or STLImportOptions for importing and linking STL and OBJ files. ImportInstance.Create() can also be used for this purpose. ```C# Document.Import(String, OBJImportOptions, View) ``` ```C# Document.Import(String, STLImportOptions, View) ``` ```C# ImportInstance.Create(Document, View, ExternalResourceReference, OBJImportOptions, [out] LinkLoadResult) ``` ```C# ImportInstance.Create(Document, View, ExternalResourceReference, STLImportOptions, [out] LinkLoadResult) ``` ```C# Document.Link(String, OBJImportOptions, View) ``` ```C# Document.Link(String, STLImportOptions, View) ``` -------------------------------- ### OBJ Export Options Source: https://www.revitapidocs.com/2023/news Configure OBJ export settings using properties like TargetUnit, SurfaceTolerance, NormalTolerance, MaxEdgeLength, GridAspectRatio, and the SetTessellationSettings() method. ```C# OBJExportOptions.TargetUnit ``` ```C# OBJExportOptions.SurfaceTolerance ``` ```C# OBJExportOptions.NormalTolerance ``` ```C# OBJExportOptions.MaxEdgeLength ``` ```C# OBJExportOptions.GridAspectRatio ``` ```C# OBJExportOptions.SetTessellationSettings() ``` -------------------------------- ### Import AXM File Source: https://www.revitapidocs.com/2023/news Use Document.Import(String, AXMImportOptions, View) to import an AXM file into the current document, utilizing AXMImportOptions for specific settings. ```C# Document.Import(String, AXMImportOptions, View) ``` -------------------------------- ### Structure API Additions - Rebar Propagation Source: https://www.revitapidocs.com/2023/news Introduces the RebarPropagation class with methods for aligning and adapting rebar elements to hosts or faces. ```APIDOC ## Structure API additions - Rebar Propagation ### Description A utility class containing functions to propagate rebar elements by aligning them to destination hosts or faces based on source elements. ### Class `RebarPropagation` ### Method `RebarPropagation.AlignByHost()` `RebarPropagation.AlignByFace()` ### Endpoint N/A (Method calls) ``` -------------------------------- ### Schedule API Additions - Managing Schedule Segments Source: https://www.revitapidocs.com/2023/news New methods for splitting, managing, and placing schedule segments. ```APIDOC ## Schedule API Additions: Managing Schedule Segments ### Description Enables the splitting of schedules into segments, management of these segments, and placement of individual segments onto sheets. ### New Methods for Schedule Segmentation - `ViewSchedule.IsSplit()`: Checks if a schedule is split into segments. - `ViewSchedule.Split(int segmentNumber)`: Splits the schedule into the specified number of segments. - `ViewSchedule.Split(IList segmentHeights)`: Splits the schedule based on the provided list of segment heights. - `ViewSchedule.SplitSegment()`: Splits the current segment. - `ViewSchedule.DeleteSegment()`: Deletes a schedule segment. - `ViewSchedule.MergeSegments()`: Merges schedule segments. - `ViewSchedule.GetSegmentCount()`: Returns the number of segments in the schedule. - `ViewSchedule.GetSegmentHeight()`: Returns the height of a specific segment. - `ViewSchedule.SetSegmentHeight()`: Sets the height of a specific segment. ### New Method for Schedule Instances - `ViewSchedule.GetScheduleInstances()`: Returns the schedule sheet instances for a given schedule segment. ### New Properties for Schedule Sheet Instance - `ScheduleSheetInstance.SegmentIndex`: Gets or sets the segment index for a schedule sheet instance. - `ScheduleSheetInstance.Create(Document document, ElementId viewSheetId, ElementId scheduleId, XYZ origin, int segmentIndex)`: Creates a schedule segment instance on a sheet. ``` -------------------------------- ### Structure API Additions - Line Load Source: https://www.revitapidocs.com/2023/news New methods for creating Line Loads and checking host validity for line loads. ```APIDOC ## Structure API additions - Line Load ### Description Methods for creating hosted line loads and checking if a host ID is valid for line loads. ### Method `Autodesk.Revit.DB.Structure.LineLoad.Create(Document aDoc, ElementId hostElemId, XYZ forceVector1, XYZ momentVector1, LineLoadType symbol)` `Autodesk.Revit.DB.Structure.LineLoad.Create(Document aDoc, ElementId hostElemId, int curveIndex, XYZ forceVector1, XYZ momentVector1, LineLoadType symbol)` `Autodesk.Revit.DB.Structure.AreaLoad.isValidHostId()` ### Endpoint N/A (Method calls) ``` -------------------------------- ### Import/Export API Additions Source: https://www.revitapidocs.com/2023/news New functionalities for importing and exporting various file formats including AXM, OBJ, and STL. ```APIDOC ## Import/Export API Additions ### AXM Import #### Description Allows the user to determine the import options when importing an AXM file and imports an AXM file into the document. #### Class `Autodesk.Revit.DB.AXMImportOptions` #### Methods `Document.Import(String, AXMImportOptions, View)` `OptionalFunctionalityUtils.IsAXMImportLinkAvailable()` ### OBJ Export #### Description Supports export of Revit geometry to OBJ format using specified options. #### Method `Document.Export(String, String, OBJExportOptions)` #### Options - `OBJExportOptions.TargetUnit` - `OBJExportOptions.SurfaceTolerance` - `OBJExportOptions.NormalTolerance` - `OBJExportOptions.MaxEdgeLength` - `OBJExportOptions.GridAspectRatio` - `OBJExportOptions.SetTessellationSettings()` ### STL and OBJ Import & Link #### Description Provides support for import and linking of files of STL and OBJ formats using new option classes. #### Methods `Document.Import(String, OBJImportOptions, View)` `Document.Import(String, STLImportOptions, View)` `ImportInstance.Create(Document, View, ExternalResourceReference, OBJImportOptions, [out] LinkLoadResult)` `ImportInstance.Create(Document, View, ExternalResourceReference, STLImportOptions, [out] LinkLoadResult)` `Document.Link(String, OBJImportOptions, View)` `Document.Link(String, STLImportOptions, View)` ### ShapeImporter API Additions #### Description Allows the user to import data from more file types. #### Enumerations - `ShapeImporter.SKP` - `ShapeImporter.STL` - `ShapeImporter.OBJ` ``` -------------------------------- ### Structure API Additions - Point Load Source: https://www.revitapidocs.com/2023/news New methods for creating Point Loads and checking host validity for point loads. ```APIDOC ## Structure API additions - Point Load ### Description Methods for creating hosted point loads and checking if a host ID is valid for point loads. ### Method `Autodesk.Revit.DB.Structure.PointLoad.Create()` `Autodesk.Revit.DB.Structure.PointLoad.isValidHostId()` ### Endpoint N/A (Method calls) ``` -------------------------------- ### Schedule API Additions - Schedule Heights on Sheets Source: https://www.revitapidocs.com/2023/news New class and method for retrieving schedule heights on sheet views. ```APIDOC ## Schedule API Additions: Schedule Heights on Sheets ### Description Provides functionality to retrieve the heights of schedule components (title, header, body rows) when placed on a sheet. ### New Class - `Autodesk.Revit.DB.ScheduleHeightsOnSheet`: Returns the heights of schedule title, column header, and each body row on a sheet view. ### New Method - `ViewSchedule.GetScheduleHeightsOnSheet()`: Returns a `ScheduleHeightsOnSheet` object containing the height information. ``` -------------------------------- ### Dimension and Family Instance Creation in Sketch Edit Mode Source: https://www.revitapidocs.com/2023/news New capabilities for creating dimensions and family instances within Sketch Edit mode using Document.NewDimension() and Document.NewFamilyInstance(). ```APIDOC ## Dimension creation in Sketch Edit mode ### Description The `Document.NewDimension()` method and its overrides now support the creation of dimensions in Sketch Edit mode. To create dimensions within a sketch, this method must be called while in sketch edit mode, passing `null` for the view parameter and using sketch entities as dimension references. Method signatures remain unchanged, but descriptions have been updated. ### Method `Document.NewDimension()` ### Endpoint N/A (Method call) ## Family Instance creation in Sketch Edit mode ### Description The `Document.NewFamilyInstance()` method and its overrides now support the creation of dimensions in Sketch Edit mode. To create dimensions within a sketch, this method must be called while in sketch edit mode, passing `null` for the view parameter and using sketch entities as dimension references. Method signatures remain unchanged, but descriptions have been updated. ### Method `Document.NewFamilyInstance()` ### Endpoint N/A (Method call) ``` -------------------------------- ### Project Browser API Additions Source: https://www.revitapidocs.com/2023/news New additions to the Project Browser API, including BrowserOrganization type and ProjectBrowserOptions for controlling appearance and functionality. ```APIDOC ## Project Browser API additions ### BrowserOrganization #### Property `Autodesk.Revit.DB.BrowserOrganization.Type` ### Description Represents the browser organization type. ### ProjectBrowserOptions #### Class `ProjectBrowserOptions` ### Description Provides access to settings that control Revit's Project Browser appearance and functionality. These settings are stored in the Revit.ini file. All documents in Revit instances which use this Revit.ini will follow these settings. #### Property `ProjectBrowserOptions.ShowViewPlacementOnSheetStatusIcons` ### Description Shows the icons indicating view placement on sheet status. If true, the icons will be shown at every view or schedule node in the Project Browser. If false, the icons will not be shown. ``` -------------------------------- ### Slab API Additions Source: https://www.revitapidocs.com/2023/news New method for converting folding lines to split lines in slab shapes. ```APIDOC ## Slab API Additions ### Description Allows conversion of edges on a floor from folding lines to split lines within the SlabShapeEditor. ### Method - **SlabShapeEditor.CreateCreasesFromFoldingLines()**: Converts selected edges on a floor from folding lines to split lines. ``` -------------------------------- ### Applications API Additions Source: https://www.revitapidocs.com/2023/news New property to control the graphical display of Area Based Load Boundary disconnects. ```APIDOC ## Applications API Additions ### Description Controls the graphical display of open ends for Area Based Load Boundary disconnects. ### Property - **Application.ShowGraphicalOpenEndsAreaBasedLoadBoundaryDisconnects** (bool): Indicates whether to show the graphical open ends for Area Based Load Boundary disconnects. ``` -------------------------------- ### Parameter API Additions Source: https://www.revitapidocs.com/2023/news New utility methods for working with parameters in the Revit API. ```APIDOC ## Parameterutils.IsBuiltInParameter() ### Description Checks whether an ElementId identifies a built-in parameter. An ElementId identifies a built-in parameter if it corresponds to a valid BuiltInParameter value. ### Method *Implied: Static method call on Parameterutils class* ### Endpoint N/A (Static method) ``` -------------------------------- ### Selection API Additions - Selection Source: https://www.revitapidocs.com/2023/news New methods for selecting references and retrieving currently selected references. ```APIDOC ## Selection API additions - Selection ### Description Methods for selecting references (elements or sub-elements in host or linked documents) and retrieving the currently selected references. ### Method `Autodesk.Revit.UI.Selection.SetReferences()` `Autodesk.Revit.UI.Selection.GetReferences()` ### Endpoint N/A (Method calls) ``` -------------------------------- ### View Projection and Sheet Space Transformation Source: https://www.revitapidocs.com/2023/news New methods for transforming between a view's projection space and sheet space, and checking for viewport transforms. ```APIDOC ## Viewport.GetProjectionToSheetTransform() ### Description Transforms from a view's projection space to sheet space. ### Method Method ### Endpoint Viewport.GetProjectionToSheetTransform() ## Viewport.HasViewportTransforms() ### Description Checks if the viewport has any associated transforms. ### Method Method ### Endpoint Viewport.HasViewportTransforms() ``` -------------------------------- ### View API Additions Source: https://www.revitapidocs.com/2023/news New functionalities for duplicating sheets and transforming between model and view projection spaces. ```APIDOC ## View API Additions ### Duplicating Sheets #### Description Allows you to indicate what information should be copied when duplicating a sheet and to identify sheets which can be duplicated. #### Enum `SheetDuplicateOption` #### Values - `DuplicateEmptySheet` - Only copies the title block. - `DuplicateSheetWithDetailing` - Copies the title block and details. - `DuplicateSheetWithViewsOnly` - Copies the title block, details, viewports and contained views. The newly created sheet will reference the newly duplicated views. - `DuplicateSheetWithViewsAndDetailing` - Copies the title block, details, and viewports. Duplicates the sheet's contained views with detailing. The newly created sheet will reference the newly duplicated views. - `DuplicateSheetWithViewsAsDependent` - Copies the title block, details, and viewports. Duplicates the sheet's contained views as dependent. The newly created sheet will reference the newly duplicated dependent views. #### Methods `ViewSheet.Duplicate(SheetDuplicateOption)` `ViewSheet.CanBeDuplicated(SheetDuplicateOption)` ### Transforming from Model Space to View Projection Space #### Description New methods in `View` and `TransformWithBoundary` allow you to transform between model space and a view's projection space. #### Methods `TransformWithBoundary.GetModelToProjectionTransform()` `TransformWithBoundary.GetBoundary()` - Returns the boundary for the model space to view projection space transform. `View.GetModelToProjectionTransforms()` - Gets the transforms from the model space to the view projection space. Views with split crop regions have more than one transform. `View.HasViewTransforms()` - Returns true if the view reports model space to view projection space transforms. Schedules and legends, for example, do not report any. ``` -------------------------------- ### Selection API Additions - UIApplication Events Source: https://www.revitapidocs.com/2023/news New events for UIApplication and UIControlledApplication related to selection changes. ```APIDOC ## Selection API additions - UIApplication Events ### Description Events to subscribe to and be notified after the selection has changed. ### Event `Autodesk.Revit.UI.UIApplication.SelectionChanged` `Autodesk.Revit.UI.UIControlledApplication.SelectionChanged` ### Endpoint N/A (Event subscription) ``` -------------------------------- ### Mechanical API Additions - Zone Element Domain Data Source: https://www.revitapidocs.com/2023/news Introduces a base class for specific domain requirements for a zone in the mechanical domain. ```APIDOC ## Autodesk.Revit.DB.Mechanical.ZoneElementDomainData Class ### Description A base class for specific domain requirements for a zone. ``` -------------------------------- ### Bus Data API Source: https://www.revitapidocs.com/2023/news New class for representing analytical bus data, including rating, voltage, and current calculations. ```APIDOC ## AnalyticalBusData Class ### Description Represents the data and parameters of an analytical bus node. ## AnalyticalBusData.Rating Property ### Description Represents the rating value of the analytical bus. ### Method Property ### Endpoint AnalyticalBusData.Rating ## AnalyticalBusData.Voltage Property ### Description Represents the voltage value of the analytical bus. ### Method Property ### Endpoint AnalyticalBusData.Voltage ## AnalyticalBusData.GetTotalCurrent() ### Description Gets the total connected current. ### Method Method ### Endpoint AnalyticalBusData.GetTotalCurrent() ``` -------------------------------- ### Equipment Load Data API Source: https://www.revitapidocs.com/2023/news New class for representing data and parameters of point load nodes, including apparent load, power factor, and load classification. ```APIDOC ## AnalyticalEquipmentLoadData Class ### Description Represents the data and parameters of a point load node. ## AnalyticalEquipmentLoadData.ApparentLoad Property ### Description Represents the electrical apparent load of analytical equipment load. ### Method Property ### Endpoint AnalyticalEquipmentLoadData.ApparentLoad ## AnalyticalEquipmentLoadData.PowerFactor Property ### Description Represents the power factor of analytical equipment load. ### Method Property ### Endpoint AnalyticalEquipmentLoadData.PowerFactor ## AnalyticalEquipmentLoadData.TrueLoad Property ### Description Represents the electrical true load of analytical equipment load. ### Method Property ### Endpoint AnalyticalEquipmentLoadData.TrueLoad ## AnalyticalEquipmentLoadData.LoadClassification Property ### Description Represents the load classification of analytical equipment load. ### Method Property ### Endpoint AnalyticalEquipmentLoadData.LoadClassification ## AnalyticalEquipmentLoadData.LoadType Property ### Description Represents the load type of analytical equipment load. ### Method Property ### Endpoint AnalyticalEquipmentLoadData.LoadType ## ElectricalLoadType Enum ### Description Represents the electrical load type. ## ElectricalAnalyticalNodeType Enum ### Description Represents the type of electrical analytical node. ``` -------------------------------- ### Check AXM Import Availability Source: https://www.revitapidocs.com/2023/news Call OptionalFunctionalityUtils.IsAXMImportLinkAvailable() to check if the functionality for importing AXM files is currently accessible. ```C# OptionalFunctionalityUtils.IsAXMImportLinkAvailable() ``` -------------------------------- ### Filled Region for Sketch Plane Source: https://www.revitapidocs.com/2023/news Introduces the `FilledRegion.Create()` method for creating filled regions on a sketch plane in a 3D family. ```APIDOC ## Filled Region for sketch plane ### Description Creates a filled region on a sketch plane in a 3D family. ### Method `FilledRegion.Create()` ### Endpoint N/A (Method call) ``` -------------------------------- ### Print API Additions - IViewSheetSet Source: https://www.revitapidocs.com/2023/news Enhancements to the IViewSheetSet interface for managing ordered view sheet lists. ```APIDOC ## Autodesk.Revit.DB.IViewSheetSet Properties ### Description The IViewSheetSet interface now supports an ordered view sheet list. You can access or arrange this list using new APIs. Ordering can be automatic or manual, controlled by the `IsAutomatic` property. In automatic mode, the list is ordered by Sheet/View organization, configurable via `SheetOrganizationId` and `ViewOrganizationId`. For manual ordering, use `OrderedViewList`. ### Properties - **OrderedViewList** (List) - Views and sheets ids in order. The order is affected by Sheet/ViewOrganizationId and IsAutomatic. Throws Autodesk.Revit.Exceptions.ArgumentNullException when the input ordered view list is null. - **SheetOrganizationId** (ElementId) - An ElementId to the Autodesk.Revit.DB.BrowserOrganzation for sheets. If IViewSheetSet.IsAutomatic is true, Sheets will be ordered by SheetOrganization. - **ViewOrganizationId** (ElementId) - An ElementId to the Autodesk.Revit.DB.BrowserOrganzation for non-sheet views. If IViewSheetSet.IsAutomatic is true, Views will be ordered by ViewOrganization. - **IsAutomatic** (bool) - Represents automatic or manual ordering of the list. ``` -------------------------------- ### Energy Analysis API Additions Source: https://www.revitapidocs.com/2023/news New properties and methods for accessing energy analysis data, including space volume and surface geometry. ```APIDOC ## Energy Analysis API Additions ### Description Provides access to enhanced energy analysis data, including detailed volume calculations for spaces and geometric information for surfaces. ### Properties - **EnergyAnalysisSpace.Volume** (double): The enclosed volume of the space. Calculation method depends on how the space was created. ### Methods - **EnergyAnalysisSurface.GetPolyloops()**: Gets the collection of planar polygons describing the surface or opening geometry. Geometry is measured per analytical (center-line). ### Returns - **GetPolyloops()**: Returns a collection of polyloops (planar polygons) describing the geometry. ``` -------------------------------- ### Structure API Additions - RebarHostData Source: https://www.revitapidocs.com/2023/news New method RebarHostData.IsReferenceContainedByAValidHost() to check if an element can host reinforcement. ```APIDOC ## Structure API additions - RebarHostData ### Description Identifies whether an element that contains the given reference can host reinforcement. ### Method `RebarHostData.IsReferenceContainedByAValidHost()` ### Endpoint N/A (Method call) ``` -------------------------------- ### Geometry API Additions Source: https://www.revitapidocs.com/2023/news New additions to the Geometry API, including BoundingBoxXYZ and SymbolGeometryId. ```APIDOC ## Geometry API Additions ### Bounding Box API #### Description Checks if the bounding box is Enabled and not empty. #### Property `BoundingBoxXYZ.IsSet` ### Geometry Managed by Symbol Element #### Description Used to identify a piece of geometry managed by a symbol element. Can be used to compare if two instances point to the same piece of geometry managed by a symbol element. #### Method `SymbolGeometryId.AsUniqueIdentifier()` Converts the `SymbolGeometryId` to a string that can be used in comparisons to see if two instances point to the same piece of geometry managed by the same symbol element. #### Property `SymbolGeometryId.SymbolId` The id of the symbol that is containing the geometry that is shared. ``` -------------------------------- ### Swapping Viewports on Sheets Source: https://www.revitapidocs.com/2023/news Allows swapping the view associated with a viewport on a sheet and provides options for positioning. ```APIDOC ## Viewport.ViewId Property ### Description Editable property to change the view associated with a viewport. ### Method Property ### Endpoint Viewport.ViewId ## Viewport.ViewportPositioning Enum ### Description Specifies how the viewport will be positioned on the sheet when swapped to another view. Options include ViewportPositioning.ViewportCenter (default) and ViewportPositioning.ViewOrigin. ## Viewport.IsViewIdValidForViewport() ### Description Verifies if a given View ID is valid for the current viewport. ### Method Method ### Endpoint Viewport.IsViewIdValidForViewport(viewId) ``` -------------------------------- ### ShapeImporter File Type Support Source: https://www.revitapidocs.com/2023/news The ShapeImporter enumeration now supports SKP, STL, and OBJ file types for importing data. ```C# ShapeImporter.SKP ``` ```C# ShapeImporter.STL ``` ```C# ShapeImporter.OBJ ``` -------------------------------- ### Annotation API Additions - Tag Leader Source: https://www.revitapidocs.com/2023/news New enumeration and properties for controlling tag leader visibility and presentation. ```APIDOC ## Annotation API Additions - Tag Leader ### Description New enumeration for tag leader presentation modes and properties/methods for controlling leader visibility and elbow merging. ### Enumeration - **LeadersPresentationMode**: Defines how leaders should be displayed on a tag. - Values: ShowAll, HideAll, ShowOnlyOne, ShowSpecificLeaders ### Properties - **IndependentTag.MergeElbows** (bool): Indicates whether the leader's elbows are merged. ### Methods - **IndependentTag.IsLeaderVisible(reference)**: Returns whether the leader pointing to the specified reference is visible. - **IndependentTag.SetIsLeaderVisible(reference, visible)**: Sets the visibility of the leader pointing to the specified reference. ### Parameters - **reference** (Reference): The reference for which to check or set leader visibility. - **visible** (bool): The desired visibility state for the leader. ``` -------------------------------- ### Element API Additions Source: https://www.revitapidocs.com/2023/news New features for the Element API, including checking modifiability and accessing external resource references. ```APIDOC ## Element API Additions ### Description Enhancements to the Element API for checking modifiability and accessing multiple external resource references. ### Properties - **Element.IsModifiable** (bool): Identifies if an element can be modified. Its state depends on the document's current state, such as active edit modes. ### Methods - **GetExternalResourceReferencesExpanded()**: Gets the expanded map of external resource references for an element. - **GetExternalResourceReferenceExpanded(externalResourceType)**: Gets the collection of ExternalResourceReference associated with a specified external resource type. ### Parameters - **externalResourceType** (ExternalResourceReferenceType): The type of external resource reference to retrieve. ``` -------------------------------- ### Electrical Analytical Node API Source: https://www.revitapidocs.com/2023/news New class for representing electrical analytical nodes, including types, loads, and connection methods. ```APIDOC ## ElectricalAnalyticalNode Class ### Description Represents an electrical analytical node. ## ElectricalAnalyticalNodeType Enum ### Description Represents the type of electrical analytical node. ## ElectricalAnalyticalNode.TotalLoad Property ### Description Represents the total connected load. ### Method Property ### Endpoint ElectricalAnalyticalNode.TotalLoad ## ElectricalAnalyticalNode.CanConnectToUpstreamNode() ### Description Verifies that the current node can connect to the upstream node. ### Method Method ### Endpoint ElectricalAnalyticalNode.CanConnectToUpstreamNode() ## ElectricalAnalyticalNode.CanDisconnectFromUpstreamNode() ### Description Verifies that the current node can disconnect from the upstream node. ### Method Method ### Endpoint ElectricalAnalyticalNode.CanDisconnectFromUpstreamNode() ## ElectricalAnalyticalNode.ClearConnections() ### Description Clears all connections for the electrical analytical node. ### Method Method ### Endpoint ElectricalAnalyticalNode.ClearConnections() ## ElectricalAnalyticalNode.ConnectToUpstreamNode() ### Description Connects the current node to the upstream node. ### Method Method ### Endpoint ElectricalAnalyticalNode.ConnectToUpstreamNode() ## ElectricalAnalyticalNode.Create() ### Description Creates an electrical analytical node. ### Method Method ### Endpoint ElectricalAnalyticalNode.Create() ## ElectricalAnalyticalNode.DisconnectFromUpstreamNode() ### Description Disconnects the current node from the upstream node. ### Method Method ### Endpoint ElectricalAnalyticalNode.DisconnectFromUpstreamNode() ## ElectricalAnalyticalNode.GetAnalyticalPropertyData() ### Description Gets the analytical property data for the node. ### Method Method ### Endpoint ElectricalAnalyticalNode.GetAnalyticalPropertyData() ## ElectricalAnalyticalNode.GetDownstreamNodeIds() ### Description Gets the IDs of the downstream nodes. ### Method Method ### Endpoint ElectricalAnalyticalNode.GetDownstreamNodeIds() ## ElectricalAnalyticalNode.GetUpstreamNodeIds() ### Description Gets the IDs of the upstream nodes. ### Method Method ### Endpoint ElectricalAnalyticalNode.GetUpstreamNodeIds() ``` -------------------------------- ### DirectShape API Additions Source: https://www.revitapidocs.com/2023/news Enhancements to the DirectShape API for controlling user assignability. ```APIDOC ## DirectShape API Additions ### Type Assignability #### Description Provides API-level control for whether a given `DirectShapeType` will appear in the type selector drop-down in the Revit user interface and whether an existing `DirectShape` can have its type changed to the given `DirectShapeType`. #### Property `DirectShapeType.UserAssignability` ``` -------------------------------- ### Panel Schedule API Source: https://www.revitapidocs.com/2023/news Method to set the lock state for a circuit slot in a panel schedule. ```APIDOC ## PanelScheduleView.SetLockSlot() ### Description Allows an application to set the lock state for a circuit slot at a specific cell. ### Method Method ### Endpoint PanelScheduleView.SetLockSlot(cell, lockState) ``` -------------------------------- ### Export Revit Geometry to OBJ Source: https://www.revitapidocs.com/2023/news Use Document.Export(String, String, OBJExportOptions) to export Revit geometry to the OBJ format. Configure export settings using the OBJExportOptions class. ```C# Document.Export(String, String, OBJExportOptions) ``` -------------------------------- ### Analytical Power Source API Source: https://www.revitapidocs.com/2023/news Represents data and parameters for an analytical power source node, including total connected current and voltage. ```APIDOC ## Autodesk.Revit.DB.Electrical.AnalyticalPowerSourceData Class ### Description Represents the data and parameters of an analytical power source node. ### Properties - **AnalyticalPowerSourceData.TotalConnectedCurrent** (double) - The total connected current. - **AnalyticalPowerSourceData.Voltage** (double) - The voltage value. ``` -------------------------------- ### MEP API Additions Source: https://www.revitapidocs.com/2023/news New features and methods for MEP (Mechanical, Electrical, Plumbing) elements in the Revit API. ```APIDOC ## ConnectorElement.ChangeHostReference() ### Description Changes the connector's host reference using a plane reference alone, or a plane reference plus an edge. A plane reference alone allows the connector position to move along the plane later, while a plane reference plus an edge fixes the connector position by the edge loop. ### Method *Implied: Method call on a ConnectorElement instance* ### Endpoint N/A (Method within a class) ## Autodesk.Revit.DB.SpatialElement.GetSpatialElementDomainData() ### Description Gets the domain data for the spatial element. The domain data contains information of different spatial elements, such as electrical load area. Currently, rooms, spaces, and areas do not have domain data. ### Method *Implied: Method call on a SpatialElement instance* ### Endpoint N/A (Method within a class) ## Autodesk.Revit.DB.FabricationPart.Flip() ### Description Flips a directionally oriented fabrication part (tees, crosses, valves, dampers, etc.) to the opposite direction. Existing connections will be maintained. Disconnect warnings will be posted if the connection cannot be maintained. ### Method *Implied: Method call on a FabricationPart instance* ### Endpoint N/A (Method within a class) ``` -------------------------------- ### Mechanical API Additions - Zone Create Area Based Load Source: https://www.revitapidocs.com/2023/news Provides a method to create a new instance of an area-based load and add it to the document within the mechanical domain. ```APIDOC ## Autodesk.Revit.DB.Mechanical.Zone.CreateAreaBasedLoad() Method ### Description Creates a new instance of an area-based load and adds it to the document. ``` -------------------------------- ### Distribution Node Property Data API Source: https://www.revitapidocs.com/2023/news New class for representing data and parameters of electrical analytical nodes, including the number of poles. ```APIDOC ## AnalyticalDistributionNodePropertyData Class ### Description Represents the data and parameters of an electrical analytical node. ## AnalyticalDistributionNodePropertyData.NumberOfPoles Property ### Description Represents the number of poles for the electrical analytical node. ### Method Property ### Endpoint AnalyticalDistributionNodePropertyData.NumberOfPoles ``` -------------------------------- ### Deprecated Reinforcement Element Methods Source: https://www.revitapidocs.com/2023/news The following methods related to Reinforcement Elements have been deprecated as their functionality is now handled automatically based on detail level. ```APIDOC ## Deprecated Reinforcement Element API ### Description These methods are deprecated because the representation of Reinforcement elements as solid in a 3D view is now handled automatically at Fine detail level. There are no direct replacements as the geometry handling is automatic. ### Deprecated Methods - `Rebar.IsSolidInView()` - `Rebar.SetSolidInView()` - `AreaReinforcement.IsSolidInView()` - `AreaReinforcement.SetSolidInView()` - `PathReinforcement.IsSolidInView()` - `PathReinforcement.SetSolidInView()` - `RebarInSystem.IsSolidInView()` - `RebarInSystem.SetSolidInView()` - `FabricSheet.IsSolidInView()` - `FabricSheet.SetSolidInView()` - `RebarContainer.IsSolidInView()` - `RebarContainer.SetSolidInView()` ``` -------------------------------- ### Schedule API Additions - ScheduleDefinition Filtering Source: https://www.revitapidocs.com/2023/news New property and method for filtering schedules by sheet. ```APIDOC ## Schedule API Additions: ScheduleDefinition Filtering ### Description Introduces functionality to check and determine if a schedule is filtered by sheet, and to validate if a category can be filtered by sheet. ### New Property - `Autodesk.Revit.DB.ScheduleDefinition.IsFilteredBySheet`: Indicates whether the schedule is currently set to filter by sheet. ### New Method - `Autodesk.Revit.DB.ScheduleDefinition.IsValidCategoryForFilterBySheet()`: Checks if the current schedule's category is valid for filtering by sheet. ``` -------------------------------- ### Check if Bounding Box is Set Source: https://www.revitapidocs.com/2023/news Use BoundingBoxXYZ.IsSet to determine if a bounding box is enabled and contains valid data. ```C# BoundingBoxXYZ.IsSet ``` -------------------------------- ### Area Based Load Boundary Line Data API Source: https://www.revitapidocs.com/2023/news Provides a wrapper for accessing data related to area-based load boundary lines, including level IDs and elevation checks. ```APIDOC ## AreaBasedLoadBoundaryLineData Class ### Description Wrapper class for accessing area-based load boundary line related data. ### Properties - **AreaBasedLoadBoundaryLineData.TopLevelId** (ElementId) - The ID of the top level. - **AreaBasedLoadBoundaryLineData.BottomLevelId** (ElementId) - The ID of the bottom level. ### Methods - **AreaBasedLoadBoundaryLineData.GetLevelIdsInRange()**: Returns level IDs between the top and bottom levels (inclusive). - **AreaBasedLoadBoundaryLineData.IsElevationWithinRange()**: Checks if a given elevation is within the level range (inclusive). - **AreaBasedLoadBoundaryLineData.IsLevelWithinRange()**: Checks if a given level is within the level range (inclusive). ``` -------------------------------- ### Duplicate and Check Sheet Duplication Capability Source: https://www.revitapidocs.com/2023/news Use ViewSheet.Duplicate(SheetDuplicateOption) to duplicate sheets with specified options and ViewSheet.CanBeDuplicated(SheetDuplicateOption) to check if a sheet can be duplicated. ```C# ViewSheet.Duplicate(SheetDuplicateOption) ``` ```C# ViewSheet.CanBeDuplicated(SheetDuplicateOption) ``` -------------------------------- ### Project Browser API Removal Source: https://www.revitapidocs.com/2023/news The enum value `Autodesk.Revit.DB.BrowserOrganizationType.Families` has been removed from the public API. ```APIDOC ## Project Browser API Removal ### Description The enum value `Autodesk.Revit.DB.BrowserOrganizationType.Families` is no longer exposed in the public API as it had no user-facing application. ### Removed Enum Value - `Autodesk.Revit.DB.BrowserOrganizationType.Families` ``` -------------------------------- ### Boundary Validation for Sketched Elements Source: https://www.revitapidocs.com/2023/news Provides new methods for validating boundary curves on views and sketch planes. ```APIDOC ## Boundary Validation for sketched elements ### Description Checks the validity of curve loop boundaries on view sketch planes and general sketch planes. ### Method `BoundaryValidation.IsValidBoundaryOnView()` `BoundaryValidation.IsValidBoundaryOnSketchPlane()` ### Endpoint N/A (Method calls) ``` -------------------------------- ### Area Based Load Type API Source: https://www.revitapidocs.com/2023/news New class for representing area-based load types, including density, power factor, and load classification, with a method to create new types. ```APIDOC ## AreaBasedLoadType Class ### Description Represents an area based load type in Autodesk Revit. ## AreaBasedLoadType.ApparentPowerDensity Property ### Description Represents the apparent power density of an area based load type. ### Method Property ### Endpoint AreaBasedLoadType.ApparentPowerDensity ## AreaBasedLoadType.LoadClassification Property ### Description Represents the load classification of an area based load type. ### Method Property ### Endpoint AreaBasedLoadType.LoadClassification ## AreaBasedLoadType.LoadDensity Property ### Description Represents the load density of an area based load type. ### Method Property ### Endpoint AreaBasedLoadType.LoadDensity ## AreaBasedLoadType.PowerFactor Property ### Description Represents the power factor of an area based load type. ### Method Property ### Endpoint AreaBasedLoadType.PowerFactor ## AreaBasedLoadType.Create() ### Description Creates an area based load type. ### Method Method ### Endpoint AreaBasedLoadType.Create() ``` -------------------------------- ### Document API Additions - Changed Elements Source: https://www.revitapidocs.com/2023/news New functionality to identify elements that have changed since a previous document version. ```APIDOC ## Document API Additions - Changed Elements ### Description New class and methods for tracking element changes between document versions. ### Classes - **Autodesk.Revit.DB.ChangedElements**: Allows users to identify elements that have changed since a previous version of the document. ### Methods - **Document.GetDocumentVersion()**: Retrieves the current document version. - **Document.GetChangedElements(version)**: Returns a collection of elements that have changed between the specified input version and the document's current version. ### Parameters - **version** (DocumentVersion): The previous document version to compare against. ``` -------------------------------- ### Structure API Additions - Area Load Source: https://www.revitapidocs.com/2023/news New methods for creating Area Loads and checking host validity for area loads. ```APIDOC ## Structure API additions - Area Load ### Description Methods for creating hosted area loads and checking if a host ID is valid for area loads. ### Method `Autodesk.Revit.DB.Structure.AreaLoad.Create()` `Autodesk.Revit.DB.Structure.AreaLoad.isValidHostId()` ### Endpoint N/A (Method calls) ``` -------------------------------- ### Electrical Load Area Data API Source: https://www.revitapidocs.com/2023/news Manages electrical load area data, including creating load areas on plan circuits and checking for circuits without them. ```APIDOC ## ElectricalLoadAreaData Class ### Description Represents the electrical load area data. ### Methods - **ElectricalLoadAreaData.CreateElectricalLoadAreas()**: Creates electrical load areas on all empty plan circuits of a given level. - **ElectricalLoadAreaData.HasCircuitsWithoutElectricalLoadAreas()**: Checks if there are any empty plan circuits without electrical load areas. - **ElectricalLoadAreaData.GetAreaBasedLoadIds()**: Retrieves the IDs of area-based loads to be included in the electrical load area. ``` -------------------------------- ### Area Based Load Data API Source: https://www.revitapidocs.com/2023/news Provides access to electrical area-based load data, including methods to add, retrieve, and remove electrical load areas, and properties for load characteristics. ```APIDOC ## AreaBasedLoadData Class ### Description Represents the electrical area based load data. ### Methods - **AreaBasedLoadData.AddElectricalLoadArea()**: Adds an electrical load area to the area-based load. - **AreaBasedLoadData.GetElectricalLoadAreas()**: Retrieves the electrical load areas included in the area-based load. - **AreaBasedLoadData.RemoveElectricalLoadArea()**: Removes an electrical load area from the area-based load. - **Autodesk.Revit.DB.CurveElement.CreateAreaBasedLoadBoundaryLine()**: Creates an area-based load boundary line. ### Properties - **AreaBasedLoadData.ApparentLoad** (double) - The electrical apparent load of the area-based load. - **AreaBasedLoadData.ApparentPowerDensity** (double) - The apparent power density of the area-based load. - **AreaBasedLoadData.Current** (double) - The current of the area-based load. - **AreaBasedLoadData.AreaBasedLoadType** (AreaBasedLoadType) - The electrical area-based load type. - **AreaBasedLoadData.LoadClassification** (LoadClassification) - The load classification. - **AreaBasedLoadData.LoadDensity** (double) - The load density. - **AreaBasedLoadData.LoadType** (LoadType) - The load type. - **AreaBasedLoadData.PhasesNumber** (int) - The number of phases. - **AreaBasedLoadData.PowerFactor** (double) - The power factor. - **AreaBasedLoadData.TrueLoad** (double) - The electrical true load. - **AreaBasedLoadData.Voltage** (double) - The voltage. ``` -------------------------------- ### View Placement on Sheet Status Source: https://www.revitapidocs.com/2023/news New enum for indicating view placement status on sheets and a method to retrieve this status. ```APIDOC ## ViewPlacementOnSheetStatus Enum ### Description Indicates whether a View is placed on a Sheet, either completely or partially. ## Viewport.GetPlacementOnSheetStatus() ### Description Determines if this view is placed on a sheet completely or partially. ### Method Method ### Endpoint Viewport.GetPlacementOnSheetStatus() ``` -------------------------------- ### Delete Workset API Source: https://www.revitapidocs.com/2023/news API for deleting worksets from a Revit model, with options to manage elements within the workset. ```APIDOC ## Delete Workset API ### Description Supports deleting of worksets from the model. It takes a `DeleteWorksetSettings` input with options for what to do with elements contained by that workset. ### Method `WorksetTable.DeleteWorkset()` ``` -------------------------------- ### Electrical Load Classification Source: https://www.revitapidocs.com/2023/news New property to indicate if an electrical load classification is for spare use. ```APIDOC ## ElectricalLoadClassification.Spare Property ### Description Read-only property indicating if this load classification is to be used for spare. ### Method Property ### Endpoint ElectricalLoadClassification.Spare ``` -------------------------------- ### ElementId Parsing Source: https://www.revitapidocs.com/2023/news Provides methods for parsing string representations of ElementIds, including handling invalid IDs and exceptions. ```APIDOC ## ElementId Parsing ### Description Methods for converting string representations of ElementIds to ElementId objects. ### Methods - **ElementId.Parse()**: Parses a string into an ElementId. Returns Autodesk.Revit.DB.ElementId.InvalidElementId if the string represents an invalid ID. Throws Autodesk.Revit.Exceptions.InvalidOperationException if the string cannot be parsed. - **ElementId.TryParse()**: Attempts to parse a string into an ElementId. Returns false on failure instead of throwing an exception. The returned ElementId is undefined on failure. ### Parameters - **elementIdString** (string) - The string representation of the ElementId to parse. ``` -------------------------------- ### Analytical Transfer Switch Data API Source: https://www.revitapidocs.com/2023/news Represents data and parameters for electrical analytical transfer switches, including current rating and voltage. ```APIDOC ## AnalyticalTransferSwitchData Class ### Description Represents the data and parameters of an electrical analytical transfer switch. ### Properties - **AnalyticalTransferSwitchData.CurrentRating** (double) - The current rating value. - **AnalyticalTransferSwitchData.Voltage** (double) - The voltage value. ### Methods - **AnalyticalTransferSwitchData.GetTotalCurrent()**: Gets the total connected current of the electrical analytical transfer switch. ``` -------------------------------- ### Delete Workset API Source: https://www.revitapidocs.com/2023/news Use WorksetTable.DeleteWorkset() to remove worksets from the model. It requires DeleteWorksetSettings to specify how to handle elements within the workset. ```C# WorksetTable.DeleteWorkset() ``` -------------------------------- ### Duplicate Sheet Options Source: https://www.revitapidocs.com/2023/news The SheetDuplicateOption enum provides options for copying information when duplicating a sheet, including duplicating views with or without detailing, or as dependent views. ```C# SheetDuplicateOption ``` ```C# DuplicateEmptySheet - Only copies the title block. ``` ```C# DuplicateSheetWithDetailing - Copies the title block and details. ``` ```C# DuplicateSheetWithViewsOnly - Copies the title block, details, viewports and contained views. The newly created sheet will reference the newly duplicated views. ``` ```C# DuplicateSheetWithViewsAndDetailing - Copies the title block, details, and viewports. Duplicates the sheet's contained views with detailing. The newly created sheet will reference the newly duplicated views. ``` ```C# DuplicateSheetWithViewsAsDependent - Copies the title block, details, and viewports. Duplicates the sheet's contained views as dependent. The newly created sheet will reference the newly duplicated dependent views. ``` -------------------------------- ### Obsolete API Members Removal Source: https://www.revitapidocs.com/2023/news Several API members and classes previously marked as deprecated have been removed in this release. ```APIDOC ## Obsolete API Removal ### Description The following API members and classes, previously marked as deprecated, have been removed in this release. Consult prior API documentation for information on replacements. ### Removed Classes - `Autodesk.Revit.UI.SetupEnergySimulationDialog` ### Removed Methods - `AnalyticalToPhysicalRelationManager.UpdateRelation()` - `AnalyticalToPhysicalRelationManager.GetNeighborIds()` - `Autodesk.Revit.Creation.Document.NewFloor()` - `Autodesk.Revit.Creation.Document.NewSlab()` - `Autodesk.Revit.Creation.Document.NewFoundationSlab()` - `Definition.GetSpecTypeId()` - `ExternalDefinitionCreationOptions(string, ParameterType)` - `FamilyManager.AddParameter(string, BuiltInParameterGroup, ParameterType, bool)` - `FabricationNetworkChangeService.SetGroupId()` - `FabricationNetworkChangeService.SetRestrictGroup()` - `FabricationService.IsValidGroupIndex()` - `FabricationService.GetGroupName()` - `FabricationService.IsGroupExcluded()` - `FabricationService.SetServiceGroupExclusions()` - `GlobalParameter.Create(Document, string, ParameterType)` - `GlobalParameter.IsValidDataType(ParameterType)` - `IndependentTag.GetTaggedLocalElement()` - `IndependentTag.GetTaggedReference()` - `LabelUtils.GetLabelFor()` - `RevisionSettings.GetNumericRevisionSettings()` - `RevisionSettings.SetNumericRevisionSettings()` - `RevisionSettings.GetAlphanumericRevisionSettings()` - `RevisionSettings.SetAlphanumericRevisionSettings()` - `TemperatureRatingType.AddCorrectionFactor()` - `UnitUtils.GetAllSpecs()` - `UnitUtils.GetUnitGroup()` - `UnitUtils.IsSpec()` ### Removed Properties - `BarTypeDiameterOptions.BarDiameter` - `CorrectionFactor.Temperature` - `Definition.ParameterType` - `ExternalDefinition.ParameterType` - `ExternalDefinitionCreationOptions.Type` - `FabricationService.GroupCount` - `FabricationServiceButton.GroupIndex` - `FabricationPartSizeMap.GroupId` - `FabricationConfigurationInfo.CloudVersion` - `FabricationConfigurationInfo.IsConnected` - `IndependentTag.TaggedLocalElementId` - `IndependentTag.TaggedElementId` - `IndependentTag.HasElbow` - `IndependentTag.LeaderElbow` - `IndependentTag.LeaderEnd` - `InternalDefinition.ParameterType` - `RebarBarType.BarDiameter` - `RebarBendData.BarDiameter` - `RebarUpdateCurvesData.GetBarDiameter` - `RevisionSettings.NumberType` ### Removed Enums - `ParameterType` - `UnitGroup` ``` -------------------------------- ### Element Category Property Source: https://www.revitapidocs.com/2023/news Accessing the BuiltInCategory value for an element's category. ```APIDOC ## Element Category Property ### Description Provides access to the BuiltInCategory value for an element's category. ### Property - **Autodesk.Revit.DB.BuiltInCategory.Category** (Autodesk.Revit.DB.BuiltInCategory): The BuiltInCategory value for the category. Returns Autodesk.Revit.DB.BuiltInCategory.INVALID if the category is not a built-in category. ``` -------------------------------- ### Control DirectShape Type Visibility and Assignability Source: https://www.revitapidocs.com/2023/news DirectShapeType.UserAssignability controls whether a DirectShapeType appears in the Revit UI's type selector and if existing DirectShapes can be reassigned to this type. ```C# DirectShapeType.UserAssignability ``` -------------------------------- ### Structure API Additions - RebarCoupler Source: https://www.revitapidocs.com/2023/news New property RebarCoupler.RotationAngle to identify the rotation angle of a coupler around its axis. ```APIDOC ## Structure API additions - RebarCoupler ### Description Identifies the rotation angle of the coupler around its axis. ### Property `RebarCoupler.RotationAngle` ### Endpoint N/A (Property access) ```