I've been taking some time this week to dive into some of the new APIs available in AutoCAD 2009. I'm going to post a very quick overview of the APIs available in this post, following up with a more in-depth look at some of the individual APIs in posts over the coming weeks.
I've used material presented at our most recent ADN Developer Days tour as a source of information (a big thanks to Fenton Webb, from DevTech Americas, who was largely responsible for developing this content).
Before talking about the new APIs, the first thing to note is that AutoCAD 2009 is a binary application compatible release with AutoCAD 2007 and 2008. Check out this previous post for information on our typical application compatibility schedule for AutoCAD. So while you will need to modify the demand-loading information to be stored under the correct Registry key (17.2), no changes should be needed to your application's modules.
AutoCAD 2009 has been built with Visual Studio 2005 SP1, but if you require compatibility with AutoCAD 2007 or 2008 for your ObjectARX application, you should continue to build it with Visual Studio 2005 RTM. If you use the .NET API for AutoCAD (or COM, for that matter) you will not need to worry about the version of the compiler.
Here are the major new APIs available via .NET and ObjectARX for AutoCAD 2009. I've listed the .NET namespace, where one exists, or have otherwise listed the API as "ObjectARX-only".
- User Interface enhancements
- Ribbon Bar, Menu Browser, Task Dialog, Tooltips
- Implemented using the Windows Presentation Foundation (WPF)
- Autodesk.Windows
- Quick Properties
- The feature uses existing static and dynamic COM properties for objects
- New COM interfaces for more control
- IFilterableProperty, IFilterablePropertySource, IFilterableMultiplePropertySource, IFilterableSubtypePropertySource
- Transient Graphics
- More flexible handling of all kinds of transient graphics
- Autodesk.AutoCAD.GraphicsInterface.TransientManager
- 3D Navigation
- Control over the new 3D navigation controls in AutoCAD
- ViewCube / Steering Wheel / ShowMotion
- ObjectARX-only
- Data Extraction
- Easily extract AutoCAD object properties
- Autodesk.AutoCAD.DataExtraction
- In-Place ActiveX Control
- Embed AutoCAD 2009 inside an ActiveX container
- Web-page, Office document, WinForms application, etc.
- Embed AutoCAD 2009 inside an ActiveX container
- InfoCenter
- Enhanced InfoCenter API
- Autodesk.AutoCAD.Windows.InfoCenter
- Geo-Location
- Allows mapping of AutoCAD drawing units to real-world geography
- Autodesk.AutoCAD.DatabaseServices.GeoLocationData
- Material Map
- Opt out of using texture filtering during render
- Autodesk.AutoCAD.GraphicsInterface.MaterialMap
- Boundary Representation
- .NET wrapper for the ObjectARX API
- Autodesk.AutoCAD.BoundaryRepresentation
- Associative Dimensioning
- New API for an existing feature
- ObjectARX-only
- Permanent object deletion
- Allows actual deletion of erased objects
- ObjectARX-only
- New ObjectARX smart pointer
- Avoids open conflicts
- Allows optimized opening, returns existing opened objects
- Including open for write!
- Allows opening for write on Locked Layers
- AcDbSmartObjectPointer protocol-compatible with AcDbObjectPointer
- ObjectARX-only
- Avoids open conflicts
- New events & reactors
- Many new notifications, including:
- Annotation Scale, Regen, ViewCube, Steering Wheel, Ribbon events...
- Many new notifications, including:
Last but by no means least, the ObjectARX SDK for AutoCAD 2009 includes a brand-new AutoCAD .NET Reference. It's really nice!
By the way, this is my first post created using Windows Live Writer. It seems like quite a handy tool, so far.