XML形式のプロフォルマ
2021年2月15日
2021年2月16日
今回は開発者向けの内容です。
TRNSYS18からプロフォルマ(Proforma)にXML形式のフォーマットが加わりました。既存のProformaや新しく作成したProformaをXML形式で扱えます。
使い方
- 既存のコンポーネントダブルクリックして、Proformaのウィンドウを表示。
- この状態で、メニューから[File]-[Save As…]を選択して、保存先のフォルダを選択(この例では「C:\TRNSYS18\Studio\Proformas\MyComponents」を選択
- 拡張子に.xmltmfを指定して保存(この例では「MyType1a.xmltmf」)
これでXML形式で保存完了です。
XML形式のファイルはブラウザなどで中身を表示できます。下の図はFireFoxで開いてみた画面です。
Proformaの中身が構造化された形式で表示されています。
用途
で、これは何に使えるかというと。。。
XML形式のファイルはプログラムで簡単に扱うことができます。試しに簡単なスクリプトを用意して、Proformaを加工してみます。
集熱器の集熱面積を変えて新しいProformaをまとめて複数作成します。
# Example of saving Proformas.
# Create a Proforma with "Collector area" of 2,4,6,8 square meters.
# author Yuichi Yasuda @ quattro corporate design
# copyright 2021 quattro corporate design. All right reserved.
import xml.etree.ElementTree as ET
tree = ET.parse(r'C:\TRNSYS18\Studio\Proformas\MyComponents\MyType1a.xmltmf')
root = tree.getroot()
nodes = root.findall("./variables/variable")
for node in nodes:
if node.find('name').text == 'Collector area':
#集熱面積のnodeを探して新しい集熱面積を設定する
def_value = node.find('default')
# 集熱面積2,4,6,8㎡のプロフォルマを作成する
for area in range(2, 10, 2):
def_value.text=str(area)
fname = f'MyType1a_{area}m2.xmltmf'
xmltmf = r'C:\TRNSYS18\Studio\Proformas\MyComponents'+'\\' + fname
tree.write(xmltmf)
このスクリプトを実行すると2,4,6,8㎡の集熱器のProformaが作成されます。
作成された8㎡に設定したProformaを選んで配置。Parameterタブを確認すると、集熱面積が8㎡になっているのが確認できます。
今回はシンプルな例でしたが、本来は他のツールとコンポーネントの情報のインポート、エクスポートに使用する目的の機能のようです。
とはいえ、複数のParameterやInputを組み合わせてProformaを作成したいケースや、まとめて編集したいケースでも使えそうです。
動作環境
以下の環境で動作を確認しています。
Windows10 Pro(64bit, 20H2)
TRNSYS18.02.0002(64bit)
Python 3.8.5