Hello,
as always, please use the Q&A system to mark your post as a question.
just to be sure: do you have a "Texture Path" parameter or a "shader" parameter in your user data?
Cinema does some image caching, so it seems that only the BitmapShader really knows how to re-load that image.
You can simply add a user data button to the Python Generator. In the generator, you can implement a message()
function to check when the button was pressed (you find an related example here: Creating a material and applying to BaseObject within Python Generator):
def message(id, data):
if id == c4d.MSG_DESCRIPTION_COMMAND:
buttonId = data['id']
# check button ID 1
if buttonId[1].id == 1:
print("button pressed")
Now you can use CallButton() to press the "Reload Image..." button of the shader
# assume user data parameter 4 is a shaderlink with a BitmapShader
texID = [c4d.ID_USERDATA, 4]
bitmapShader = op[texID]
c4d.CallButton(bitmapShader, c4d.BITMAPSHADER_RELOADIMAGE)
c4d.EventAdd()
best wishes,
Sebastian