Das kann man recht schlicht halten, indem man einfach die 3D-Koordinaten eingibt.
[![alt text][1]][1]
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\pgfmathsetmacro{\a}{4}%
\pgfmathsetmacro{\b}{5}%
\pgfmathsetmacro{\h}{3}%
\begin{tikzpicture}[%scale=0.7,
font=\footnotesize,
z ={(0,0,-cos(45))},
]
\coordinate[label=left:$A$] (A) at (0,0,0);
\coordinate[label=right:$B$] (B) at (\a,0,0);
\coordinate[label=right:$C$] (C) at (\a,0,\b);
\coordinate[label=below:$D$] (D) at (0,0,\b);
\coordinate[] (M) at (0.5*\a,0,0.5*\b);
\path[] (M) --+ (0,\h,0) coordinate[label=$S$] (S);
% Grundfläche
\draw[] (A) -- (B) node[midway, below]{$a=\a$\,cm} -- (C) node[pos=0.6, sloped, below]{$b=\b$\,cm};
\draw[densely dashed] (A) -- (D) -- (C);
% Höhe
\draw[] ($(M)!-5pt!(C)$) -- ($(M)!5pt!(C)$) ;
\draw[] ($(M)!-5pt!(B)$) -- ($(M)!5pt!(B)$) ;
\draw[] (M) -- (S) node[midway, right]{$h=\pgfmathprintnumber[precision=2]{\h}$\,cm};
% Mantellinien
\draw[densely dashed] (D) -- (S);
\draw[] ($(M)!-5pt!(C)$) -- ($(M)!5pt!(C)$) ;
\draw[] ($(M)!-5pt!(B)$) -- ($(M)!5pt!(B)$) ;
\draw[] (M) -- (S) node[midway, right]{$h=\pgfmathprintnumber[precision=2]{\h}$\,cm};
% Mantellinien
\foreach \P in {A,B,C}{ \draw[] (\P) -- (S); }
\begin{scope}[-latex, shift={(0,\h-0.3,0)}]
\foreach \P/\s/\Pos in {(1,0,0)/x/below, (0,1,0)/y/left, (0,0,2)/z/right}
\draw[] (0,0,0) -- \P node[\Pos, pos=0.9,inner sep=2pt]{$\s$};
\end{scope}
\end{tikzpicture}
\end{document}
[1]: https://matheplanet.de/matheplanet/nuke/html/uploads/b/50970_16_565555555.png