abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

GDL Subtyp Steuern

JonasSP
Booster

Hallo zusammen,

ich arbeite an einem GDL-Objekt, das aus einer Wand (Hauptobjekt) und einem Winkel (Subobjekt) besteht. Der Winkel wird über den CALL-Befehl in das Hauptobjekt eingefügt.

Anforderungen:

  1. Die Wand soll in der IFC-Ausgabe als IfcWall erscheinen.
  2. Der Winkel soll in der IFC-Ausgabe als eigenständiges Element (z. B. IfcMechanicalFastener) klassifiziert werden.

Problem:

In der aktuellen Umsetzung wird der Winkel in der IFC-Ausgabe als Teil der Wand (IfcWall) ausgegeben. Ich möchte jedoch, dass die Wand und der Winkel getrennt klassifiziert werden und ihre eigenen IFC-Typen und Eigenschaften erhalten erhalten.


Geht das überhaupt oder ist dies Unmöglich. Ich bin Dankbar für jegliche Vorschläge

Liebe Grüsse
Jonas

 

Operating system used: Windows 10

7 ANTWORTEN 7
Frank Beister
Moderator

Das geht so nicht. Ein Bauteil = ein IFC Typ (Ausnahme: Fassade, Treppen, Geländer)

Wenn die zwei Objekte assoziiert sein sollen, geht das m.E. nur über CALL. Alles andere über gloabale Parameter oder Text-Konfigurationsdateien ist grausames Gefrickel.

bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm

Ok Sehr schade  Aber trotzdem danke

Bernhard Binder
Graphisoft Partner
Graphisoft Partner

Ich kenne jetzt nicht den genauen Anwendungsfall, aber wäre eine Lösung als Wandzubehör denkbar?

Also die Wand wirklich mit dem Wandwerkzeug erstellen und den/die Winkel als Zubehörobjekt?

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

Nein leider nicht 
da die Wand so programmiert ist, dass man die Koordinaten des Mittelpunktes als Liste exportieren kann

JonasSP
Booster

Vielleicht nochmals etwas verständlicher formuliert. 
wenn ich Die Winkel manuell hinzufüge Werden die Entsprechende meinem IFC Übersetzter exportiert (Grün)

Wenn ich die Wand exportiere bei welcher ich die Winkel mittels CALL Befehl abrufe werden diese als direktes Element der Wand im IFC generiert (Rot)
Das geht soweit auch in Ordnung nur soll jeder Winkel Einzel aufgelistet werden ==> Darf auch ein Unterelement von der Wand sein. Aber es soll der Name des Winkel angegeben werden und nicht nur  Metall Stahl.

JonasSP_0-1733750010985.png

Wenn es dazu auch keine Lösung gibt dann sei es halt so und ich schreibe alle Informationen direkt bei der Wand etwas unschön aber funktiniert auch.



Das ist jetzt deutlich angespeckter als die EIngangsfrage.

AC exportiert Objekte in IFC aufgteilt, indem es verschiedene Materalien zusammengruppiert. Hier könntest du mit dem Materialnamen vielleicht was werden. Sonst probiere mal im Skript mittels Body Abschnitte zu bilden,. Vielleicht geht da was.

bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm

Herzlichen Dank für die Rasche Rückmeldung
Mit Bodys kenn ich mich noch gar nicht aus im GDL Refernzhandbuch bin ich nicht viel schlauer geworden. Gibt es dazu noch besseres Nachschalgewerk?
 Mit den Materialien denke ich wird es etwas schwieriger da die Winkel wenn sie mehrfach vorkommen das gleiche Material haben. 

Ich habe mal im 3D Script die Befehl Body ergänzt aber hat keinen Einfluss auf die IFC Ausgabe, habe es wahrscheinlich auch Falsch gemacht, wie gesagt dazu habe ich noch keine Erfahrung.

set Material matwall

hotspot2 0,0
pen gs_cont_pen
	PRISM_ 5, ZZYZX, 
	x[1],		y[1],			15,				
	x[2],		y[2],			15,				
	x[4],		y[4],			15,	
	x[3],		y[3],			15,	
	x[1],		y[1],			-1
body 1


hotspot x[1],y[1],			0, unID
hotspot x[2],y[2],			0, unID
hotspot x[3],y[3],			0, unID
hotspot x[4],y[4],			0, unID

hotspot x[1],y[1],			ZZYZX, unID
hotspot x[2],y[2],			ZZYZX, unID
hotspot x[3],y[3],			ZZYZX, unID
hotspot x[4],y[4],			ZZYZX, unID


!Schubverankerungen Links
		if Schub_Anzahl_L >0 then 
					For i =1 to Schub_Anzahl_L
						
						addx x[1]
						addy y[1]
						rotz alpha
						if x[1]-x[2] >0then rotz 180
						addx SxL[i]
						if not (Ref_Achse) then rotz 180
						CALL Schub_Typ_L PARAMETERS all
						Body 1

						del top
		 			next i

		endif

!Schubverankerungen rechts
	if Schub_Anzahl_R >0 then 
					For i =1 to Schub_Anzahl_R
						
						addx x[3]
						addy y[3]
						rotz alpha
						if x[3]-x[4] >0then rotz 180
						addx SxR[i]
						if (Ref_Achse) then rotz 180

						CALL Schub_Typ_R PARAMETERS all
						Body 1
						del top
		 			next i

		endif




Setup info provided by author