Das zweite Handle müsstest Du Dir sparen können, wenn Du erst extrudierst und dann das nächste Objekt auswählst:
Code:
elementh := FActLayer;
WHILE (elementh<>NIL) DO BEGIN
recvalue:=GetRField(elementh, 'Bebauung', 'Geschoss');
value:=Str2Num(recvalue);
bottom:=0;
top:=value*3.5;
h:=HExtrude(elementh, bottom, top);
elementh:=NextObj(elementh);
END;
Welchen Datentyp hat denn das Feld "Geschoss"? Wenn's bereits Typ Zahl oder Ganzzahl ist (und nicht Typ Text), brauchst Du auch keine Umwandlung, evtl. kommt daher die Fehlermeldung. Laß doch testhalber mal die entsprechende Zeile weg:
Code:
elementh := FActLayer;
WHILE (elementh<>NIL) DO BEGIN
recvalue:=GetRField(elementh, 'Bebauung', 'Geschoss');
bottom:=0;
top:=recvalue*3.5;
h:=HExtrude(elementh, bottom, top);
elementh:=NextObj(elementh);
END;
Ich hab's nicht getestet, aber es sollte gehen...
Gruß, Matthias