BlogMapsGISKontakt

Eigene Geoprocessing-Tools mit ArcObjects Teil 2: IGPFunctionFactory

Die Implementierung von IGPFunctionFactory ist recht einfach zu bewerkstelligen. Es geht im Prinzip nur darum, dass man alle die GP-Tools auflistet, die zu der logischen Tools-Gruppe gehören.

Die String-Eigenschaften Name und Alias stehen für die Namen, die man der logischen Gruppe von GP-Tools geben will und können natürlich frei gewählt werden. Die CLSID-Eigenschaft nimmt die CLSID der Tools-Gruppe auf, z.B. so:
public ESRI.ArcGIS.esriSystem.UID CLSID {
    get {
     UID theUID = new UIDClass();
     theUID.Value = "ToolGruppenName";
     return theUID;
    }
}
Die GetFunction-Methode nimmt den Namen eines GP-Tools entgegen und gibt das dazugehörige GPFunction-Objekt zurück:
public IGPFunction GetFunction(string Name)
{
    IGPFunction gpFunction = null;
    switch(Name)
    {
    case "GP-Tool1":
        gpFunction = new Tool1GPFunction();
        break;
    case "GP-Tool2":
        gpFunction = new Tool2GPFunction();
        break;
    }
    return gpFunction;
}
Die Methode GetFunctionName nimmt den Namen (String) eines GP-Tools entgegen und gibt das dazugehörige Name-Objekt zurück:
public ESRI.ArcGIS.Geodatabase.IGPName GetFunctionName(string Name)
{
	IGPFunction gpFunction = this.GetFunction(Name);
	return gpFunction.FullName as IGPName;
}

Die Methode GetFunctionNames liefert eine Aufzählung mit allen Funktionsnamen der logischen Tools-Gruppe zurück:

public ESRI.ArcGIS.Geodatabase.IEnumGPName GetFunctionNames()
{
	IArray functionNamesArray = new EnumGPNameClass();
	functionNamesArray.Add(this.GetFunctionName("GP-Tool1"));
	functionNamesArray.Add(this.GetFunctionName("GP-Tool2"));
	return (EnumGPNameClass) functionNamesArray;
}

Die Methode GetFunctionEnvironments liefert eine Aufzählung aller GP-Environments zurück, die von dieser Gruppe kontrolliert werden. Diese Methode habe ich jedoch nicht weiter implementiert, so dass sie einfach null zurückgibt. Bisher habe ich damit keine negativen Erfahrungen gemacht. Sie ist in der ESRI-Dokumentation auch als optional angegeben.


Übersicht:
Teil 1 (Einführung)
Teil 2 (Implementierung von IGPFunctionFactory)
Teil 3 (Implementierung von IGPFunction)
Teil 4 (Implementierung von IGPFunction:ParameterInfo)
Teil 5 (Implementierung von IGPFunction:Validate)
Teil 6 (Implementierung von IGPFunction:Execute)
Teil 7 (Fazit)
Ähnliche Beiträge:
Eigene Geoprocessing-Tools mit ArcObjects Teil 7: Fazit
Eigene Geoprocessing-Tools mit ArcObjects Teil 6: IGPFunction.Execute
Eigene Geoprocessing-Tools mit ArcObjects Teil 5: IGPFunction.Validate
Eigene Geoprocessing-Tools mit ArcObjects Teil 4: IGPFunction.ParameterInfo
Eigene Geoprocessing-Tools mit ArcObjects Teil 3: IGPFunction
Comments (0)  Permalink

comments

add a comment

The Trackback URL to this comment is:
http://schaer.freeflux.net/blog/plugin=trackback(665).xml

This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!

Name*
E-Mail
For Spammers Only
URL
Kommentar*
E-Mail Benachrichtigung bei neuen Kommentaren zu diesem Eintrag
Speichere meine Daten (braucht Cookies)