Change Notifications and Network Evaluation

The evaluation of actions is performed only when explicitly requested. AutoCAD explicitly requests evaluation of the top level network of the database at the beginning and at the end of each command, when the document lock mode changes, and during dragging on every drag sample. The evaluation can also be explicitly requested by the client code, but usually this is not necessary.

Although, sub networks or individual actions can be explicitly evaluated by calling their AcDbAssocAction::evaluate() method, it is preferable to always evaluate the top level network of the database by calling AcDbAssocManager::evaluateTopLevelNetwork(). Evaluation of the whole top level network guarantees that all actions that need to be evaluated, are evaluated. There is no performance penalty by always evaluating the whole top level network of the database even if it contains many sub networks and many actions.

There is a separation between change notification and network evaluation because of these changes.

When an object that has dependencies attached to it is modified, the following sequence of notifications occurs:

When a network evaluation is requested by calling AcDbAssocAction::evaluate(), the following sequence of events occurs: