Transit scripts stamp many seat properties and flood the stage with change notices. What should developers apply?
Select an answer to reveal the explanation.
Short Explanation
You can quiet notice floods by wrapping bulk seat-property writes in SdfChangeBlocks, which batches the resulting work. A unique defaultPrim per seat or deleting seat meshes does not solve the notice problem, and GPU driver strings are not a substitute for USD attributes. Batch the writes and let the stage catch up once.
Full Explanation
Transit scripts that stamp many seat properties and flood the stage with change notices should apply SdfChangeBlocks around the bulk municipal property writes. Each unblocked write can notify listeners and trigger expensive recomposition or UI refresh; grouping seat-property stamps inside a change block defers and coalesces that work, helping boarding-layout tools remain responsive. This is the standard OpenUSD performance pattern for scripted bulk authoring in civic twins. Creating a unique defaultPrim per seat with no shared stage fragments the transit model and does not address notice flooding. Deleting every seat mesh before each property write destroys geometry and is unrelated to change coalescing. Replacing seat attributes with GPU driver strings abandons USD property semantics entirely. Exam caveat: Change blocks do not remove the need for correct edit targets and layers; they manage notification cost only. Practical check: Wrap seat-property loops in SdfChangeBlock or a language equivalent, verify that notice counts drop during the batch, confirm seats still compose with their intended materials and visibility, and add a regression timing test to transit-authoring CI.