Zitiert von: hrsommer
ich würde gerne mittel Python-API Elemente analog dem Befehl «Kopieren und Einfügen» kopieren.
Jedoch möchte ich die Elemente gleichzeitig an mehrere Einfügepunkte kopieren.
Eine Selektion in Allplan liefert eine Liste mit Objekten vom Typ «BaseElementAdapter», welche aber nur Zugriff auf die «Geometry» sowie «CommonProperties» bieten. Auf die Farbe einer Füllfläche oder Nummer einer Schraffur/Muster/Stilfläche hat man jedoch keinen Zugriff. Somit ist es auch nicht möglich von diesen Elementen eine «genaue Kopie» zu erstellen.
Gibt es die Möglichkeit den «BaseElementAdapter» selbst, also das Element mit allen Eigenschaften, zu kopieren und in Allplan einzufügen?
Gruss und Dank
Hansruedi
Ich glaube, dass Die Funktion, nach der Sie suchen heißt
NemAll_Python_BaseElements.GetElements(element_list: BaseElementAdapterList) -> list[NemAll_Python_BasisElements.AllplanElement]
Wenn Sie 3D-Körper kopieren möchten, bekommen Sie als Ergebnis das ModelElement3D. Von dem können Sie dann die Geometrie entnehmen (AllplanElement.GetGeometryObject), die Translation vornehmen und wieder an das AllplanElement zurückgeben (AllplanElement.SetGeometryObject). Wenn Sie kopieren möchten, erstellen sie davor eine neue Instanz des Objekts ModelElement3D über den copy constructor und weisen sie die Geometrie an diese zu. So müssten alle Eigenschaften des Objekts, außer Geometrie, kopiert werden und somit erhalten bleiben.