GenerativeComponents Help

Accumulating Edits

Accumulated edits can be challenging. Every change made to a node at any point in the current file creates a new transaction. If you are in the middle of the file, halfway through the transaction list, and a change is made to a particular node's parameter, then a new transaction will be created and inserted after the current transaction containing the new edit. However, if the next transaction (or any transaction later in the file) contains an edit to the same node's parameter, the last edit will be changed. Thus, when playing the transaction file to the end, the edit made halfway through the file can be overridden by a later step at the end of the file.

The transaction file is a sequential set of steps. Changes accumulate and are recorded with new transactions. Changes can be recorded at any time, with the most recent changes contained within transactions taking priority over previous changes.

This concept can be easily shown with the creation of a single point. In the image below, after the baseCS created, the "point01" was created in the second transaction named "Add point01" by Cartesian coordinates (12, 10, 0.0) in the baseCS. This transaction was recorded using the Auto Record a New Transaction button.

Next, the point was moved 2 units along x-axis using the Move tool, and a third transaction was recorded, that recorded the Cartesian coordinates (10, 10, 0.0). Expanding this transaction shows that the point was moved to a new location in the baseCS, where only its X coordinate changed. This was done two more times, where the point was moved to a new location and a transaction recorded.

At each step, GenerativeComponents recorded the point’s new location. When the transactions are replayed the point location will move based on its recorded position at the given transaction.

Looking at the syntax for the transaction, it shows that only the node's parameters that are changed are recorded, and the node retains all other property settings from the last explicit change further up in the transaction file. For example, notice that the first transaction defines the new point’s host coordinate system, XYZ coordinates, and Graphic location. In the following transactions only the X coordinate changes, the rest of the points properties are retained and do not require updating and duplicate recording into the new transaction.

This logic applies to all editable node parameters. It is essential to understand the principle of accumulative edits to use the transaction player efficiently and avoid errors or unwanted states of the model, especially as a model grows in size and complexity and many edits and transaction steps are present. Accumulated edits of parent node may be combined by Consolidating Transactions to shorten the transaction list.