Do we have dragstart/dragend events for parts?

There aren’t any such event properties on the Part class. But you can almost certainly get what you want by customizing the DraggingTool.

What are you trying to achieve? What happens when the drag turns from a move to a copy or vice-versa? What about extenal drag-and-drop (i.e. from another Diagram)?

In my case, every node has an html tooltip which is shown when node is selected. I want to keep updating the position of tooltip as we move node by dragging it. Or we can hide the tooltip when drag start and show it again when dragends. I am using “DiagramEvent.SelectionMoved” as DragEnd event, but I am not able to find any event which can be used as DragStart.

OK. But note that if the user cancels the drag, there won’t be a “SelectionMoved” DiagramEvent, so you probably don’t want to depend on that event in order to clean up.

Instead, I recommend that you override DraggingTool.doActivate and doDeactivate. For doActivate call the base method and then do what you want to the DraggingTool.draggedParts. For doDeactivate do the cleanups and then call the base method. You can find subclasses of DraggingTool and other tools in the samples and the extensions. You can also read more about overriding methods at: http://gojs.net/latest/intro/extensions.html.