ID 601225 - Display and View knobs can't be set via Python when creating an OCIODisplay Soft Effect

Follow

Problem summary:
Display and View knobs can't be set via Python when creating an OCIODisplay Soft Effect
 
Customer reported version:
Hiero N/A
 
Customer reported platform:
Rocky 9
 
Steps to reproduce:
1) Launch Nuke Studio and navigate to Project > Edit Settings
2) In the color Management tab, select the ACES 1.3 Studio config that ships with Nuke Studio:


3) Navigate to File > Import File(s)... and select some media
4) Drag and drop a Clip onto the Timeline to create a Sequence
5) Open the Script Editor, and run the following code:

selection = hiero.ui.getTimelineEditor(hiero.ui.activeSequence()).getSelection() for track_item in selection:     ocio_display = track_item.parentTrack().createEffect('OCIODisplay', trackItem=track_item)     ocio_display.node()["display"].setValue("Rec.1886 Rec.709 - Display")     ocio_display.node()["view"].setValue("Un-tone-mapped")     ocio_display.node()["invert"].setValue(True) 
6) Double click the OCIODisplay Soft Effect to open its Properties and observe how the view (view transform) and display (display device) knobs have not be set correctly:

 
Expected behavior:
When creating an OCIODisplay Soft Effect, the view and display knobs should be settable via Python, as this is possible with equivalent code in the Node Graph:
ocio_display = nuke.createNode("OCIODisplay") ocio_display["display"].setValue("Rec.1886 Rec.709 - Display") ocio_display["view"].setValue("Un-tone-mapped") ocio_display["invert"].setValue(True) 

 
Actual behavior:
When a OCIODisplay Soft Effect is created via Python, it is not possible to adjust the display or view knobs in the same Python script.
 
Workaround:
Using a SingleShot QTimer to set the knob values produces the desired results:
from PySide6.QtCore import QTimer selection = hiero.ui.getTimelineEditor(hiero.ui.activeSequence()).getSelection()for track_item in selection:     ocio_display2 = track_item.parentTrack().createEffect('OCIODisplay', trackItem=track_item)     QTimer.singleShot(0, lambda: callLater(ocio_display2))     ocio_display2.node()["invert"].setValue(True) def callLater(ocio_display):     ocio_display.node()["display"].setValue("Rec.1886 Rec.709 - Display")     ocio_display.node()["view"].setValue("Un-tone-mapped")
 
Reproduced by Support in:
Nuke Studio 16.0v3 - Windows 11, macOS 15 Sequoia
Nuke Studio 15.0v1 - Windows 11
Nuke Studio 14.0v1 - Windows 11
 
Earliest version tested:
Nuke Studio 14.0v1 - This feature (ACES 1.3 OCIO config support) did not exist before this version

    We're sorry to hear that

    Please tell us why