For example, the image:
can be drawn with following MWE:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{chains, positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 7mm and 7mm,
start chain = going right,
base/.style = {draw, minimum size=7mm},
box/.style = {base, on chain, join=by ->}
]
\coordinate (a) at (0,-1);
\node (n1) [box] at (0,0) {A};
\node (n2) [box] {B};
\node (n3) [box] {C};
\node (n4) [base] at (a -| n2) {D};
\draw[red,->] (n3) |- (n4);
\draw[red,->] (n4) -| (n1);
\end{tikzpicture}
\end{document}
Now, for some reason I like to have only one definition for nodes and draw above image again:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{chains, positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 7mm and 7mm,
start chain = going right,
box/.style = {draw, minimum size=7mm,
on chain, join=by ->}
]
\coordinate (a) at (0,-1);
\node (n1) [box] at (0,0) {A};
\node (n2) [box] {B};
\node (n3) [box] {C};
\node (n4) [box] at (a -| n2) {D};
\draw[red,->] (n3) |- (n4);
\draw[red,->] (n4) -| (n1);
\end{tikzpicture}
\end{document}
Result is expected wrong:
Question: is it possible to say, that node "D" in above MWE is not on the chain? For example as
\node (n4) [box, suppress chain] at (a -| n2) {D};
similarly as it can be discontinued join between nodes in chain with definition of new option:
\tikzset{suppress join/.code={\def\tikz@after@path{}}}
and used as
\node (n4) [box, suppress join] at (a -| n2) {D};
I looked in TikZ documentation, where is described chainin (page 5449), but didn't find anything with opposite action.



