Python Toolboxヘルプのパラメーターの説明を定義しますか?


14

ArcMapアプリケーションのPythonツールボックス(MyTool.pytなど)を作成しようとしています。

ヘルプテキストは、クラスself.description属性で定義されていることがわかります。

ただし、プログラムを実行し、パラメーターフィールドのいずれかをクリックすると、ヘルプ/説明テキストが空になります。各パラメーターの説明フィールドを提供できるようにしたいと思います。これはどのように達成されますか?

いくつかの回答の後、「アイテムの説明」の右クリックコンテキストメニューから、入力できるフィールドが多数あることがわかりました。これを行うための「Pythonの」方法はありますか?つまり、いくつかの属性を.pytファイルクラスに埋め込むだけですか?

たとえば、.pytツールボックス定義には、Toolboxクラスがあります。

import arcpy

class Toolbox(object):
    def __init__(self):
        """Define the toolbox (the name of the toolbox is the name of the
        .pyt file)."""
        self.label = "My Toolbox"
        self.alias = ""

        # List of tool classes associated with this toolbox
        self.tools = [MyNiceTool]


class MyNiceTool(object):
    def __init__(self):
        """Define the tool (tool name is the name of the class)."""
        self.label = "My Tool Class"
        self.description = """
A description that shows up in the help context side pane when the tool is launched.
        """
        self.canRunInBackground = True

    def rest_of_required_methods....

self.description文字列から、ツールダイアログヘルプウィンドウにこのテキストが表示されます。ただし、私がしたいことは、各パラメーターのコードにも「説明」が埋め込まれているため、ツールが起動され、ユーザーがパラメーターフィールドをクリックすると、パラメーターの説明が表示されます。以下の返信で参照されている「アイテムの説明」メソッドを使用してこれを行う場合、各パラメーターの「構文」セクションの下の「ダイアログの説明」フィールドを編集します。

回答:


16

ヘルプテキストは、クラスself.description属性で定義されていることがわかります。

これはあなたが間違っているところです。ヘルプページで、Pythonツールボックスツールを文書化すると、次のように表示されます。

Pythonツールボックスの場合、ツールボックスとツールのドキュメントは、ツールボックスとツールに名前で関連付けられている.xmlファイルに保存されます。各ツールのヘルプは、個別の.xmlファイルに保存されます。

これは、.pytファイル自体からヘルプテキストを設定できないことを意味します。これは、ヘルプテキストがプレーンASCIIではなく、書式設定、箇条書き、画像を含むことができるリッチテキストであると考える場合に意味があります。

幸いなことに、Python はXMLの読み取りと書き込みをサポートしているため、別のスクリプトからヘルプテキストを動的に編集できるはずです。


2
「ドキュメント」のヘルプページへのリンクをお寄せいただきありがとうございます。ESRIがrestructuredTextをサポートしていると便利です。次に、Sphinxを使用してできるように、コードからツールボックスを直接ドキュメント化できます。
ジョン

「別のスクリプトからヘルプテキストを動的に編集できる必要があります。」->それは非常に望ましいことです。誰かがこのためのツールを開発しましたか?
ラタニル

13

次の手順に従って、各パラメーターのメッセージを定義できます。

  1. ArcCatalogを開き、カタログツリーでスクリプトを強調表示します
  2. [説明]タブを選択します
  3. [編集]ボタンをクリックします
  4. 各パラメーターの横の下矢印をクリックして、メッセージを入力します
  5. 最後に、[保存]ボタンをクリックして編集内容を保存します

ユーザーがスクリプトパラメータ内をクリックすると、メッセージが表示されます。


4
ありがとう..この情報が最終的に保存される場所を知っていますか?.pytファイルを配置したフォルダーに作成されているように見えるxmlファイルに書き込まれますか?
ジョン

11

私が正しく理解しているなら、あなたはあなたの機能にヘルプテキストを追加したいです。これは、ツールボックスウィンドウから右クリックし、ツールによって行われ、クリックすることができます商品説明当時と編集を先頭に。各パラメーターの説明を追加できます。パラメーターをクリックすると、ヘルプセクションに表示されます。

Arcmap 10.0(少なくとも以前のSP)を使用している場合、Arcmapが機能するには、Arcmap内のArcCatalogウィンドウ(ツールボックスを参照)からこれを行う必要があります。


おかげで、これは有用であり、確かに解決策のようです。実際、それは私にとって全く新しい一連の質問を開きます!10.1でPython Toolbox(.pyt)ファイルを介してツールボックスのみを操作したため、これらの「アイテムの説明」フィールドのすべてについて理解していませんでした。残念ながら、それは私が望んでいたものとはまったく異なります...それで、今から質問を編集します。
ジョン

2

ツールのメタデータの編集をクリックするだけで、各パラメーターについて、表示するメッセージを簡単に編集できることがわかります。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.