スクリプトを使用して、GIS ファイルまたは以前にロードした GIS レイヤーからのネットワーク データの読み込みをより厳密に制御することは、高度な機能です。
スクリプトは、スクリプト言語を使用したプログラミングの経験がある熟練ユーザーのみが使用してください。
読み込みのスクリプトは、VBScript で記述できます。VBScript でできることの詳細については、インターネットで「VBScript チュートリアル」または「VBScript リファレンス」を検索してご確認ください。VBScript は Visual Basic、Visual Basic.NET、VBScript.NET、または Visual Basic For Applications と同じものではないことを覚えておいてください。
VBScript で利用可能な通常機能をすべて使用することで、読み込む前にデータを操作することができます。
注: VBScript コンポーネントは、InfoWorks WS Pro インストールの一部としてインストールされなくなりました。Windows 10 および 11 とともにインストールされます。将来的に Microsoft はこれをオプションのコンポーネントにする可能性がありますが、Windows のオプション機能を使用してオンにすることができます。
スクリプトの概要
スクリプトには、次のような形式のパブリック サブルーチンがいくつか含まれます。
OnBegin<tablename>
OnEnd<tablename>
OnBeginRecord<tablename>
OnEndRecord<tablename>
それぞれのサブルーチンは次のように呼び出されます。
-
OnBegin<テーブル名>: テーブルを読み込む前
-
OnEnd<テーブル名>: テーブルを読み込んだ後
-
OnBeginRecord<テーブル名>: 各レコードが処理される前。具体的にはデータが読み込まれた後ですが、処理が完了する前に呼び出されます。この場合の処理とは、オープン データ インポート センターで設定されたフィールド マッピングに基づいて、InfoWorks WS Pro のフィールドに読み込みデータを正常に割り当てることです。
-
OnEndRecord<テーブル名>: InfoWorks WS Pro のフィールドに読み込みデータを正常に割り当てた後、ただしデータがデータベースに書き込まれる前
スクリプトは、Active Scripting Host を使用して実行されます。InfoWorks WS Pro は、上記のパブリック サブルーチンを探すためにサブルーチンのリストを調べます。これらのパブリック サブルーチンの他に、次のような操作を実行できます。
- コードで使用するグローバル変数を定義する
- 上記のパブリック サブルーチンによって呼び出されるその他のサブルーチンを定義する。追加のサブルーチンは Private として宣言する必要があります。
テーブル名
テーブル名は、オープン データ インポート センターの[データをインポートするテーブル]リストに表示される名前ですが、名前に含まれるスペースは削除されています。例:
- ノード
- 電線管
- FixedHead (固定水頭)
- TransferNode (中継ノード)
- 貯水槽
TransferNode テーブルの各レコードを読み込んだ後に呼び出されるメソッドは OnEndRecordTransferNode となります。
パブリック サブルーチンを使用する
-
OnBegin<テーブル名>: OnBegin の主な目的は、後でレコードで使用されるスクリプト グローバル変数の値を初期化することです。場合によっては、特定の基準に基づいて読み込みの中止を決定することもできます。
-
OnEnd<テーブル名>
-
OnBeginRecord<テーブル名> と OnEndRecord<テーブル名>: OnBeginRecord と OnEndRecord のどちらで処理してもほとんど違いはありませんが、次の点が異なります。
- レコードを破棄することがわかっている場合は、OnBeginRecord で破棄することもできます。これにより、読み込みのプロセスが高速化されます。
- 通常のフィールド マッピングでも設定されるスクリプトを使用してフィールドを設定する場合は、OnEndRecord で設定する必要があります。それ以外の場合、フィールドは通常の割り当てによって上書きされます。
InfoWorks WS Pro のプロパティとメソッド
InfoWorks WS Pro によって定義されるメソッドとプロパティには、スクリプトで呼び出しができるものがいくつかあります。
スクリプトを記述するときは、以下に説明するプロパティやメソッドの前に Importer. を配置する必要があります(例: Importer.MsgBox("Hello"))。
プロパティ
-
boolean Abandoned と boolean TableAbandoned: Abandoned と TableAbandoned は基本的に同じ意味を持ちます。これらを True に設定すると、テーブルの以降の処理は停止します。OnBegin でこのいずれかを設定した場合、テーブルは処理されません。OnBeginRecord でいずれかを設定した場合、レコードは処理されず、テーブル内のそれ以降のレコードも処理されません。OnEndRecord でいずれかを設定した場合、レコードは処理されますが、テーブル内のそれ以降のレコードは処理されません。これらは、各読み込みテーブルを処理する前に False に設定されます。
-
boolean WriteRecord: false に設定した場合、このレコードはデータベースに書き込まれませんが、テーブルの全体的な読み込みは続行されます。WriteRecord は、OnBeginRecord と OnEndRecord でのみ役に立ちます。OnBeginRecord で false に設定した場合、そのレコードに対するそれ以上の処理は行われず、OnEndRecord は呼び出されません。OnEndRecord で false に設定した場合、レコードはデータベースに書き込まれません。これは、各レコードの先頭で True に設定されます。
-
boolean DeleteRecord: オブジェクトの削除に使用します。true に設定した場合、オブジェクトは InfoWorks WS Pro に存在しない可能性があるため、これは削除の要求と解釈されます。資産 ID に基づいて更新する場合は、外部データ ソースのオブジェクトの資産 ID と InfoWorks WS Pro テーブルが比較されます。それ以外の場合は、オブジェクト ID が使用されます。DeleteRecord プロパティの値で WriteRecord プロパティの値が上書きされます。
メソッド
-
void MsgBox(BSTR text): MsgBox がメッセージ ボックスに文字列を表示します。レコードが多数ある場合は、使用しないでください。処理の完了前にスクリプトを停止することはできません。
-
void OutputMessage(BSTR text, VARIANT messageType): OutputMessage が、エラーや警告も表示される出力ウィンドウにメッセージを記録します。
- text (必須): 出力ウィンドウに記録するテキスト
- messageType (オプション): 有効なパラメータは次のとおりです。
- E: エラー メッセージ。テキストの先頭に「Error:」を付与し、処理エラーの数を増分します。
- W: 警告メッセージ。文字列の先頭に「Warning:」を付与し、警告エラーの数を増分します。
- I: 情報メッセージ。テキストの先頭に「Info:」を付与します。
-
VARIANT Field(BSTR fieldName): 外部ソースのデータベース、GIS レイヤー、または CSV ファイルからフィールド値を取得します。fieldName 変数は外部ソースのフィールド名です。単位の変換は行われません。
割り当て方法
-
Field(BSTR fieldName) = VARIANT newValue: InfoWorks WS Pro 内に値を設定します。この場合、fieldName が InfoWorks WS Pro のフィールド名です。値は常に InfoWorks WS Pro のネイティブ単位として扱われます。