abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Stimmen Sie für Ihre Archicad Wünsche!

Weitere Informationen
Dokumentation
Archicads Dokumentationswerkzeuge, Ansichten, Modellfilterung, Layouts, Veröffentlichung, etc.
GELÖST!

Eigenschaft 'Einheit'...

snow
Rockstar

Hallo zusammen,

 

ich bin mal wieder dabei, die Höhenangabe in einem Etikett, für Maße (gemäß DIN 1356 -1) < 1,00 m in 'cm' angezeigt haben zu wollen...

...und gehe davon aus, dass ich eine neue 'Eigenschaft' dazu brauche.

 

Dabei habe ich diese mit der Bezeichnung 'Einheit' gefunden... und frage mich, ob mir diese in diesem Fall nützlich sein könnte.

 

snow_0-1697440553535.png

Was meint ihr?

Archicad For Future
______________________________________

archicad versions 8-27 | mac os 13 | win 10
1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen
Lösung
Stefan L_
Advisor

Ja, nee, die Berechnung war auch falsch.

Jetzt noch mal 'richtig', aber mit ziemlich plödem Code:

IFS (
	AND (
		{Property:Allgemeine Parameter/Oberkante zu Projektursprung} > -0,0025 m;
		{Property:Allgemeine Parameter/Oberkante zu Projektursprung} < 0,0025 m
	); "±0,00";

	{Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m > 0,9975;
	CONCAT (
		"+";
		STR (
			LEFT (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4);
			(LEN (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4))) - 2 
			); 2 
		); 
		IF (MID (SPLIT (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4); ","; 2); 3; 1) = "5"; "⁵"; "")
	);
	{Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m > 0;
	 SUBSTITUTE (
		SUBSTITUTE (
			CONCAT (
				STR (
					LEFT (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4);
					(LEN (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4))) - 2 
					); 2 
				); 
				IF (MID (SPLIT (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4); ","; 2); 3; 1) = "5"; "⁵"; "")
			);
		"0,"; "+") ;
	"+0"; "+") ;
	{Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m < 0;
	 SUBSTITUTE (
		SUBSTITUTE (
			CONCAT (
				STR (
					LEFT (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4);
					(LEN (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4))) - 2 
					); 2 
				); 
				IF (MID (SPLIT (STR (MROUND ({Property:Allgemeine Parameter/Oberkante zu Projektursprung} / 1 m; 0,005); 4); ","; 2); 3; 1) = "5"; "⁵"; "")
			);
		"-0,"; "-") ;
	"-0"; "-") 
)

Wofür ich mich besonders schäme:

- das geschachtelte SUBSTITUTE; für die vorangestellte Nullen bei Zentimetern

- die aus der AC-Durchbruchsbeschriftung geklauten Zeilen, an die ich mich nicht rangetraut habe

 

Ergebnis (oben Rohwert, unten formatiert):

StefanL__0-1699623950765.png

 

--
Stefan
AC ...-27, WIN10

Lösung in ursprünglichem Beitrag anzeigen

27 ANTWORTEN 27
Stefan L_
Advisor

Soweit ich weiß wird diese 'Einheit' nur von den Berechnungen ('Öffnungsbreite'...) unter 'Schlitze und Durchbrüche' genutzt.

Diese Berechnungen könnten Dir aber als Vorlage für hochgestellte Fünfen dienen. Die sind in ihrer Schachtelungsvielfalt allerdings starker Tobak... 😉

 

--
Stefan
AC ...-27, WIN10
snow
Rockstar

Ja, inzwischen hab' ich eine E. gefunden, in der 'Einheit' eingebaut ist...

... tatsächlich mit einer Unmenge Code: Rundung, Hochstellung...

 

snow_0-1697452829498.png

 

 

Vielleicht mach' da doch lieber was einfaches... auch wenn das dann nicht so viel kann... dann wird halt nur in ganzen Zentimetern gebaut...

 

Archicad For Future
______________________________________

archicad versions 8-27 | mac os 13 | win 10
snow
Rockstar

Aber die Kommastellen müssen noch weg... weiß schon wieder nicht mehr, ob das nur mit hin-und-her-Datenkonvertierungen geht...

 

 

Archicad For Future
______________________________________

archicad versions 8-27 | mac os 13 | win 10
snow
Rockstar

Ich bin mir nicht sicher, ob das mit 'IF' (<1,00 m) zusammengehen kann ??

 

snow_0-1697461988841.png

 

Archicad For Future
______________________________________

archicad versions 8-27 | mac os 13 | win 10

Dein Ergebnis ist ein STRing, also muss der Datentyp "Zeichenfolge" sein.

--
Stefan
AC ...-27, WIN10
snow
Rockstar

Der Strick gibt einfach ("neutrale") Zeichen aus. Ja.💡

Nur mit der Umstellung war es hier aber nicht getan (hatte ich zuvor auch schon probiert)...

... sondern 'IF' funktioniert nur mit einheitlichen Argumenten. (... im Etikett... in der "Vorschau" kommt trotzdem der richtige Wert... wenn auch mit Fehlermeldung in rot...)

 

Einfacher als so, hab' ich das nicht hinbekommen:

 

snow_0-1697636180523.png

(Jetzt bin ich mal gespannt, ob ich früher ein Buch mit dem Titel 'Eigenschaftsdefinition in Archicad für Hausfrauen' geschrieben hab' oder ob solcherlei Dinge irgendwann mal einfacher zu handhaben sind 😅)

 

Archicad For Future
______________________________________

archicad versions 8-27 | mac os 13 | win 10

Check this out:

IF ( {Property:Allgemeine Parameter/Oberkante zu Projektursprung} < 1 m; 
	STR (( {Property:Allgemeine Parameter/Oberkante zu Projektursprung}/1m * 100 ); 0);
	STR (( {Property:Allgemeine Parameter/Oberkante zu Projektursprung}/1m ) ;2)
)

(Den Code kannst Du rauskopieren und in den Berechnungs-"Editor" einfügen, dann wird '{Proper...' wieder proper.)

 

Das "Teil durch einen Meter" spart den Pilgerschritt. In hübsch:

StefanL__0-1697644542020.png

 

--
Stefan
AC ...-27, WIN10
snow
Rockstar

Ja, mit dem 'geteilt durch 1 Meter' hatte ich zuvor schon probiert... dabei aber offenbar irgendetwas verwurschtelt.

... geht dann aber doch so... etwas eleganter.

 

(Nehm' ich dann in mein Buch, unter Nennung des Verfassernamen auf 😃)

Archicad For Future
______________________________________

archicad versions 8-27 | mac os 13 | win 10

Sehr gut, dass eine Lösung für das Problem gefunden wurde und die hilft auch gut weiter, trotzdem ist es ein eigentlich schrecklicher Workaround wegen einer fehlenden Archicad Funktion.

 

Ich möchte anmerken, dass ich es persönlich für vollkommen verkehrt halte, wenn Anwender gezwungen werden über Eigenschaften Einheiten zu berechnen/definieren/umzuwandeln. Eine Einheit sollte niemals eine Eigenschaft eines Elements sein. Ein Element sollte nur den Wert beinhalten. Also bitte nicht falsch verstehen: natürlich muss der Wert in einer definierten Einheit hinterlegt werden, aber die Darstellung sollte dort nicht hinterlegt werden.

 

Archicad braucht dringend für Autotext-Etiketten Format-Strings, wo ich einfach festlegen kann, ob ein Wert wie in den Bemaßungseinheiten dargestellt werden soll, oder auch selbst definiert werden kann. Das fehlt im Moment ist aber extrem notwendig. 

 

AC4.5-AC27 AUT, GER, INT
www.a-null.com