Tinderbox Forum

Best Way To Update One Attribute On Another Attribute's Change?

I have this code in a prototype’s action:

$Link_url_search=$Link_url + "&search=" + urlEncode($DisplayName);

Looking at the ref, it looks like actions etc are run on a timer. I’m wondering:

  1. If these timers are run conditionally on change
  2. If not, if there’s another event based attribute, similar to $OnAdd, I’ve not noticed

My TB file’s tiny, but just jumped out as something that might be worth strategising early on.

No, we don’t have an action hook that runs on an attribute change. Rules, Agents, and Edicts all run periodically; the purpose of Edicts is, in fact, to accommodate actions that would be prohibitive if performed too often.

1 Like

Thanks.

If this Action Code’s added to the prototype, how do I get the inheriting note to run in local scope, eg, self.$attribute instead of parent.$attribute?

PS Could be this.
PPS This could be useful.
PPS Part of the problem was when selecting the prototype the note box on the right is just a white square, so I couldn’t see some attributes were already set on the note until I noticed them when switching from the map view back to the outline view. Is this expected or bug?
PPPS Looks like prototype Action code isn’t inherited, but Rule code is.

Last piece was resetting one of the notes Rule’s to inherited, overwrote accidentally.

I had to add $Rule to displayed attributes, right click, and then ‘Use Inherited Value’. Maybe there’s a quicker way?

PS Ah! This can be done with Quickstamp too :ok_hand: