What's New in the Revit 2017.1 API

I recently mentioned the updated Revit 2017.1 SDK and its API enhancements.

They are documented in full detail in the section Major additions to the 2017.1 Revit API of the Revit 2017.1 API help file RevitAPI.chm included with the SDK, which is also provided there in the separate stand-alone document Revit Platform API Changes and Additions.docx.

For convenient, easy and effective web searching, here is the online version of that information.

I am only including that specific section here.

The rest of the document contents are identical with the original information about What's New in the Revit 2017 API provided with the initial release of the Revit 2017 API.

I made one small enhancement to that existing blog post as well, though:

Small Addendum to What's New in the Revit 2017 API

I just made a small modification, adding the following note to What's New in the Revit 2017 API:

It was missing in the version I originally published. I don't know when it slunk in there without me noticing.

More About What's New

The What's New section always provides very important information, both for discovering and exploring the newly added API functionality and for later reference.

If you encounter any issues migrating your existing add-ins between different versions, this is one of the first ports of call.

Here are links to the preceding 'What's New in the API' discussions:

For more detailed information, please refer to the complete API documentation and samples collection in the SDK and the online Revit API Developers Guide provided as part of the Revit 2017 Help.

Major Additions to the 2017.1 Revit API

API enabled in perspective views

Element modifications and contextual commands

Modification of many different object types is now allowed in perspective views. Most commands allowed in 3D orthographic views are now also allowed in perspective views. This includes contextual commands. Annotations are an exception and cannot be created in perspective views.

External commands and applications

External API commands and applications are now enabled by default in perspective views. The following behaviour applies:

Geometry API additions

BRepBuilder API additions

Two new methods have been added to handle problematic faces:

BRepBuilderSurfaceGeometry API additions

A new overload of the method:

constructs a BRepBuilderSurfaceGeometry based on NURBS surface data, where the weights are not supplied.

Ellipse API additions

The new method:

creates a new geometric ellipse or elliptical arc object.

RevolvedSurface API additions

The new method:

returns a copy of the profile curve expressed in the world coordinate system.

Dimension API additions

DimensionEqualityLabelFormating API

The new class:

allows users to set dimension equality formulas for continuous linear or angular dimensions.

New methods and properties include:

The following new methods in DimensionType allow access to equality formulas:

UnitsFormatOptions in DimensionType

The new functions:

allow users to get or set the FormatOptions for a DimensionType.

OrdinateDimensionSetting

The new class:

allows users to customize ordinate dimensions.

The new enum:

allows users to choose continuous or segmented line styles for their dimensions.

The new enums:

allows users to orient text in relation to the dimension lines or witness lines.

The new enum:

allows users to control visibility of their dimensions.

New properties in OrdinateDimensionSetting include:

The following new methods in DimensionType allow access to the OrdinateDimensionSetting:

FabricationPart detailing API

Split Parts API

The following methods have been added to support splitting fabrication parts:

Detailed Fabrication additions

Several methods, properties classes and enumerations have been added to allow the user to access detailed fabrication information defined in the fabrication configuration and in use on the fabrication parts.

The following methods allow access fabrication data defined by the currently loaded fabrication configuration. These can be used to query what fabrication data is available for fabrication parts to use:

The following methods allow access to Fabrication Part custom data defined per part (for querying and changing values):

Added a new API to override routing exclusions

Ancillary usage additions

A method was added to query fabrication part ancillary usage. This method can be used to populate cut lists and procure ancillaries needed to fabricate and install the fabrication part:

The ancillary usage is held in a new class:

It has the following read-only properties:

Part status

Two properties were added to fabrication part to allow the user to query and set the part fabrication status field:

Hanger rod additions

To give the user better control over hanger rod thicknesses a new property was added to fabrication part to get and set the ancillary kit used:

Import API additions

ShapeImporter additions

Two new methods:

get or set the length unit to be used, if not specified in the input SAT file.

Worksharing events addition

Subscribe to the Autodesk.Revit.DB.Events.WorksharedOperationProgressChanged event to be notified when progress has changed during Collaboration for Revit's synchronizing with central operation.

This event consists of several phases. Different event arguments are used during each phase.

WorksharedOperationProgressChangedEventArgs

The new class:

provides a base class for event arguments for worksharing-based progress events.

DocumentSaveToLocalProgessChangedEventArgs

The new class:

It has the following properties:

DocumentReloadLatestProgressChangedEventArgs

The new class:

It has the following properties:

DocumentSaveToCentralProgessChangedEventArgs

The new class:

It has the following properties:

The rest of the document continues with the Revit 2017 API changes.