Share
 
 

Register a Logical Application Name

Level

Requirement

Applies to

ObjectARX, .NET and ObjectDBX modules

Register a logical application name in the AutoCAD section of the registry. Optionally, consider adding a unique prefix to your logical application name.

Example for ObjectARX applications:

HKEY_LOCAL_MACHINE
  SOFTWARE
    Autodesk
      AutoCAD
        R25.0
          ACAD-8101:409
            Applications
              AsdkPolyCAD
              WXYZBathroom
              ABCDAnotherApp
Note: The registry key ACAD-8101:409 is specific to the AutoCAD 2025 - English release. The value ACAD-8101 will vary based on which AutoCAD-based vertical is installed, and 409 represents the language that is installed.
Consider these scenarios when registering your logical application name. If your application:
  • can be applied to all localized AutoCAD, you can put the application under the global root (for example, ACAD-8101)
  • is only applied to one product with certain language, you should register it under the local root (for example, ACAD-8101:409)
  • has commands, the commands should have the structure as xxxRes.dll:ID as illustrated in the following image:

    Registry Editor

Example for Object Enablers (ObjectDBX modules):

HKEY_LOCAL_MACHINE
  SOFTWARE
    Autodesk
      ObjectDBX
        R25.0
          Applications
            AsdkPolyCADObj
            WXYZBathroomObj
            ABCDAnotherAppObj

In the examples above, the application "AsdkPolyCAD" is from Autodesk, while the other two applications are from different vendors. ("WXYZBathroom" is the example application used in this document.) The case as you enter it is retained, but is ignored for lookups and duplication checks.

A logical application name should be bound to specific file paths in the registry. You may want to define more than one logical application name. One name might span all versions and locales, while others might distinguish between versions and locales as needed.

Using the logical application name as your registered service name is suggested.

For example:

acrxRegisterService(ACRX_T("WxyzBathroom"))

The application name is the last parameter in the ACRX_DXF_DEFINE_MEMBERS macro. It is a string that can have the following elements, separated by pipe characters (|):

  • The logical name of the application that implements this class. This string is used to look up applications in the system registry. Optionally, include a unique prefix to help avoid naming conflicts.
  • Product information, which should be readable by the user. There is no restriction on the structure of this, or subsequent elements, except that the pipe character (|) marks a line termination and the beginning of the next line of text.

When AutoCAD loads a drawing containing custom objects that cannot be mapped to an implementing application, it displays an alert box to notify the user.

For example, given the application name string

AsdkPolyOBJ2.0\
|Product Desc:     PolyCAD ARX App For Polygon Entity\
|Company:          Autodesk,Inc.\
|WEB Address:      www.autodesk.com);

AutoCAD would display

Missing Application:  AsdkPolyOBJ2.0
Product Desc:         PolyCAD ARX App For Polygon Entity
Company:              Autodesk,Inc.
WEB Address:          www.autodesk.com

Other applications can also extract elements from the application name string. If there is no pipe character (|), the entire string is assumed to be the logical application name. For example, the application name string

AsdkPolyOBJ

would be displayed as

Missing Application:  AsdkPolyOBJ

This message has less information about the product than the earlier one.

The application name string should include information such as a phone number or website address to allow users to contact you.

For example, for class WxyzVanity, you would supply the following application name:

ACRX_DXF_DEFINE_MEMBERS(WxyzVanity, AcDbEntity,
AcDb::kDHL_CURRENT, AcDb::kMReleaseCurrent,0,WXYZVANITY,
WxyzBathroom|ePlumber 2024|Millenium Bathrooms Inc.
|email: plumber@autodesk.com)

Was this information helpful?