vor 3 Wochen
Ich versuche ein Script zu erstellen, welches DrawingItems (.pmk) mit einer neuen Datei verlinkt. Soweit ich das verstehe, zählen Zeichnungen zu den Navigatoritems, für welche ich keine Befehle finde, dessen Einstellungen angezeigt zu kriegen bzw. zu ändern.
Stehe ich auf dem Schlauch oder ist dies nicht möglich?
Besten Dank im Vorraus!
vor 2 Wochen
Hi, willkommen im Forum!
Was genau willst du erreichen? Du hast in deinem Projekt .pmks platziert (wo? Grundriss oder Layout?) und willst diese gegen andere austauschen?
Platzierte Zeichnungen sind keine NavigatorItems
.
Ich glaube, dass die JSON/Python API dir in deinem Fall nicht helfen kann. Vielleicht kann Tapir das, schau dir das mal an.
vor 2 Wochen
Guten Tag @runxel,
Besten Dank für deine Antwort und den Tipp mit Tapir – ich schaue mir das gerne an!
Die Situation ist die folgende:
Ich wurde zu einem Projekt hinzugezogen, bei dem einzelne Häuser in unterschiedlichen Dateien bearbeitet werden und in einer "Layoutdatei" mittels .pmk für den PDF/DWG-Export gesammelt werden. Aufgrund einer länderübergreifenden Zusammenarbeit war eine etwas komplexere Dateistruktur notwendig.
Jedoch funktioniert dieses Konstrukt nur bedingt, da die Aktualisierung der Zeichnungsobjekte auf den Layouts manchmal nicht verlässlich stattfindet. In diesen Fällen bleibt das Zeichnungsobjekt in seinem ursprünglichen Stand, ohne eine Fehlermeldung o. Ä. zu produzieren. Wird das Zeichnungsobjekt manuell neu verlinkt, gelingt die Aktualisierung.
Das Überprüfen der Aktualisierungen und das allfällige erneute Verlinken der .pmk-Datei generiert für das Projektteam einen überbordenden Mehraufwand, da im gesamten Projekt insgesamt ca. 7.000 .pmk-Verlinkungen existieren.
Im Austausch mit einem Experten von Graphisoft wurde die Vermutung geäußert, dass eine unsachgemäße Benennung der Layouts (und folglich der .pmk-Dateien) mittels Leerzeichen und Punktzeichen („.“) die Ursache der unzuverlässigen Aktualisierungen sein könnte.
Daraus ergibt sich nun meine Absicht:
1.) Ein Skript zu entwickeln, das den Prozess des Neuverknüpfens automatisiert.
2.) In einer kleinen Studie zu testen, ob das Problem mit den Leerzeichen und Punkten tatsächlich in einem kausalen Zusammenhang mit der fehlerhaften Aktualisierung steht.
→ Per Skript Leerschläge durch Unterstriche und Punkte durch Minuszeichen ersetzen sowie allgemein Whitespace aus den Layoutnamen entfernen.
→ Mittels Skript die nun anders benannten .pmk-Dateien wieder verlinken.
Ich hoffe, dass diese Erklärung nicht überbordend war.
Mit freundlichem Gruß
vor 2 Wochen - zuletzt bearbeitet vor 2 Wochen
@DrDesmond schrieb:
Ich hoffe, dass diese Erklärung nicht überbordend war.
Nein, überhaupt nicht! Schön erklärt, da weiß man dann, worums geht 🙂
Tja, das ist ein "hübsches" Problem, dass ihr da habt. 🧐 Ich fürchte allerdings, dass das aktuell nicht möglich ist... Aber setze dich mal mit den Devs von Tapir zusammen, die haben ein offenes Ohr für sowas, und können die benötigten Befehle bestimmt einbauen.
Was ich mir angeschaut habe: Man kann sich zwar anzeigen lassen, was auf den Layouts liegt:
layoutBookTree = acc.GetNavigatorItemTree(act.NavigatorTreeId("LayoutBook"))
NavigatorItem {'navigatorItemId': {'guid': 'A379FCF3-6BEB-0946-9B9D-A46E31F97B28'
}, 'prefix': 'ID', 'name': 'Layout01', 'type': 'LayoutItem', 'sourceNavigatorItemId': {'guid': 'CC685ED7-F846-8848-B449-94E03A77EAD1'
}, 'children': [
{'navigatorItem': {'navigatorItemId': {'guid': 'E14154FE-DCA0-A14C-A724-FCB3133D2F98'
}, 'prefix': '', 'name': '05_A_0_EG_Grundriss_UEbersicht_IDX_6', 'type': 'DrawingItem', 'sourceNavigatorItemId': {'guid': '0F55B8C5-7A9E-EC46-8470-F2FC7138B88B'
}}}]
Allerdings, wie man sieht: Es gibt nur den (Datei-)Namen. Bei euch ist es vielleicht noch einfach, weil du einfach annehmen kannst, dass sowieso alles extern verlinkte PMKs sind, aber für andere wirds schwerer. Vermutlich muss man dann durch alle Ausschnitte tingeln und schauen, ob dort der Name auftaucht. Das ist natürlich kein besonders gutes Ausschlusskriterium, weil es einen nicht davon abhält eine gleich benannte PMK oder PDF zu verlinken...
Fürs Neuverlinken sehe ich aber ohnehin keinen Befehl vorhanden.
vor 2 Wochen
Nach kurzer Beratung mit den Tapir Devs zeigt sich: Da die C++ API keine Methode dafür bereitstellt, wird man leider auf absehbare Zeit keine Automation in dem Bereich haben... 😞
vor 2 Wochen
Das ist natürlich schade, jedoch ist die Enttäuschung gelindert durch die Freude über dein proaktives Abklären!