Lots of exciting information to share with you today, unprecedented!
Just as in previous years, we held a series of worldwide DevDays conference series in the last few months, including at Autodesk University in Las Vegas.
Also, as in previous years, we presented the same information online in the past couple of weeks.
For the first time ever, this year, recordings of these presentations are made publicly available before the official public product release and end of the information embargo.
I extracted the section on the Revit API and hosted it separately in order to enhance it with a table of contents.
Furthermore, we are proud to present another little update of the revamped version of RevitLookup:
As said, I extracted and slightly edited the Revit API news portion of the DevDays Online recording, skipping the Civil 3D and Infraworks portion and adding a table of contents for easier navigation.
Here is the link to that, plus the supporting material:
For the sake of completeness, I am also adding the slide deck contents here:
Revit API News Slide Deck Contents
Disclaimer:
We may make statements regarding planned or future development efforts for our existing or new products and services. These statements are not intended to be a promise or guarantee of future availability of products, services or features but merely reflect our current plans and based on factors currently known to us. These planned and future development efforts may change without notice. Purchasing decisions should not be made based upon reliance on these statements.
These statements are being made as of February 2017 and we assume no obligation to update these forward-looking statements to reflect events that occur or circumstances that exist or change after the date on which they were made. If this presentation is reviewed after this date, these statements may no longer contain current or accurate information.
Modification of many object types is now allowed in perspective views
Most commands allowed in 3D views are now allowed in perspective views
Exception: Annotation & MEP tab
External API Commands and applications are now enabled by default in perspective views.
Macros, Macro Manager tools, Dynamo scripts, and the Dynamo editor are also enabled.
Subelements
Subelements are a way for parts of an element to behave like real elements without the overhead of a full element
Subelements have typical element behaviors: Create/Delete, Select, Reference, Category, Type, Bounding Box, Geometry, Unique Id, Parameters
Subelement class can refer to either an Element or a specific subelement.
Example parent elements: Rebar, RebarContainer, FabricSheet
Stairs in MultistoryStairs, Railings, Continuous Rails
Application Version
Return a string representing the major-minor version number of the application
Format MajorVersion.MinorVersion.Update, for example, "2018.0.0"
Visual Assets
Asset* classes (e.g., AssetProperty) moved from Autodesk.Revit.Utility to Autodesk.Revit.DB.Visual
AssetPropertyType enum values renamed (integer values are unchanged)
Direct Shapes
New DirectShape behaviors
Tagging: DirectShapes can be tagged with Revit tag tools
Dimensions to Edges: Referenceable DirectShapes now support dimensioning to edge references
Host Connectors: Referenceable DirectShapes can host connector elements in families
Host Rebar: Direct shapes of some categories can act as a rebar host
Miscellaneous Changes
Dynamic Updaters on Reload Latest
Dynamic updaters are now triggered on Reload Latest for the elements added or changed in the central file.
Export to DWG/DXF API
ACADVersion::R2018 added and is the default option
UIDocument.PromptForFamilyInstancePlacement() now works like PickObject() methods – the placement operation will be cancelled when the "x" button of Revit is clicked
Obsolete API Removal
All APIs marked as deprecated in Revit 2017 have been removed.
Revit API News – New Functionality
Reviewable Warnings
Document.GetWarnings() list of failure messages generated from persistent (reviewable) warnings in the document
Family Instance References
FamilyInstance.GetReference*()
Enable access to FamilyInstance references that correspond to reference planes and lines in the family
Find references by name or by type
FamilyInstanceReferenceType – enum describing reference types available in "Is Reference" and "Reference" parameters (e.g. Strong, Weak, Left, etc.)
Display External 3D Graphics
Use DirectContext3D API to display geometry in Revit by pushing directly to Revit graphics
Revit's rendering pipeline asks registered servers to provide the geometry for rendering
DirectContext3D.IDirectContext3DServer – The interface to be implemented
DirectContext3D.DrawContext – provides drawing functionality for use by DirectContext3D servers
DirectContext3D.VertexBuffer – stores vertex data for rendering
Display External 3D Graphics
DirectContext3DDocumentUtils
Support persistence and user manipulation of streamed graphics
DirectContext3DHandleSettings
Access to Visibility/Graphics override settings applied to DirectContext3D handles
DirectContext3DHandleOverrides
Access to DirectContext3DHandleSettings stored by a view
Dimensions
DimensionEqualityLabelFormatting
Set properties of dimension equality formulas for continuous linear or angular dimensions
Access via DimensionType.Get/SetEqualityFormula()
DimensionType.Get/SetUnitsFormatOptions()
Access the Unit Format for a dimension style
OrdinateDimensionSetting
Customize ordinate dimension's text position, orientation, line style, and visibility
Access via DimensionType.Get/SetOrdinateDimensionSetting()
Tags
SpatialElementTag – base class for Room, Area, and Space tags
HasElbow – Identifies if the tag's leader has an elbow point or not.
GetTaggedReference() reference to the item which has been tagged
IsTaggedOnSubelement() Identifies if tag is referencing a subelement
HasElbow Indicates if the leader on the tag has an elbow point
Geometry API
Face.GetSurface() returns a copy of face's surface
RevolvedSurface.GetProfileCurveInWorldCoordinates() returns copy of profile curve expressed in the world coordinate system
RuledSurface.HasFirstProfilePoint() and RuledSurface.HasSecondProfilePoint() check if a point was used to define one of the surface profiles
Parts
Access and manipulate the offset applied to a given face of a Part element
Part.ResetFaceOffset()
Part.GetFaceOffset()
Shared Coordinates
SiteLocation.GeoCoordinateSystemId
Read-only geographic coordinate system can be acquired from DWG file
Returns geographic coordinate system ID, e.g. "Beijing1954/a.GK3d-40"
Document.Acquire/PublishCoordinates()
Acquire project coordinates from RVT or DWG link or publish to specified ProjectLocation
ProjectLocation.Create() Creates new project location from specified SiteLocation
Links
IExternalResourceServer now supports CAD, DWF, and IFC links
CADLinkType now supports Reload() and LoadFrom() operation
RevitLinkType.UpdateFromIFC()
Allows specification of IFC file by name
RevitLinkInstance.Create(ImportPlacement)
Create new instance of a Revit link according to placement type
ImportInstance.Create(*) support creation of DWG or DXF instances
DWG Export
ExportColorMode.TrueColorPerView
Colors from the Revit project will be exported as 24-bit RGB values as specified in view
ACADExportOptions.UseHatchBackgroundColor
ACADExportOptions.HatchBackgroundColor
Define color that will be set as hatch background color on the exported hatch
ExportDWGSettings.FindByName()
Returns the pre-defined DWG export settings
ExportDWGSettings.GetActivePredefinedSettings()
Returns the active DWG export settings
Miscellaneous
Level.FindAssociatedPlanViewId() returns first-found plan view associated with specified level
ShapeImporter.Get/SetDefaultLengthUnit() length unit to be used during import if not specified in SAT file
C4R Worksharing Events
Events.WorksharedOperationProgressChanged notifies of Collaboration for Revit's synch progress
Event consists of several phases with event args:
DocumentSaveToLocalProgessChangedEventArgs
DocumentReloadLatestProgressChangedEventArgs
DocumentSaveToCentralProgessChangedEventArgs
Dockable Frames
Custom Dockable Panes now support display of dynamic UI elements (e.g. web browser controls)
IFrameworkElementCreator
New interface to support dynamic content
CreateFrameworkElement() constructs and returns the WPF Framework element embedded in dockable pane
DockablePaneProviderData.GetFrameworkElement() and FrameworkElementCreator provide ability for application to delivery a framework element ot a dockable pane
Multi-Story Stairs
MultistoryStairs create stairs that span multiple levels
Add/RemoveStairsByLevelIds() – Adds or remove stairs to the given levels.
Unpin() – Enables custom modification of one story of stairs
Stairs.MultistoryStairsId indicates the id of the associated MultistoryStairs element
StairsPath.CreateOnMultistoryStairs() support creation of new stairs paths for stairs in a multistory stairs element
Railings
Railing Now support hosting railings on multistory stairs
Get/SetMultistoryStairsPlacementLevels()
GetSubelementOnLevel() provide access to Railings hosted on multistory stairs
Create(..., multistoryStairsId, levelId, ...) Places railing on a given level of given multistory stair
Create(..., stairsId,...) Now supports multistory stair as input
HostId Now supports stairs or stairs components from multistory stairs
HVAC
HVACLoadType new base class for building type and space type
New properties to control air change, area per person, latent heat, lighting load, power, and heat gain settings
Subclasses:
HVACLoadSpaceType the type element of space
Access via MassZone.SpaceTypeId and Space.SpaceTypeId
HVACLoadBuildingType the type element to access building type properties
MEP Fabrication Parts
FabricationPart.SplitStraight()
Splits the fabrication part into two at specified point
Detailed Fabrication additions
Several methods, properties classes and enumerations have been added to allow the user to access detailed fabrication information
Part status
Properties were added to fabrication part to allow the user to query and set the part fabrication status field
IRebarUpdateServer Interface used to drive the generation and update of free-form geometry
Structural Steel Sections
StructuralSection & and derived classes have new properties and input parameters
StructuralSectionUtils.GetStructuralElementDefinitionData defines the section and the position of the structural element.
StructuralSection.GetStructuralSectionGeneralShape general shape provides information about the geometry
StructuralSectionAnalysisParams defines common set of parameters for structural analysis.
StructuralSectionGeneral* (e.g. StructuralSectionGeneralC) define parameter sets for specific shapes
Revit API News – Revit Roadmap
Public Revit roadmap at www.autodesk.com/revitroadmap – Last month, we launched a new platform for you to share and talk with Autodesk about the future of Revit. Revit ideas is a forum where you can submit, vote and comment on product improvements. Already, we have about 800 ideas from customer like you and thousands of votes. Our team is investigating a number of ideas right now. Other products have done this for a while, and I am glad to say that Revit is now part of the party. The product team will be there listening and responding to items as they become popular. Help us drive the direction of Revit and get your voice heard.
Revit Ideas at www.autodesk.com/revitideas – Last month, we launched a new platform for you to share and talk with Autodesk about the future of Revit. Revit ideas is a forum where you can submit, vote and comment on product improvements. Already, we have about 800 ideas from customer like you and thousands of votes. Our team is investigating a number of ideas right now. Other products have done this for a while, and I am glad to say that Revit is now part of the party. The product team will be there listening and responding to items as they become popular. Help us drive the direction of Revit and get your voice heard.
Invitation link on product download page at ADN extranet
Last month, we launched a new platform for you to share and talk with Autodesk about the future of Revit. Revit ideas is a forum where you can submit, vote and comment on product improvements. Already, we have about 800 ideas from customer like you and thousands of votes. Our team is investigating a number of ideas right now. Other products have done this for a while, and I am glad to say that Revit is now part of the party. The product team will be there listening and responding to items as they become popular. Help us drive the direction of Revit and get your voice heard.
RevitLookup Enhancements
Finally, to round off this exciting forward-looking excursion with something down to earth right here and now, our irreplaceable Revit BIM database exploration
tool RevitLookup has
been significantly restructured in the past few weeks to use Reflection and reduce code duplication:
If you would like to access any part of the functionality that was removed when switching to the Reflection based approach, please grab it
from release 2017.0.0.13 or earlier.
I am also happy to restore any other code that was removed and that you would like preserved.
Simply create a pull request for that, explain your need and motivation, and I will gladly merge it back again.