Ich habe in einem Script verschiedene Eventhandler die was im Projektordner (DOC) machen…
Klappt auch alles wunderbar… bis auf das Event vom Projekt öffnen. Ist mehr als ein Projekt geöffnet stimmt die Pfadvariable nicht:
var docFolder = PathMap.SubstitutePath("$(DOC)");
Durch den (immer tollen) EPLAN API Support habe ich folgende Lösung:
[DeclareEventHandler("Eplan.EplApi.OnPostOpenProject")] // project open public void EventProjectOpen(IEventParameter iEventParameter) { EventParameterString eventParameterString = new EventParameterString(iEventParameter); string projectFile = eventParameterString.String; FileInfo fileInfo = new FileInfo(projectFile); string projectDirectory = projectFile.Replace(fileInfo.Extension, ".edb"); var docFolder = Path.Combine(projectDirectory, "DOC"); }
wenn man jetzt nicht nur den Pfad braucht, sondern eine Action in dem gerade geöffneten Projekt ausführen möchte, muss das Projekt ja irgendwie Markiert bzw. aktiv gesetzt werden.
Gibt es dafür eine Idee?
Hoffe ich habe die Frage richtig verstanden. Mit ProjectAction kann man das Projekt angeben auf welches man Actions ausführt.
Einige Aktions haben ja einen PROJECTNAMEN (z.B. die Aktion label) um das Projekt anzugeben.
Wenn ich hier “projectFile” ohne Dateiendung (.elk) anlege scheint das zu funktionieren.
Aber für eine Aktion wie z.B. XEsSetProjectPropertyAction wo man das Project nicht angeben kann. Wenn ich das jetzt in die Aktion “ProjectAction” packe funktioniert das nicht. Es scheint dass die Action “ProjectAction” für geschlossene Projekte ist. Da ich die Meldung bekomme “Projekt ist bereits geöffnet” bzw. Das Projekt xyz konnte nicht geöffnet werden.
Könnte mir vorstellen dass der Parameter Project da ist, aber nicht dokumentiert…