Welcome to yEd Q&A!
Here you can ask questions and receive answers from other members of the community and yEd developers. And you can tell us your most wanted feature requests.


self avoiding flowchart diagrams?

0 votes
I become more and more fond of yEd and want to make better use of it, say using it as a flowchart draft book for me to better organizing my flowcharts by say adding separate but related flowchart diagrams on the same page. The issue is when I need to modify one flowchart say add in nodes or change locations, other flowcharts do not move accordingly, so that I have to manually down shift them one by one, which causes inconvenience. Could you add in a way to automatically adjust the rest graphs (maybe including the rest nodes in the same flowchart, but definitely the following flowcharts on the same page)?
in Help by (200 points)

1 Answer

0 votes
If you arrange your flowcharts with "Layout" -> "Flowchart" or "Layout" -> "Hierarchical", the algorithm will do that for you. These algorithms are very sophisticated (and very, very complex) meaning they already produce the best possible result that can be calculated in automated fashion.
However, even manually down-shifting whole charts should be easy - after all you simply need to marquee-select the charts in question and either use your mouse or "Tools" -> "Geometric Transformations"  to move the selected charts downwards.
by [yWorks] (161k points)
I am not quite sure whether this answered my question. I tried both ways, set up a sample flowchart, then move one node, the other nodes do not change accordingly, even if I move the node to overlap with its nearby nodes. Please help me further if you think I didn't get your point. Thanks,

Automatically removing overlaps whenever you move a node over another node is not as easy as you seem to think it is. Actually, it is impossible to do in a sensible manner in the general case (we tried).
Thus there are only two options that really work:

  1. Do not arrange your diagrams manually but use one of yEd's layout algortihms.
  2. Resolve overlaps manually.

That is what I suggested in the answer above.

Moreover, you claimed you had to "down shift them one by one", which I think is not necessary. You can select all elements that need to be moved and move them all togehter (either manually or using "Tools" -> "Geometric Transformations").

I did followed your instruction to do so, but not come out as expected. The following is the details on what I did, please correct me if I did anything wrong.

(1) file -> new
(2) layout -> flowchart
(3) use palette view to drag nodes from flowchart tab to the open area to draw flowchart
(4) drag the first flowchart node downward to overlap with the second flowchart node, the second flowchart node stays unchanged and the first flowchart node stays on top of the second.

The expected behavior is all the nodes since the second down shifting to avoid overlapping with the first node.
in algorithm, I don't think it is that complicated. Just assign each node a 2D position, then any node changes, the following nodes with say y axis bigger than the moving node have that constant shift as well. I don't know how it might interfere with your optimal algorithm, but I don't observe any extra automatic rearrange of nodes after the nodes have already been (very well) situated at given positions, so maybe your algorithm is once for all and does not interfere with aftermaths manual rearrangement treatment.


(1) file -> new
(2) layout -> flowchart

There seems to be a misunderstanding here. The yEd layout algorithms arrange the current diagram. They will not continously update the diagram on changes. Running a layout algorithm on an empty diagram will do exactly nothing.


The expected behavior is all the nodes since the second down shifting to avoid overlapping with the first node.

As I mentioned in my previous comment, this is not possible.


[Your algorithm description.]

Well, that is a very simplistic approach that will not yield good results in a lot of use cases - e.g. if you move a node upwards instead of downwards. ;-)

If you are looking for such a simple solution, just move elements manually. It really is only a two-step process: select elements, move elements.

Thanks, just got how to use layout->flowchart, it is quite convenient.

But how to use layout->hierarchial in case I have separate flowcharts in an active editor? I ctrl+a selected all diagrams and then click layout->hierarchial, the consequence is the same as layout->flowchart.

In case you want us to manually select moving nodes, can you provide an easy way to select till end option for us to use? ctrl+a selects all nodes, ctrl+click has to go through each node, that's not convenient.
Regarding your second question, yEd supports marquee selection. I.e. move the mouse on empty space, press and hold the left mouse button, and start dragging the mouse. This will open a selection rectangle. Once you release the mouse, all the nodes and bends inside the rectangle will be selected.
What if my diagrams extend a few pages long? Dragging the mouse to move the pages is very inconvenient. How about when shift+click selects a whole diagrams with all the linked nodes included? this seems to be a quite convenient way to select a bunch of relevant diagrams/nodes.
If your diagram "extends a few pages long" then zoom out! yEd even offers a "fit content" action (eighth tool bar button from that right) which ensures that the complete diagram is visible.
Besides, SHIFT+click is already in use for enlarge/reduce selection.
Thanks, good point!

BTW, SHIFT+click seems on my screen chooses or unchooses a node, which is why I was thinking maybe it can choose a whole linked nodes, or maybe shift+double click to do so.
Legal Disclosure | Privacy Policy