I am updating an external function (add-in) using in Revit 2009 to 2012. After I have copied the new RevitAPI.dll and RevitAPIUI.dll into my solution, I find that many functions belong to different library with comparing in 2009 API.
I spend some time to resolve the library of the function, for example (If I am wrong please tell me, thank you
Autodesk.Revit.IExternalCommand => Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.IExternalCommand.Result => Autodesk.Revit.UI.Result
Autodesk.Revit.ElementSet => Autodesk.Revit.DB.ElementSet
Autodesk.Revit.Document => Autodesk.Revit.DB.Document
Autodesk.Revit.Elements.ExternalCommandData => Autodesk.Revit.DB.ExternalCommandData
But there are some functions I cannot find its new library, please tell me how to update them, thank you.
The unchanged part is:
create = cmdData.Application.Create;
filter = create.Filter.NewTypeFilter(typeof(Grid));
Thanks a lot,
have a look of the following in the 2013 API chm documentation:
Autodesk.Revit.Creation namespace - Document class
Autodesk.Revit.DB namespace - FilteredElementCollector class
Thanks for the reply.
I have read some documents said that there is a large change when in the revit API 2011, where the Document.Elements collection, the Document.get_Elements( type ) and the filter mechanism have all been removed.
Should I use the FilteredElementCollection class and its element to re-write the add-in?
Thank you very much
FilteredElementCollectior is the way to get elements on a Revit project. You can find a good overview here: http://thebuildingcoder.typepad.com/blog/2010/04/c
Hope this help. Migrating from 2009 will take some time, specially due the changes from 2010 to 2011, but it can be a good change to improve your application with the new APIs.