Class Hierarchy
AcRxObject AcGiDrawable AcDbObject AcDbAssocActionBody AcDbAssocParamBasedActionBody AcDbAssocArrayActionBody AcDbAssocSurfaceActionBody
C++
class AcDbAssocParamBasedActionBody : public AcDbAssocActionBody;
File
AcDbAssocParamBasedActionBody.h
Description
AcDbAssocParamBasedActionBody allows the client code to keep and access its data in a uniform an high-level way. Instead of each concrete custom action body devising its own way of keeping its data, the data can uniformly be stored in the form of AcDbAssocActionParam(eters), and for simple numerical values, in the form of value action parameters. The action parameters take care of keeping the data in various ways, and provide the current values to the action body anytime the action body requests them. The action body does not need to care about any of this, and it even does not need to write code to serialize the data, because the data is serialized by the AcDbAssocParamBasedActionBody base class. See the AcDbAssocActionParam and the derived classes for more details.
AcDbAssocParamBasedActionBody owns an array of AcDbAssocActionParams and an array of value action parameters. The AcDbAssocActionParams and the value action parameters are completely independent of each other.
The value action parameter represents a named array of numerical values, such as a doubles, ints, strings or vectors. The value parameter name is a case-sensitive string. Usually the array will contain only a single element, but generally it con contain any number of elements.
Each individual value may either be a constant, or defined by an expression. When it is defined by an expression, the value parameter keeps the AcDbObjectId of an "input" read-only AcDbAssocValueDependency (the dependency is owned by the parent AcDbAssocAction) on an anonymous AcDbAssocVariable that keeps the expression and provides the input value for the value parameter. This anonymous variable is exclusively managed by the value parameter that is responsible for its creation, deletion, copy, etc.