Hallo
ein Kunde von uns möchte eine leere dwg-Zeichnung mit allen von uns verwendeten Layern.
Das bekomme ich nicht hin, scheinbar werden immer nur belegte Layer exportiert,
hat jemand einen Tip für mich, wie ich das hin bekomme?
Hallo
ein Kunde von uns möchte eine leere dwg-Zeichnung mit allen von uns verwendeten Layern.
Das bekomme ich nicht hin, scheinbar werden immer nur belegte Layer exportiert,
hat jemand einen Tip für mich, wie ich das hin bekomme?
Da uns die PythonParts hoffentlich noch sehr sehr häufig über den Weg laufen werden und weil PythonParts rocken hier eine Minianleitung.
PythonPart installieren
- Neues Projekt anlegen
- im Windows Explorer in den Dateipfad des Projektes wechseln
- die datei layerscript.pyp in das Verzeichnis "...\Projektname\Library\" kopieren
- im Projektverzeichnis ein neues Verzeichnis "PythonPartsScripts" anlegen darin Verzeichnis "bhb" anlegen
- die datei layerscript.py in das Verzeichnis "...\Projektname\PythonPartsScripts\bhb\" kopieren
in Allplan Oberfläche:
- Bibliothek --> Projekt --> das obige Projekt auswählen --> dort sollte nun das PythonPart liegen
- Dieses einfach in die Zeichnungsfläche ziehen und fallen lassen --> Es hängen 5 linien am Mauszeiger --> Zahl anpassen enter drücken --> in die Zeichnungsfläche klicken --> et voila
gruss bernd
anbei Teilbild mit 65536 Layerlinien
BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a
Hallo Guido,
für jeden Layer ein Element zeichnen und damit belegen.
i7 - Win10 - 24GB - ATI FirePro W8100 * Allplan 2023/24 (+Vorläufer) Ing./Workgroup * Allplan user seit V 5
Puuuuh das wird anstrengend ca.200 mal Strg C, Layer umschalten, Strg V.....und dann ja nichts vergessen... ich hoffe da kommen noch praktikablere Lösungen (sorry Martin nicht persönlich nehmen)
....das ist eben Allplan
Hast Du kein Assistent wo schon alle Layer die du übertragen musst vorhanden sind ?
Kritik an Allplan ist nicht erwünscht!
v.2024
Ich hatte schon mal angefangen ein TB mit den entsprechenden Büro-Layern hier anzulegen, aber aus Zeitgründen wieder aufgegeben.
Gibts in Allplan sowas wie eine Makrosprache die nacheinander 32768 Elemente erzeugen kann und dabei automatisch die Layernummern hochzählt?
i7 - Win10 - 24GB - ATI FirePro W8100 * Allplan 2023/24 (+Vorläufer) Ing./Workgroup * Allplan user seit V 5
Die Hotline hatte eine passable Lösung, Zitat:
Leider ist das nicht möglich. Nur Layer, die belegt sind, können in die DWG geschrieben werden.
Sie könnten z. B. wie folgt vorgehen.
Lesen Sie beiliegende DWG auf ein leeres Teilbild ein und ordnen Sie dabei die Layer der DWG auf Ihre Allplan-Layer zu.
Sie können dabei mit der Option "Aufsteigend zuordnen" schnell alle Layer zuordnen:
Scrollen Sie nach unten und ordnen Sie alle Layer aus der DWG, die nicht mehr zugeordnet werden können, da keine weiteren Allplan-Layer mehr vorhanden sind (Im Kommentar im Zielsystem steht "benutzerdefinierte Layer") auf "Nicht verwenden" zu
Wenn Sie mehr als 200 Layer haben, merken Sie sich beim Import den für "Layer_200" zugeordneten Layer im Zielsystem:
Verschieben Sie nach dem Einlesen der DWG die eingelesenen Daten.
Lesen Sie die DWG dann erneut ein und ordnen Sie die Layer der DWG auf die restlichen Allplan-Layer zu.
Scrollen Sie nach unten und ordnen Sie alle Layer aus der DWG, die nicht mehr zugeordnet werden können, da keine weiteren Allplan-Layer mehr vorhanden sind (Im Kommentar im Zielsystem steht "benutzerdefinierte Layer") auf "Nicht verwenden" zu
Wenn Sie die eingelesenen Daten dann nach DWG exportieren, können Sie diese DWG mit allen Layern den Planungspartnern zur Verfügung stellen.
import NemAll_Python_Geometry as AllplanGeo import NemAll_Python_Elements as AllplanElements print('layerscript.py') def check_allplan_version(build_ele, version): del build_ele del version return True def create_element(build_ele, doc): del doc print('STaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRT') common_props = AllplanElements.CommonProperties() model_elem_list = [] handle_list = [] for i in range(500): common_props.Layer = i my_shape = make_cylinder(i) model_elem_list.append(AllplanElements.ModelElement3D(common_props, my_shape)) return (model_elem_list, handle_list) def make_cylinder(cyl_origin): origin = AllplanGeo.AxisPlacement3D(AllplanGeo.Point3D(8 * cyl_origin, 0, 0), AllplanGeo.Vector3D(0, 1, 0), AllplanGeo.Vector3D(0, 0, 1)) my_cylinder = AllplanGeo.BRep3D.CreateCylinder(origin, 0.5 * 10, 2 * 10) return my_cylinder
BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a
Ich denke zu viel in 3D. Mit einer 2D linie lassen sich die 32768 lininen mit 32768 layern problemlos erstellen. Anbei Teilbild und PythonPart. Die Linienanzahl kann als Parameter in die Oberfläche des PythonPart eingeben werden. Allerdings scheint Allplan bei mir beim DWG export zu crashen. Jedenfalls tut sich einige minuten nichts.
import NemAll_Python_Geometry as Geo import NemAll_Python_Elements as Ele def check_allplan_version(build_ele, version): return True def create_element(build_ele, doc): count_layer_lines = build_ele.Count.value common_props = Ele.CommonProperties() model_elem_list = [] handle_list = [] for i in range(count_layer_lines): common_props.Layer = i line = Geo.Line2D(2*i, 0, 2*i, 5) model_elem_list.append(Ele.ModelElement2D(common_props, line)) return (model_elem_list, handle_list)
BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a
1. müsste man nicht die hälfte der layer verwenden, sondern eher alle layer ... also 65536.
2. legt er für alle MÖGLICHEN layer eine linie an.
gut wäre es, wenn nur layer verwendet würden, welche auch im projekt vorhanden sind......
Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]
Alles gute Fragen Markus. Die 32768 hab ich von Martin übernommen. Die Anazahl der Linien wird aus der PythonPart Oberfläche genommen, kann also frei durch den Nutzer eingegeben werden. Ich hab als Standardwert 5 eingegeben. Für jede Linie wird einfach ein neuer Layer gewählt. Bei einfügen des PythonParts also einfach 65536 in die Oberfläche eingeben und schon hängen 65536 Linien mit 65536 Layern am Mauszeiger.
Natürlich wäre das genial nur die im Projekt vorhanden Layer zu verwenden, aber soviel ich weiss, ist es nicht möglich mittels den PythonParts auf bestehenden Objekte oder Projekte zuzugreifen.
So richtig funktioniert aber etwas mit den Layern und den PythonParts nicht. Siehe https://connect.allplan.com/ch_de/forum/themen/topic/topics/pythonparts/einem_pythonpart_einen_buerolayer_zuweisen.html
BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a