Support Forum

Zugriff auf Segmentnummer


Ich möchte objekte einerseits verbinden um sie gmeinsam zu selektieren, aber andererseits auch einzeln bearbeitbar belassen. Aktuell in der Allplan Oberfläche machen wir das manuel mittels vergeben der gleichen Segmentnummer. Bei klick + shift werden dann alle objekte mit gleicher Segmentnummer gemeinsam selektiert und man kann sie gemeinsam verschieben oder kopieren. Ein Zugriff auf die Einzelobjekte is weiterhin problemlos möglich.

Ist der Zugriff auf die Segmentnummer per Python möglich? In den CommonProperties konnte ich nichts finden.

Oder gibt es eine clevere Möglichkeit einen Verbund aus Körper zu erstelle, ohne sie zu fusionieren. Eine Fusion in Allplan zwecks Bearbeitung aufzulössen ist eher aufwendig.

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

11 - 18 (18)

Hallo Bernd,

"Nested Groups", also verschachtelte Gruppen sind in Allplan nicht möglich.
Das gilt sowohl für die Elementgruppe, als auch für die Macrogruppe.

Vielleicht solltest Du Dir mal die Macro-Hierarchie anschauen. Da kann man baumartig
Elemente gruppieren. Leider sind dann aber alle Macros einzeln selektierbar (also auch löschbar!)

Man könnte sich so eine "Gruppierung" auch "zu Fuss" herstellen, indem man die UUID der Objekte merkt,
und diese dann beim Update wieder einliest. Ich fürchte aber, dazu fehlen im Allplan-Python einige Funktionen, wie DB-Query, UUID ...

PS: Das geht mit C++ der NOI ohne Probleme.

Gruß Jörg

Ulrike und Jörg, Danke für die Infos.

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

Wenn es nur zwei Instanzen sein müssen, könnte man mehrere Elementgruppen zu einem Makro verbinden. Nach Makro auflösen sind es dann wieder Elementgruppen.

gruß, Achim

Zitiert von: DerAchim
Wenn es nur zwei Instanzen sein müssen, könnte man mehrere Elementgruppen zu einem Makro verbinden. Nach Makro auflösen sind es dann wieder Elementgruppen.
Mhh, das würde für meinen Fall sogar funktionieren, da ich aktuell genau 2 Ebenen unabhängig voneinander gruppieren will.

Schon bin ich wieder bei Python. Kann ich mit Python ein Macro von Elementgruppen erstellen. Hab auch erst die Beispiele durchgesehen, aber keins mit Macro gefunden.

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

Ich kann problemlos eine Elementgrupp erstellen.

my_element_group = AllplanElements.ElementGroupElement(com_prop, prop, model_ele_list)

Nun nun würde ich gern die gesamte ElementGruppe verschieben, was nicht geht. Also dachte ich hole ich mir die einzelnen Referenzen auf die Objekte der Elementgruppe und verschiebe diese.

print(type(my_element_group)) # gibt mir ElementGroupElement

aber
mylist = AllplanElements.GetElementGroupObjectList(my_element_group)
AttributeError: 'module' object has no attribute 'GetElementGroupObjectList'

aber laut API documentation gibt es diese ... ?!

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

...wie wäre es mit:

objects = my_element_group.GetObjectList()

Gruß Jörg

Zitiert von: Nemo
objects = my_element_group.GetObjectList()
geht nur in 2017 http://pythonparts.allplan.com/2017-0/documentation.html In 2016 wäre es meines wissens objects = my_element_group.GetElementGroupObjectList() aber ich bekomme ein
objects = my_element_group.GetElementGroupObjectList()
AttributeError: 'list' object has no attribute 'GetElementGroupObjectList'

logisch, my_element_group ist eine liste von ElementGroupElement. Steht doch auch da 'list' Ich muss rein in die Liste dann funktioniert es. Ach programmieren nach 10 Stunden Statik ist einfach nicht wirklich produktiv ...

danke jörg

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

In 2017 musste ich:

Zitiert von: Nemo

import NemAll_Python_Elements as AllplanElements
...
prop.MacroSubType = AllplanElements.MacroSubType.eNOI_UseNoSpecialSubType

durch

import NemAll_Python_BasisElements as AllplanBasisElements
...
prop.SubType = AllplanBasisElements.SubType.eUseNoSpecialSubType

ersetzen ...

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

11 - 18 (18)