How can I keep some nodes' size while zoom?

I tried to keep some nodes’ size constant in sight while zoom diagram by modifying the nodes’ scale dynamically. But it seem if the node scale is updated, gojs always reset its layout and the zoom point calculated before no more fit the case while zoom point calculated in real time is also weird. Can I keep the layout while updating nodes’ scale?
Is there another approach to my purpose?

Normally as the user zooms in or out everything is drawn at the new scale. However you could implement a “ViewportBoundsChanged” DiagramEvent listener to explicitly change the scale of individual Nodes to compensate for the new Diagram.scale. This is demonstrated in the sample.

However changing the size of a Node will normally invalidate the Layout responsible for positioning the node. Please read about layout invalidation – in particular the example involving Part.layoutConditions not including the Part.LayoutNodeSized flag.