I have searched for an answer, and I am not able to find exactly what I am looking for.
Short version of the question - Can I programatically update dependencies?
Long version - what I am trying to accomplish - I have custom properties that are calculated using drivers. I would like to be able to append any number of the original objects, and have the custom properties update when that particular object changes.
Attached are 2 blend files - Assembly_Driver_01.blend and Assembly_Driver_02.blend. Each file uses drivers slightly differently.
There are 4 empties:
CAB_Main, CAB_Depth, CAB_Height and CAB_Width. CAB_Main is the parent, and has 3 custom properties, Depth, Height and Width. The value of each property is determined by the location of the coresponding empty.
In Assembly_Driver_01.blend, I am using a driver to get the absolute value of the location and converting to inches. This works fine if the empty is positioned manually, by dragging, but if I key in a value, the custom property will not update until I either update dependencies, advance one frame then back, or save and re-open.
In Assembly_Driver_02.blend I am doing the same thing, but addressing the empty object directly (bpy.data.objects[“CAB_Width”].location.x). This seems to work the way I would like it - the custom property updates if i move the empty manually by dragging, or if i key in the value. However, where this falls short is if I append more than one of these to another blend file, the formula does not change. The second time I append this to a blend file, the object names change - as expected - CAB_Main.001 etc, but the formula does not - all instances of this group will refer back to the original CAB_Main.
Thanks in advance!