Eine Möglichkeit wäre `aspect` (das Wenn die Breite der Rhomben gleich bleiben soll und dafür die Höhe angepasst werden soll, muss für jede dieser Noden die Option `aspect`, mit der das Verhältnis von Breite und Höhe) für jeden Höhe festgelegt wird, entsprechend angepasst werden. Dafür kann man die Ähnlichkeit zwischen dem roten und dem blauen Dreieck in der folgenden Skizze nutzen:
![alt text][1]
Der Text (oder sonstige Inhalt) einer Rhombus so Node wird immer in einer rechteckigen Box (in der Skizze gestrichelt) gesetzt, deren Breite man vorgeben kann und hier auch vorgeben muss. Die Gesamthöhe dieser rechteckigen Box, die dann vom konkreten Inhalt abhängt, kann man bestimmen. Wegen der bereits erwähnten Dreiecksähnlichkeit lässt sich `aspect` dann auch einfach als Verhältnis der Gesamthöhe des Inhaltes zur Differenz aus der gewünschten Rhombenbreite, der vorgegebenen `textwidth` und der gewünschter Rhombenbreite und vorgegebener Textbreite berechnen. Damit ändert sich die Höhe des Inhaltes berechnen zu lassen, dass sich nur Rhombus immer um den gleichen Faktor wie die Höhe nicht aber die Breite ändert.
der rechteckigen Box und die Rhombenbreite bleibt gleich.
Hier ist eine mögliche Umsetzung:
\documentclass[margin=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes.geometric,backgrounds}
\tikzset{decision/.style={draw,inner sep=0pt,diamond,minimum width=\diamondbreite,aspect=\aspect}}
\newbox\mybox
\newlength\Boxhoehe
\newcommand\diamondbreite{2cm}
\newcommand\diamondtextbreite{1cm}
\newcommand\aspect{1}
\newcommand\tikzDiamondBox[2][]{%
% Abspeichern des Inhaltes in \mybox
\sbox\mybox{\pgfinterruptpicture\parbox{\diamondtextbreite}{\centering \strut#2}\endpgfinterruptpicture}%
\setlength\Boxhoehe{\dimexpr\ht\mybox+\dp\mybox\relax}%
\pgfmathsetmacro\aspect{(\diamondbreite-\diamondtextbreite)/\the\Boxhoehe}
% Gesamthöhe von \mybox (also des Inhaltes) ermitteln
\setlength\Boxhoehe{\dimexpr\ht\mybox+\dp\mybox\relax}
% Berechnen von \aspect
\pgfmathsetmacro\aspect{(\diamondbreite-\diamondtextbreite)/\the\Boxhoehe}
% Ausgabe
\node[decision,#1]{\usebox\mybox};
}
\begin {document}
\begin{tikzpicture}[node distance=0cm,gridded]
\renewcommand\diamondbreite{5cm}
\renewcommand\diamondtextbreite{3cm}
\tikzDiamondBox[name=decision1]{Mein Text}
\tikzDiamondBox[below=of decision1,name=decision2]{Hier sollte ein mehrzeiliger Text stehen.}
\tikzDiamondBox[below=of decision2]{Hier sollte dann ein langer Text stehen, der noch mehr Zeilen braucht.}
\end {tikzpicture}
\end {document}
![alt text][1]
text][2]
[1]: http://texwelt.de/wissen/upfiles/rhombenrechnung.png
[2]: http://texwelt.de/wissen/upfiles/rhomben2_1.png