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

Elemente oder Bibliothekselemente verteilen

Hallo zusammen,

 

gibt es eine Funktion/Möglichkeit, Elemente wie z.B. Kreise durch Bibliothekselemete zu ersetzen, oder sie als Zielposition zu nutzen? Ziel ist es, von einem Plan, der importiert wurde und u.A. Kreise aus Polylinien enthält, durch Bäume als Draufsicht (Bibliothekselemente) zu ersetzen, oder diese daran auszurichten.

 

mfg, Markus

Architectural draftsman/Bauzeichner
Archicad 11 bis 29 D (aktuell)
-11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2.50 GHz
-RAM 32 GB
-Windows 11 Pro
-NVIDIA Quadro RTX 4000
-Canon TM 300 + Scanner
2 AKZEPTIERTE LÖSUNGEN

Akzeptierte Lösungen
runxel
Moderator

Hallo Markus,

 


Lassen sich denn diese Schraffuren besser als "Positionsmaterial" weiterverarbeiten oder verwenden?

Nein, nicht wirklich. Der Kreis weiß, dass er rund ist und einen Mittelpunkt hat. Alles andere ist erstmal nur Polygon-Matsche. So bisschen wie der Unterschied Element ↔ Morph. Das Morph sieht gleich aus, weiß aber nicht, was es ist.

Da müsste man dann erstmal mit einem Algorithmus auswerten, ob etwas "kreisähnlich" ist. (Dafür müssten die Linien aber auch verbunden und geschlossen sein. Da sind wir wieder bei der Ausgangslage. Oft kommen in den DWGs keine Polylinien mit, sondern dann muss man Millionen von kleinen Liniensegmenten kämpfen...)

Das ist ein richtiger Komplexitätsschub. Aber wahrscheinlich könnte man mittlerweile das mit KI sich selbst gut zurechtzuppeln 😉

Lucas Becker | AC 29 on Mac (Sequoia) | Graphisoft Insider Panelist | Akroter.io – high-end GDL objects | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text

My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»

Lösung in ursprünglichem Beitrag anzeigen

runxel
Moderator

Der Code ist dafür, genau das umzusetzen, was du dir wünscht! 😃

 

Perisso ist ein Frontend von mir für Tapir. Tapir ist ein Addon das auf der JSON-Schnittstelle aufbaut. Technisch erklärt: Dein Archicad ist ein Server, der auf dem Localhost einen Port aufmacht und zuhört. Wenn man dem dann was schickt (als JSON), bekommt man eine Antwort zurück. Die offizielle Python-Erweiterung wird ja nicht mehr weiterentwickelt, daher haben ein paar kluge Köpfe Tapir entwickelt, was das selbe macht, aber die nötigen Befehle bereitstellt.

Also quasi die Stelle, die intern liest, was du willst, und das dann liefert.

 

Du brauchst nur das Tapir-Addon und dann kannst du den Code von oben entweder extern oder über das integrierte Panel ausführen.

Lucas Becker | AC 29 on Mac (Sequoia) | Graphisoft Insider Panelist | Akroter.io – high-end GDL objects | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text

My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»

Lösung in ursprünglichem Beitrag anzeigen

12 ANTWORTEN 12
JulianWoschek
Booster

Meines Erachtens gibt es keine Möglichkeit dies zu machen. Ich hab bisschen Archicad durchforstet, was es für vielleicht versteckte Werkzeuge/Einstellungen hat, aber nichts was 2D Elemente zu Objekte macht. Objekt zu Objekt austauschen geht problemlos aber leider nicht 2D Elemente zu Objekten 😞 
Vielleicht finde ich noch was und melde mich dann wieder.

Frank Beister
Moderator

Hatten wir schon mal. Lange her. Mit "normalen" Bordmitteln wohl nicht, sicher aber über die API/Python/Grashopper-Rhino.

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

Ich bin mir sicher, dass es sich hierbei um eine speziellere Anforderung handelt. Dennoch sehe ich hier einen Bedarf, der vermutlich mit relativ geringem Aufwand zu lösen sein sollte. Als Anwendungsfall sehe ich hier die Integration von digitalen Flurkarten, die in der Regel mit allerlei Symbolen gespickt sind, die beim Import nicht dem CD des Büro entsprechen. Ein "nice-to-have" für den Nutzer.

Gruß, Benjamin Schober | Eidenhardt + Schober Architektur PartGmbB

ArchiCAD 21-29 (Voll, D), Windows 11 Pro (64-bit), Intel Core Ultra 9 285, 64 GB RAM, nVidia RTX 2000 Ada, 16 GB DDR6
Frank Beister
Moderator

Wenn man beim Import steuern kann, dass Objekte erzeugt werden, wie z.B. beim IFC-Import, könnte man die GSM-Objekte von Kreisen durch z.B. Bäume ersetzen. Dann müssen aber auch alle Einzelelemente als einzelne Objekte angelegt werden. Ziemliche Frickelei, denke ich.

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
runxel
Moderator

Nativ gehts so nicht. Aber mit der Python-Schnittstelle schon.

Fragt sich nur: sind das auch wirklich Kreise? Die meisten DWGs die ich so kenne, sind das einfach Polygone mit drölf millionen Punkten... Und dann ist man auf einmal eher im Themenbereich einer Dissertation. 😃

Lucas Becker | AC 29 on Mac (Sequoia) | Graphisoft Insider Panelist | Akroter.io – high-end GDL objects | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text

My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
Markus70
Advocate

Moin Runxel,

 

in der Tat sind es "einfach Polygone mit drölf millionen Punkten..." 🙄. Wir haben diese schon über das "Schwarzplan"-Werkzeug mit Schraffuren füllen können. Das geht natürlich auch nur bedingt, weil sich diese Polygon-Kreise nicht selten überlappen. Also alles Frickelei. Lassen sich denn diese Schraffuren besser als "Positionsmaterial" weiterverarbeiten oder verwenden?

 

mfg, Markus

Architectural draftsman/Bauzeichner
Archicad 11 bis 29 D (aktuell)
-11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2.50 GHz
-RAM 32 GB
-Windows 11 Pro
-NVIDIA Quadro RTX 4000
-Canon TM 300 + Scanner
runxel
Moderator

Hallo Markus,

 


Lassen sich denn diese Schraffuren besser als "Positionsmaterial" weiterverarbeiten oder verwenden?

Nein, nicht wirklich. Der Kreis weiß, dass er rund ist und einen Mittelpunkt hat. Alles andere ist erstmal nur Polygon-Matsche. So bisschen wie der Unterschied Element ↔ Morph. Das Morph sieht gleich aus, weiß aber nicht, was es ist.

Da müsste man dann erstmal mit einem Algorithmus auswerten, ob etwas "kreisähnlich" ist. (Dafür müssten die Linien aber auch verbunden und geschlossen sein. Da sind wir wieder bei der Ausgangslage. Oft kommen in den DWGs keine Polylinien mit, sondern dann muss man Millionen von kleinen Liniensegmenten kämpfen...)

Das ist ein richtiger Komplexitätsschub. Aber wahrscheinlich könnte man mittlerweile das mit KI sich selbst gut zurechtzuppeln 😉

Lucas Becker | AC 29 on Mac (Sequoia) | Graphisoft Insider Panelist | Akroter.io – high-end GDL objects | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text

My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
Markus70
Advocate

Vielen Dank euch, für eure Unterstützung!

 

mfg, Markus

Architectural draftsman/Bauzeichner
Archicad 11 bis 29 D (aktuell)
-11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2.50 GHz
-RAM 32 GB
-Windows 11 Pro
-NVIDIA Quadro RTX 4000
-Canon TM 300 + Scanner
runxel
Moderator

@Markus70 

Ich habe ganz vergessen, dass ich genau dafür schon mal Code geschrieben habe.

Mit Perisso/Tapir kann man das Problem in wenigen Zeilen jetzt lösen:

 

from perisso import perisso, Filter, ElType, tapir, Polyline, ptype_utils

elem = perisso()

filtered = elem.filterBy(Filter.ELEMENT_TYPE).equals(ElType.POLYLINE)

det = tapir.GetDetailsOfElements(filtered)

for e in det["detailsOfElements"]:
	_p = Polyline.from_dict(e)
	if _p.is_closed:
		_iscirc = ptype_utils.detect_circle(_p)
		if _iscirc[1] is not None:
			print("Circle detected with center", _iscirc[1], "and radius", _iscirc[2])
			tapir.CreateObjects("Bohrung", _iscirc[1])

 

Bedingung: es müssen geschlossene Polylinien sein. 

Das Script setzt in alle Mittelpunkte von Quasi-Kreisen ein Bibliothekselement. Hier "Bohrung". Sieht so schön nach Crashtest aus.

Die Kreiserkennung ist nicht sonderlich komplex, man kann aber da noch mit einem Schwellenwert spielen. Hatte gerade keine echten DWGs zur Hand. In meiner Demo hats funktioniert.

Lucas Becker | AC 29 on Mac (Sequoia) | Graphisoft Insider Panelist | Akroter.io – high-end GDL objects | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text

My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen