I am working on a project related to elevator group control systems, and I am writing a paper right now, but I need to show a diagram that depicts an elevator system diagram in the paper, the example is shown below.

Could someone please tell me from where to start in order to obtain the shown results? I already have experience in using Tikz library and PGFPlots, but I only used them to create simple plots.

Elevator system schematic diagram

Edit: this is the code I have tried, but the results are far from what I wanted.


\gantttitle{Title}{5} \\
\ganttbar{}{1}{1} \\
\ganttbar{}{2}{2} \\
\ganttbar{}{3}{3} \\
\ganttbar{}{4}{4} \\
\ganttbar{}{5}{5} \\

  • @JouleV I tried building it with a package called pgfgantt, that creates gantt diagrams, but it was not exactly what I wanted, as Gantt diagrams are horizontal, and I want the diagram to be vertical, as elevators move vertically. Apr 12, 2019 at 14:32
  • Add your code to the question. Any codes are helpful for us to help you.
    – user156344
    Apr 12, 2019 at 14:33
  • @JouleV I just did, thank you for reminding me. Apr 12, 2019 at 14:36

1 Answer 1



\tikzset{elevator/.style={fill=black,inner sep=0pt,minimum height=0.7cm,minimum width=0.2cm}}
\foreach \i/\elev/\mione/\mitwo in {
} {
    \draw (\i,0) -- (\i,9);
    \foreach \j in {0,...,9} \draw (\i-.1,\j) -- (\i+.1,\j);
    \node at (\i,10) {Shaft \i};
    \path (\i-.1,\elev) node[left=.3333em,elevator] {};
    \path (\i-.1,\mione) node[left] {$-$};
    \path (\i-.1,\mitwo) node[left] {$-$};
\foreach \i/\elev/\mione/\mitwo in {2/6/0/4,3/8/0/0} {
    \draw (\i,0) -- (\i,9);
    \foreach \j in {0,...,9} \draw (\i-.1,\j) -- (\i+.1,\j);
    \node at (\i,10) {Shaft \i};
    \path (\i+.1,\elev) node[right=.3333em,elevator] {};
    \path (\i+.1,\mione) node[right] {$-$};
    \path (\i+.1,\mitwo) node[right] {$-$};
\draw (5,0) -- (5,9);
\foreach \i in {0,...,9} \draw (4.9,\i) -- (5.1,\i);
\node at (5,10) {Buttons};
\foreach \i in {2,3} \path (5.1,\i) node[right] {$+$};
\foreach \i in {5,8} \path (4.9,\i) node[left] {$+$};
\path (4.9,0) node[left] (up) {up};
\path (5.1,9) node[right] (dn) {dn};
\draw[->] (up) -- ++ (0,2);
\draw[->] (dn) -- ++ (0,-2);

enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .