スクリプトを実行するためのスクリプトツール


もはや何がなんだか、冗談の類。
パラメータを更新してないことに気づく。。。。

scriptstool

# -*- coding: cp932 -*-

import arcpy
from arcpy import env

# Python ツールボックスのツール動作のカスタマイズ
# http://resources.arcgis.com/ja/help/main/10.1/index.html#//00150000002m000000
class Toolbox(object):
    def __init__(self):
        """Define the toolbox (the name of the toolbox is the name of the
        .pyt file)."""
        self.label = "MyToolbox"
        self.alias = ""

        # ツールのリスト設定 ( クラス設定 )
        self.tools = [exectool]

# フィーチャクラスリスト化
class exectool(object):
    def __init__(self):
        self.label = "Python実行ツール"
        self.description = "Python実行ツール"
        self.canRunInBackground = False

    def getParameterInfo(self):
        # Python ツールボックスでのパラメータの定義
        # http://resources.arcgis.com/ja/help/main/10.1/index.html#//001500000028000000
        # getParameterの型一覧
        # http://resources.arcgis.com/ja/help/main/10.1/index.html#//001500000035000000
        # パラメータリファレンス
        # http://resources.arcgis.com/ja/help/main/10.1/index.html#//018z00000063000000

        #datatype="GPCalculatorExpression",
        # ワークスペース
        param0 = arcpy.Parameter(
        displayName="スクリプト",
        name="in_scripts",
        datatype="GPSQLExpression",
        parameterType="Required",
        direction="Input")

        return [param0]

    def isLicensed(self):
        """Set whether tool is licensed to execute."""
        return True

    def updateParameters(self, parameters):
        """Modify the values and properties of parameters before internal
        validation is performed.  This method is called whenever a parameter
        has been changed."""
        
        return

    def updateMessages(self, parameters):
        """Modify the messages created by internal validation for each tool
        parameter.  This method is called after internal validation."""
        return

    def execute(self, parameters, messages):
        # Python ツールボックスでのメッセージの書き込み
        # http://resources.arcgis.com/ja/help/main/10.1/index.html#//001500000036000000

        #ws = parameters[0].valueAsText
        scstring = parameters[0].valueAsText
        #parameters[1] = arcpy.ListFeatureClasses()
        exec( scstring )

        return
カテゴリー: 開発 タグ: パーマリンク