Driver Behavior

Hello Everyone,

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 ([“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!


Assembly_Driver_02.blend (505 KB)Assembly_Driver_01.blend (513 KB)

Yes if I understand you correctly this has always been the case, that if you rename something Blender updates the name everywhere except in the data paths identified in the driver, those have to be pasted in all over again. The data path is also going to vary from file to file - I have no idea how to import data paths, you might have to write a script to do that.


Thanks for the response - that is what I thought - oh well, for my purposes, advancing a frame is far more convenient than searching for and updating drivers that use a direct reference.