In the beginning the node those data properties could be not set , or doesn’t exist,
then we can resizerotate or put a text to the node, then undo it,
look, in the second diagram, same node, not undo the size angle or text,
i think it is because IncrementalJson not have those properties, gojs not delete those properties.
I haven’t had a chance to look at your example, but what you say here is correct. Model.applyIncrementalJson will not set on the existing model data all unsupplied properties to undefined or delete them. In other words, the property must be present in the argument to Model.applyIncrementalJson for the property to be set. But the value could be undefined, and then the data’s property will be set to undefined.
You are talking about initial values for data properties, aren’t you?
So you only need to set on those data objects those properties that are currently undefined, and only for those that have TwoWay data Bindings. Think of it as normalizing your table of node data objects, making sure there are proper values for each data property.
Thank you for good suggestion, I have a node’s property setting window, almost all the properties could be change, yes, i will try normalizing , but set it one by one maybe faster finish.