Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  EPLAN Electric P8
  Labeling Action API

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN
  
Einladung zum Schaltschrank-Festival: Noch mehr Power im Schaltschrankbau, eine Pressemitteilung
Autor Thema:  Labeling Action API (1282 / mal gelesen)
deadmazzay
Mitglied


Sehen Sie sich das Profil von deadmazzay an!   Senden Sie eine Private Message an deadmazzay  Schreiben Sie einen Gästebucheintrag für deadmazzay

Beiträge: 2
Registriert: 27.10.2021

erstellt am: 27. Okt. 2021 15:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Könnten Sie mir bitte helfen.
Sorry, dass ich dich nicht auf deutsch anspreche.

I have a problem with the labeling action, when using the own action,
sorting order is ignored, but filtering works fine.
This action works fine for Reports, but doesn`t work completely for Labeling.

although the manual says:
https://www.eplan.help/en-US/infoportal/content/api/2.8/API_LABELING_MODIFICATION.html
"
If an action by this name is registered in EPLAN, it is called during label generation.
With the action, you can influence the objects, which are reported and the ORDER in which they appear.
"
example of action:

class SortAction : IEplAction
    {

        public bool Execute(ActionCallingContext oActionCallingContext)
        {
            string mode = "";
            string objects = "";

            oActionCallingContext.GetParameter("mode", ref mode);
            oActionCallingContext.GetParameter("objects", ref objects);

            if (mode == "ModifyObjectList")
            {
                List<string> objectsList = objects.Split(';').ToList();
                var rnd = new Random();
                objectsList = objectsList.OrderBy(item => rnd.Next()).ToList();
                oActionCallingContext.AddParameter("objects", String.Join(";", objectsList));
            }
            return true;
        }

        public void GetActionProperties(ref ActionProperties actionProperties)
        {
            throw new NotImplementedException();
        }

        public bool OnRegister(ref string Name, ref int Ordinal)
        {
            Name = "rnd";
            Ordinal = 20;
            return true;
        }
    }

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

F.S.
Moderator



Sehen Sie sich das Profil von F.S. an!   Senden Sie eine Private Message an F.S.  Schreiben Sie einen Gästebucheintrag für F.S.

Beiträge: 1924
Registriert: 23.04.2003

EPLAN Electric P8
2025 Prof.

erstellt am: 29. Okt. 2021 11:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für deadmazzay 10 Unities + Antwort hilfreich

Hello,
unfortunately i don't have an API license available, so i could only test this in scripting. Your program code seems to work, but EPLAN behaves strangely when you change the program code, this change is not always executed in the label export. As if there would be some kind of cache there? After a restart of EPLAN the program code change always works.

It would be best to contact the API support of EPLAN.

------------------
grüße
FrankS

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Fachplaner für Elektrotechnik (m/w/d)

Wir sind eine international tätige Unternehmensgruppe der Automatisierungstechnik und beschäftigen über 1.000 Mitarbeiter und Mitarbeiterinnen an diversen Standorten. Entwickelt werden speziell auf den jeweiligen Kundenwunsch zugeschnittene Lösungskonzepte für Unternehmen aus den verschiedensten Branchen - vom Mittelstand bis zur Großindustrie.

Zur Verstärkung unseres Teams suchen wir am ...

Anzeige ansehenFeste Anstellung
deadmazzay
Mitglied


Sehen Sie sich das Profil von deadmazzay an!   Senden Sie eine Private Message an deadmazzay  Schreiben Sie einen Gästebucheintrag für deadmazzay

Beiträge: 2
Registriert: 27.10.2021

erstellt am: 30. Okt. 2021 15:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Thanks for the answer.
I changed the code, so now that it can be run via scripts in EPLAN 2.9

public class ReSortAction
{
    [DeclareAction("rnd")]
    public bool Execute(ActionCallingContext oActionCallingContext)
    {
        string mode = "";
        string objects = "";
        oActionCallingContext.GetParameter("mode", ref mode);
        oActionCallingContext.GetParameter("objects", ref objects);

        if (mode == "ModifyObjectList")
        {
            System.Collections.Generic.List<string> objectsList = objects.Split(';').ToList();
            var rnd = new Random();
            objectsList = objectsList.OrderBy(item => rnd.Next()).ToList();
    oActionCallingContext.AddParameter("objects", String.Join(";", objectsList));
        }
return true;
    }
}

Having looked in more detail.
I found out that when i start 'export / labeling' the report type "Summarized parts list" - the script works properly.
The problem occur when labeling the "Connection list" report type is started.

Connection list ignore sorting action.

Can you try reproduce it?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz