Revit 2010 Subscription Pack

The

Autodesk Subscription Advantage Packs
have been released,
including ones for Autodesk Revit Architecture, MEP and Structure 2010.
English versions are now available for download on

Subscription Center
.

ADN members also have access to the subscription center by going to the
ADN home page and selecting
Autodesk Subscription Center.

The subscription pack is also available directly from the
ADN Revit download page.
Look there for the
Autodesk Revit 2010 September/October update.

The Revit 2010 subscription packs provide the same minor fixes and enhancements and the

web update 2
plus
significant additional new features.

The subscription pack also includes some API enhancements and is therefore accompanied by an updated SDK as well, which we explore below.
First let’s look at the updated product and documentation:

Product and Documentation

Since there are three different flavours of the subscription pack for Architecture, MEP and Structure, and each of these has its own ‘what’s new’ documentation and is available both for 32 and 64 bit operating systems, the whole release adds up to this list of nine files:

  • autodesk_revit_architecture_2010_subscription_update_x64_enu.exe (exe – 98730 Kb)
  • autodesk_revit_architecture_2010_subscription_update_x86_enu.exe (exe – 72037 Kb)
  • whatsnew_architectureq3.pdf (pdf – 2778 Kb)
  • autodesk_revit_mep_2010_subscription_update_x64_enu.exe (exe – 98727 Kb)
  • autodesk_revit_mep_2010_subscription_update_x86_enu.exe (exe – 72035 Kb)
  • whatsnew_mepq3.pdf (pdf – 2789 Kb)
  • autodesk_revit_structure_2010_subscription_update_x64_enu.exe (exe – 98734 Kb)
  • autodesk_revit_structure_2010_subscription_update_x86_enu.exe (exe – 72042 Kb)
  • whatsnew_structureq3.pdf (pdf – 1654 Kb)

All changes in the web update are also provided in the subscription release, so it is a true superset of the former.

Analogously to the web update, the three separate what’s new documents list the enhancements provided both by the subscription pack products and the updated API.

One of the user interface enhancements which is new in the subscription release pack is the keyboard shortcut feature, which might prove extremely useful to application developers:

Keyboard Shortcuts

The subscription release of Revit provides an easy-to-use interface for managing keyboard shortcuts for Revit tools. With this interface, you can

  • Add keyboard shortcuts. You can assign multiple shortcuts for each Revit tool.
  • Remove keyboard shortcuts.
  • Import keyboard shortcuts from another user. Also use this function to migrate shortcuts from a previous
    release.

  • Export keyboard shortcuts to share them with other users, or to use the resulting file in a spreadsheet
    program, where you can sort, organize, and print a list of shortcuts for quick reference.

I received feedback from a developer who was driving a Revit 2009 add-in and its external commands using Windows messages.
When the Revit 2010 user interface moved to the ribbon paradigm, this approach no longer worked and he was unable to support the new version.
The new keyboard shortcuts effectively resolve this problem and external commands can now be launched programmatically.
This leads us back to the API enhancements:

Revit API Enhancements

The subscription pack includes enhancements to the Revit API and an updated SDK.
There are now separate versions of the SDK for the web update and the subscription releases, which are both available from the public

Revit developer site
and also from the members-only ADN pages:

  • Revit 2010 SDK Update Release 2 (exe – 82402 Kb)
    (ADN)
  • Revit 2010 SDK Subscription Release (exe – 82464 Kb)
    (ADN)

The new API functionality is described in the file ‘Revit Platform API Changes and Additions.doc’.
The help file RevitAPI.chm file also reflects these changes.
The subscription release has the same changes as the web update, plus additional APIs.

Revit SDK Differences

I analysed the differences between the initial release of the Revit SDK and the two new updated versions provided with the web update 2 and the subscription pack:

  • revit2010sdksubscriptionreleasepack.exe – 84,443,139 bytes
  • revit2010sdkupdaterelease2.exe – 84,380,018 bytes

The two SDKs are identical, except for three files:

  • Read me first.doc – minimal changes.
  • Revit platform API changes and additions.doc – significant informative differences.
  • RevitAPI.chm – different.

The changes and additions document calls out the improvements made.

We already discussed the

web update 2 API enhancements
, e.g.

The subscription pack release includes these as well as the following:

  • Export model to IFC.
  • Floor slope and elevation.
  • NewTruss() in Revit Architecture.
  • Export – 24-bit colour option in export to AutoCAD file formats.
  • Validation in ElectricalSystem properties.
  • SuspendUpdating applies to Parameter.Set.

The sample applications provided in the updates are virtually identical to the ones in the original release of the SDK.

Regarding the SDK backward compatibility, the same applies as for the

web update 2
:

Both the web update 2 release and the subscription pack provide a few new API calls.
The API is compatible between all versions as long as the new calls are not accessed.
You need ensure that the user has installed and is using the subscription release before using any of the new calls.

SuspendUpdating applies to Parameter.Set and Plug-in Backward Compatibility

In the subscription pack release of the Revit SDK, the SuspendUpdating class has a new constructor which will cause Parameter.Set not to update the entire building model every time a single parameter on an individual element is modified.
This affects all instance parameters defined in families, when the parameter value is modified on the inserted family instances.
We have seen speed improvements where a processing time of 5 minutes is reduced to 15 seconds to change 100 parameters on one single element, and the effect is probably similar when changing a single parameter on 100 different elements.

An application taking advantage of the new functionality will be incompatible with the initial release of Revit 2010 and will only compile with the newer API.
An application created for the initial release of Revit 2010 will obviously still run, but will not be able to take advantage of this enhancement.
You might be able to build an application which will both run on the initial version and also take advantage of the new functionality by using reflection to check at runtime whether the new API call is available at all.
You could also query the build number to decide whether to use reflection to try to find the new method.
<!–
SPR #155050 [Definition class returned from Parameter.Definition for shared Parameter is InternalDefinition]
I see a comment saying "Fix submitted to Q3 branch in changelist 185033".

Obtain ExternalDefinition from Shared Parameter Definition Property

Every parameter in Revit has a parameter definition associated with it which defines certain shared characteristics of all instances of the same parameter, such as its name and data type, so the individual parameter instance just has to keep track of its own value.
The parameter definition is represented by the generic Definition class.
This class actually has two derived classes ExternalDefinition and InternalDefinition which are used for shared and non-shared parameters, respectively.
The InternalDefinition class provides some additional properties that are not available for shared parameters, and vice versa.

Here is the one property only available for an internal definition:

  • BuiltInParameter: identifies if the parameter is built-in.

These are the corresponding properties only available for external definitions:

  • GUID, the GUID associated with the shared parameter definition.
  • OwnerGroup, the external parameter definition group ID.
  • Visible: determine whether the parameter is visible in the user interface.

Both types share the following properties:

  • IsReadOnly identifies if the object is read-only or modifiable.
  • Name, the user-visible parameter name.
  • ParameterGroup, the parameter definition group ID.
  • ParameterType, the user-visible interpretation of the parameter data.

The Parameter class has a property named Definition to query a parameter for its definition.
For a shared parameter, you would obviously expect this to return an external definition.
Unfortunately, that was not the case, until now.
This problem has been resolved in the subscription pack.
The Definition class returned by the Parameter.Definition property for a shared parameter is now ExternalDefinition, just as you would expect.
–>


Comments

10 responses to “Revit 2010 Subscription Pack”

  1. Hello JEREMY TAMMIK,
    Help me About IFamilyLoadOptions. I want to open Existing Family & change Parameter values & load it Existing Project(using API).
    Problem of this how to overwrite Existing parameter values.
    Thank You,
    Prasad.

  2. Hello JEREMY TAMMIK,
    Help me About IFamilyLoadOptions. I want to open Existing Family & change Parameter values & load it Existing Project(using API).
    Problem of this how to overwrite Existing parameter values.
    Thank You,
    Prasad.

  3. Hello Jeremy.
    Could you verify this?
    ….The Revit 2010 subscription packs provide the same minor fixes and enhancements and the web update 2 plus significant additional new features……..
    I asked the question through Autodesk Support Request and they responded saying that the two need to be installed separately (WU2 and Advantage Pack)
    Thank you.

  4. Dear Michael,
    Yes, I can confirm this. Here is a statement on this from Anthony Hauck, Revit Design Product Line Manager:
    Confirmed. If you have access to both, installing the Subscription Release Pack is sufficient to receive both the bug fixes of UR2 and the feature enhancements.
    Cheers, Jeremy.

  5. Dear Prasad,
    I am investigating your question and will keep you posted when I have something to report on this issue.
    Cheers, Jeremy.

  6. Prasad Sumanasekara Avatar
    Prasad Sumanasekara

    Dear Jeremy,
    Thank you so much for responding so quickly.
    I will see good Solution from you.
    Thank You,
    Prasad

  7. Dear Prasad,
    I finally received a thorough explanation for the current and future situations with IFamilyLoadOptions.
    This is an interface class which provides call-back functionality for specific family load situations through the two events OnFamilyFound and OnSharedFamilyFound, called when a family or a shared family being loaded was already present in the target document, respectively.
    They do both take an output argument in which the event handler has the opportunity to specify whether the existing family’s parameter values should be overwritten, so it looks as if they should be just what you need to handle the situation you describe.
    Unfortunately, this does currently not work the way one might expect. Once a family has been loaded into the project, it will not be reloaded later, even if it was modified, and attempting to use this event handler throws an exception.
    Ultimately, we would like the family to be reloaded if it has been edited, even if it is already loaded. That behaviour will be provided in a future release.
    Sorry for the bad news.
    Cheers, Jeremy.

  8. Jeremy,
    I have installed the x86 version of the subscription pack. I tried accessing the new keyboard shortcut utility you mention above, however, I am unable to locate it? The feature summary states to review the user guide, however, there is not an updated user guide to download. Any ideas?
    Thank you
    Travis

  9. Dear Travis,
    Nope, sorry, no idea. I copied the text quoted above out of whatsnew_architectureq3.pdf and assume that the same is provided in whatsnew_mepq3.pdf and whatsnew_structureq3.pdf as well. Good luck hunting it down.
    Cheers, Jeremy.

  10. Dear Prasad,
    Gamal Kira now provided some sample code which actually does show the IFamilyLoadOptions in action:
    http://thebuildingcoder.typepad.com/blog/2010/02/ifamilyloadoptions-and-gemini.html
    Cheers, Jeremy.

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading