Hallo!
Ich würde gerne folgendes machen:
Der Benutzer soll in der Lage sein, ein Symbol aus einem Ordner mithilfe des Symbol Dialogs auszuwählen. Danach wird geprüft, ob dieses Symbol bereits im Projekt platziert wurde. Wenn ja, soll man eine Liste von den Instanzen bekommen.
Damit der Benutzer ein Symbol auswählen kann, wird diese Funktion verwendet:
<Parameter> <Name>NewCCMapping</Name> <Text>Bauteil hinzufügen</Text> <Value>Bauteil auswählen</Value> <ValueType>String</ValueType> <ValueDialog>SymbolDialog</ValueDialog> </Parameter>
Nun habe ich den Pfad und lade das Element folgendermaßen:
library_element_properties = \ AllplanBasisElements.LibraryElementProperties(fullPathName= path, elementType= AllplanBasisElements.LibraryElementType.eSmartSymbol, placementMatrix= AllplanGeo.Matrix3D()) library_element = AllplanBasisElements.LibraryElement(library_element_properties)
Um zu überprüfen, ob sich das Element bereits im Projekt befindet, habe ich versucht, diese Funktion aufzurufen:
element_adapters = AllplanBaseElements.ElementsSelectService.SelectAllElements(doc)
Leider schaffe ich es aber nicht, eine Verknüpfung herzustellen... Ich habe versucht, den Pfad aus einem Element Adapter zu kriegen bzw. die Bauteil ID aus dem Library Element, jedoch bin ich da nicht draufgekommen, wie das gehen könnte...
Bin dankbar für jede Hilfe