[Frage] Einem PythonPart einen Bürolayer zuweisen


Mit folgendem code lässt sich ein minimales PythonPart mit einem bestimmten Layer erstellen. Aber wie kann ich dem Part einen unserer Bürolayer zuweisen? Irgendwie fehlt mir etwas. Die PythonPartLayer sind Integer, aber die Bürolayer haben einen Kurznamen und einen Langnamen?

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):
    layer_number = build_ele.Number.value
    common_props = Ele.CommonProperties()
    common_props.Layer = layer_number
    line = Geo.Line2D(0, 0, 2, 5)
    return ([Ele.ModelElement2D(common_props, line)], [])

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 (11)

die Layer sind in Wirklichkeit Integer, leider, siehe Bild.

Anhänge (1)

Typ: image/png
247-mal heruntergeladen
Größe: 9,77 KiB

...in your pyp.file the Parameter "layer_number" should habe the ValueType Layer, then you get a nice combobox with all layers ( incl. your office-layers) for selection

...in your pyp.file the Parameter "layer_number" should habe the ValueType Layer, then you get a nice combobox with all layers ( incl. your office-layers) for selection

Cool danke für die Infos. Sehr praktisch diese ComboBox.

Eigentlich dachte ich das ist noch ein Fehler drin. Siehe Post https://connect.allplan.com/ch_de/forum/themen/topic/topics//dwg_export_mit_allen_layern.html Aber es ist einfach so, dass die ersten 7000 Layer im Büro nicht vergeben sind, und daher als ??_Nummer angezeigt werden. Wenn ich eine im Büro vergebene Nummer zuweise hat das Bauteil dann auch den gwünschten Layer und der wird als Text angezeigt.

Gruss Bernd

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

Wäre das möglich mit dem Pytonpart die gesamte Layerstruktur nacheinander mit einer Linie und der entsprechenden Layerbeschriftung auszulesen und grafisch auf dem Teilbild abzulegen?
Das würde beim Verwalten des Bürostandards enorm helfen...

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Leider kann man mit den PythonParts nicht auf bestehende objekte zugreifen. Da ich von anderen CAD weiss wie cool das ist, kann ich nur hoffen, dass das iregendwann mal kommt.

Brauchst du unbedingt den Layernamen? Die Nummern wären kein Problem? Ich stelle die Frage daher mal exakter ...

Gibt es eine Pythonmethode, die zu einer Layernummer den zugehörigen Layernamen zurückgibt (falls einer existiert.)?

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

Es gibt ja zumindest das Allplanattribut @141@ kann das per python nicht verwendet werden?
ps. ich habe null Ahnung von Python...

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Zitiert von: Allplan_er
Es gibt ja zumindest das Allplanattribut @141@ kann das per python nicht verwendet werden?

Wie schon mal geschrieben, aktuell kann mittels PythonParts nicht auf bestehende objekte zugegriffen werden.

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,

auch wenn es nicht zum Thema passt:
Mit einem SmartPart geht das schon (s. Anhang)

In den PythonParts gibt es (noch) keine Funktion, mit der man Informationen über Ressourcen
(Layer, Schraffuren etc. ) abfragen kann!

Gruß Jörg

Anhänge (2)

Typ: image/png
232-mal heruntergeladen
Größe: 36,93 KiB
Typ: application/xml
1560-mal heruntergeladen
Größe: 10,08 KiB
1 - 10 (11)