パイソンエンジン
また、Requirements & Systems Portal内でpythonスクリプトを実行し、octaveエンジンに似たpythonコーディングによって計算を実行することもできます。さらに、レスト API にアクセスして、オブジェクトを個別に、または一括して修正することもできます。内蔵のpythonエンジンは、現在pythonの "Valispace "パッケージ、pint、Scipy(NumPyなどを含む)をサポートしています。現在、すべてのpythonパッケージが利用できるわけではない。
スクリプトモジュールにおけるPythonスクリプトの流れ
Pythonエンジンを含むスクリプトモジュールにおける典型的なワークフローを下図に示す。レストAPIを通して計算や一括変更を行いたくない場合、ユーザーは直接pythonコードを書いてスクリプトを実行することができます。

pythonエンジン内のパッケージ
我々は、Requirements & Systems Portal 内にベータ機能として python エンジンを実装したため、python エンジンはすべてのパッケージをサポートしていません。現在、サポートされているパッケージはごくわずかです。現在サポートされているパッケージはここにリストアップされています。
python スクリプトの例
pythonエンジンでは、ユーザは入力と出力を追加し、結果を計算するpythonコードを書くことができます。これは,Requirements & Systems Portal のOctave Engine での動作と似ています.以下の例では、ブロックにサブブロックを追加するpythonスクリプトの書き方を示します。
from typing import Any, Dict
インポート valispace
def main(**kwargs) -> Dict[str, Any]:
"""
これはスクリプトを実行するメイン関数であり、必ず存在しなければならない。
他の関数やファイルを作成することもできます。自由に使用できます。
Valispace API、scipy、numpy、pintをインポートすることができます。
param kwargs:Valispaceから受け取ったデータを格納した辞書。
:type kwargs:ディクショナリ[str, Any]
:return:Valispaceに送り返すデータを含む辞書。
:rtype:ディクショナリ[str, Any]
"""
# TODO: ここにコードを書く
valispace = valispace.API(url="https://.valispace.com/", username = "", password = "") #デプロイメント名、ユーザー名、パスワードを追加する
# 親コンポーネントのID; 親コンポーネントが最上位の場合、parentはnullですが、projectを指定する必要があります。
parent_component = 57111
# 新しいコンポーネントプロパティを持つオブジェクト
component = {
"name":"NewCompentName2"、
"parent": parent_component
}
# フルネームでヴァリを取得する関数
componentPosted = valispace.post("components/", component)
スクリプト・モジュールでできることのアイデアをいくつか紹介します:
-
valiを作成し、複数の既存コンポーネントに追加する。
-
要件の識別子を一括編集する
-
pythonを使用したシミュレーションの実行
-
すべての電力値の単位をkWに変換する
-
コンポーネントの階層をエクスポートするスクリプトの作成と実行
-
要件からReqIFフォーマットとしてエクスポートを作成する
-
コンポーネントの材料、コンポーネント番号、質量、コストを抽出し、部品表を作成します。