Support Forum

DWG Export mit allen Layern


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?

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

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

Anhänge (1)

Typ: application/zip
1543-mal heruntergeladen
Größe: 3,03 MiB
1 - 10 (23)

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

Zitiert von: GuidoHeines
Puuuuh das wird anstrengend

nehm ich nix persönlich :-D
Da der 'Layer' ja als eine Eigenschaft an das Element gebunden ist gehts halt ned anderst. (Zumindest fällt mir erstmal nichts anderes ein)
Der Hinweis auf den Assistenten ist natürlich schon mal hilfreich.

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.

Anhänge (1)

Typ: application/zip
1279-mal heruntergeladen
Größe: 17,19 KiB

Zitiert von: MartinSy
Gibts in Allplan sowas wie eine Makrosprache die nacheinander 32768 Elemente erzeugen kann und dabei automatisch die Layernummern hochzählt?
PythonParts ... Naja also für 32768 solids auf einmal brauchst du gute hardware. Ich hab mal 500 verwendet.

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

Anhänge (2)

Typ: application/zip
1170-mal heruntergeladen
Größe: 36,86 KiB
Typ: application/zip
1235-mal heruntergeladen
Größe: 244,49 KiB

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

Anhänge (2)

Typ: application/zip
1199-mal heruntergeladen
Größe: 1,29 KiB
Typ: application/zip
1219-mal heruntergeladen
Größe: 1,62 MiB

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]

Zitiert von: zum_loeschen
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......

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

1 - 10 (23)