What's New in 2007

AutoCAD Map 3D SDK

 
What's New in 2007
 
 

Note The product name for SDK releases 2007 and earlier was Autodesk Map 3D ObjectARX.

The following features are new or changed in the 2007 release.

New Areas of Functionality

There are no new areas of functionality in either ObjectARX or Managed ObjectARX.

Deleted Areas of Functionality

FDO Enabler API has been removed from both ObjectARX and Managed ObjectARX.

Unicode Support

Unicode characters are now acceptable in all string arguments. See the AutoCAD documentation for more information.

Microsoft Visual C++ Version 8.0 Required

Autodesk Map 3D ObjectARX requires Microsoft Visual C++ version 8.0.

Object Class and Feature Class

Where the ObjectARX documentation uses the terms feature class, keep in mind that the UI documentation has replaced this term with object class. The reason for the change is to restrict feature terminology to the FDO context (which incidentally is not addressed by the ObjectARX API), so that we can make a clear distinction between the following two kinds of map components:

  • Geospatial components, which is stored in FDO feature sources, and are referred to as features.
  • Drawing components (DWG-based data), which is stored in Autodesk Map drawings, and are referred to as objects.

We are not changing the terminology in the API because some API components have feature in their names, and changing names of API components is too disruptive.

New Components Not Intended for Public Use

Some components in the following section, "Changes to Existing Functionality," are not intended for public use.

Important Note  Be aware of these components. Avoid using them in your applications.

Avoid components that are altogether new. But it is safe to use components where all that has changed is their name (or the name of a parameter or an enumerator element), and their functionality is the same as before. With enumerations, it is also safe to use any enumerator elements that have been added to them.

Changes to Existing Functionality

Changes are summarized in the following table.

Header Files and Classes Changes

acmapmbmapbook.h

Public bitmask enum AcMapMbMapBook::EModificationType has new enumerators:

kMapBookTileNameChanged = 8
kMapBookTileAdjacencyModified = 16

acmapmbmapsheet-
layoutsettings.h

AcMapMbMapSheet-
LayoutSettings

acmapmbtile-
generatorsettings.h

AcMapMbTile-
GeneratorSettings

acmapmbtile-
generatorsettingsarea.h

AcMapMbTile-
GeneratorSettingsArea

acmapmbtile-
generatorsettingsgrid.h

AcMapMbTile-
GeneratorSettingsGrid

acmapmbtile-
generatorsettingsmanual.h

AcMapMbTile-
GeneratorSettingsManual

acmapmbtilename-
generatorsettings.h

AcMapMbTileName-
GeneratorSettings

acmapmbtilename-
generatorsettingsdata.h

AcMapMbTileName-
GeneratorSettingsData

acmapmbtilename-
generatorsettingsgrid.h

AcMapMbTileName-
GeneratorSettingsGrid

acmapmbtilename-
generatorsettingssequence.h

AcMapMbTileName-
GeneratorSettingsSequence

Each of these AcMapMbXX classes has two new virtual functions:

virtual Acad::ErrorStatus
xmlInFields(
    AcMapMbXmlFiler* pFiler);
virtual Acad::ErrorStatus
xmlOutFields(
    AcMapMbXmlFiler* pFiler) const;

acmapmbtilename-
generatorsettings.h

AcMapMbTileName-
GeneratorIndexer

Class AcMapMbTileNameGeneratorIndexer has two new virtual functions:

virtual Acad::ErrorStatus
StreamIn(
    AcMapMbXmlFiler* pFiler);
virtual Acad::ErrorStatus
StreamOut(
    AcMapMbXmlFiler* pFiler) const;

adeads.h
Global data-extension (ADE) functions

mapads.h
Global mapping functions

topoads.h
Global topology functions

All functions defined in the xxads.h header files are now declared as extern "C" for C++ compilation. Note that these functions are deprecated in favor of newer class-based APIs.

dmdefaultelement.h

New file.

dmdisplayelement.h

Class AcMapDMStyleReferenceIterator has been renamed AcMapDMAllStyleReferencesIterator.

Class AcMapDMElement has two new functions: DisplayName and RemoveEntityFromAcquisition.

Function GetStyleReferenceIterator has been replaced by GetAllStyleReferencesIterator.

Functions AddStyle, RemoveStyle, and MoveStyle, which used the old iterator name, have been changed accordingly.

The following functions have been added:

virtual Acad::ErrorStatus
Render(
    Renderer &renderer;);
virtual void 
OnMapCSChanged(
    const ACHAR *oldCS,
    const ACHAR *newCS);
Acad::ErrorStatus 
ExcludeEntitiesFromStylization(
    const AcDbObjectIdArray& ids);
Acad::ErrorStatus
RemoveEntitiesFromStylizationExclusion(
    const AcDbObjectIdArray& ids);

dmdisplayitem.h

Class AcMapDMItemIterator has been renamed AcMapDMAllItemsIterator. Class AcMapDMItemIterator was subclassed from AcMapDMAllDrawOrderItemsIterator, but its replacement, AcMapDMAllItemsIterator, is not.

Member function Rewind has been added.

Member function GetObject has been removed.

Enumeration AcMapDMItem::ELegendDetailLevel no longer includes the enumerator kLegendCollapsed.

dmdisplaymanagement.h

Class AcMapDMDisplayManagement has three new functions:

Acad::ErrorStatus
GetGWS(
    IGWS** pGWS,
    AcDbDatabase* pDb);
Acad::ErrorStatus
GetVectorElementIdForFeatureLayer(
    AcDbObjectId& elementId,
    AcDbDatabase* pDb,
    const TCHAR* layerSourceName);
Acad::ErrorStatus
GetEntityIdForFeatureOnLayer(
    AcDbObjectId& entId,
    AcDbDatabase* pDb,
    const TCHAR* layerSourceName,
    int featureId);

dmdisplaystyle.h

Class AcMapDMStyle has a new enumeration:

enum CoExistenceFlags
{
    kNotApplicable = 0,
    kAllStyles,
    kSingleton,
    kLikeKind
};

And four new functions:

virtual const ACHAR* DisplayName() const;
virtual Acad::ErrorStatus Refresh(
    void*& pCookie,
    AcDbObjectId entityId,
    Adesk::UInt32 flag = 0);
virtual Acad::ErrorStatus Refresh(
    void*& pCookie,
    const ACHAR* pTopoName,
    long lTopoElemId,
    Adesk::UInt32 flag = 0);
virtual Acad::ErrorStatus deepClone(
    AcDbObject* pOwnerObject,
    AcDbObject*& pClonedObject,
    AcDbIdMapping& idMap,
    Adesk::Boolean isPrimary = true) const;

dmgroup.h

To accommodate changing the name of AcMapDMItemIterator to AcMapDMAllItemsIterator, member functions of class AcMapDMGroup have been changed accordingly.

dmmap.h

Class AcMapDMMap has changed:

Function GetDrawOrderIterator has been removed.

AcMapDMDrawOrderIterator has been replaced with AcMapDMAllDrawOrderItemsIterator.

The following functions have been renamed:

Old NameNew Name
NumScalesNumScaleThresholds
GetScaleGetScaleThreshold
SetCurrentScaleSetCurrentScaleThreshold
GetCurrentScaleGetCurrentScaleThreshold
AddScaleAddScaleThreshold
CopyScaleCopyScaleThreshold
RemoveScale RemoveScaleThreshold
GetMapScaleForGetThresholdFor
ModifyScaleModifyScaleThreshold

Function SetCurrentScale has an additional parameter: regen.

The following functions are new:

static bool
IsInfintyThreshold(
    double dScale);
static double
InfinityThreshold();
Acad::ErrorStatus
SetExaggeration(
    double dValue);
double
GetExaggeration() const;
Acad::ErrorStatus
Set3dGridPercent(
    int iValue);
int
Get3dGridPercent() const;
Acad::ErrorStatus
SetExtent(
    double dMinX, 
    double dMinY, 
    double dMaxX, 
    double dMaxY);
Acad::ErrorStatus
RemoveExtent();
Acad::ErrorStatus
GetExtent(
    double& dMinX, 
    double& dMinY, 
    double& dMaxX, 
    double& dMaxY) const;
Acad::ErrorStatus
GetSun(
    double& dAzimuth,
    double& dAltitude) const;
Acad::ErrorStatus
SetSun(
    double dAzimuth,
    double dAltitude);

dmseannotationstyle.h

Class AcMapDMSEAnnotationStyle has a new function:

virtual AcMapDMStyle::CoExistenceFlags
CoExistenceType() const;

dmthematicstyle.h

Class AcMapDMThematicBuildRangesErrorCode has a new function:

virtual AcMapDMStyle::CoExistenceFlags
CoExistenceType() const;

dmthematictable.h

TBD.

dmtopoqueryelement.h

Class AcMapDMTopoQueryElement has two new functions:

virtual Acad::ErrorStatus
AddStyle(
    AcDbObjectId& styleRefId,
    AcMapDMStyle* pStyle,
    AcMapDMAllStyleReferencesIterator& Position);
virtual Acad::ErrorStatus AddStyle(
    AcDbObjectId& styleRefId,
    const AcDbObjectId& styleId,
    AcMapDMAllStyleReferencesIterator& Position);

mapreactors.h

Class AcMapProjectReactor has three new functions:

virtual bool
CoordinateSystemIsToBeChanged(
    AcMapProject *pproject,
    const ACHAR *oldCS,
    const ACHAR *newCS);
virtual void
CoordinateSystemChanged(
    AcMapProject *pproject,
    const ACHAR *oldCS,
    const ACHAR *newCS);
virtual void
CoordinateSystemChangeVetoed(
    AcMapProject *pproject,
    const ACHAR *oldCS,
    const ACHAR *newCS);