テンプレートエディタ上でのシンボルオブジェクトに対するルール設定
Tekla Structures 2016iより、テンプレート上でシンボルを挿入する際にルールを設定することができるようになりました。
図面上に挿入される部材リスト等で、材質情報をシンボルを用いて表記する場合には、従来、材質単位に行コンテンツを作成し、各行のレベルでのルール設定で、出力する行を切り替える必要がありましたが、Tekla Structures 2016iからはシンボルオブジェクト内でルールを設定することでシンプルな行構成にすることができるようになりました。
次図のテンプレートの場合、シンボルに対するルールとしては、最初のif文で文字列の検索条件として、”S[NM]400A”と設定されています。
この条件の場合、検索条件にマッチする材質名はSN400AまたはSM400Aとなり、これらの材質の場合、シンボルとしてuser_material_symbols.symファイルのID=1のシンボルが参照されるように設定されています。
続けて、それぞれ各材質に対する検索条件とシンボルが定義し、無印の材質(SN400やSM400)はA種~C種といった種別毎の条件の後に定義することで、シンボルに置き換わるように設定されています。
そして、最後の行では、その他の材質の時のシンボルとして、シンボルとしては何も定義されていないuser_material_symbols.symファイルのID=99を定義して、空のシンボルが出力されるように設定されています。
なお、テンプレート上に新規にシンボルオブジェクトを追加する場合には、従来同様、シンボルファイルとID番号を指定してテンプレートエディタ上でシンボルオブジェクトを配置します。シンボルオブジェクトへのルール設定は、オブジェクトの配置後、プロパティダイアログ上で実施します。
シンボルオブジェクトにルールが設定されている場合、テンプレートエディタ上のシンボルオブジェクトは、 [X](赤字のバツ印)で表示されます。
【ルールの一例】
if (match(GetValue("MATERIAL"),"S[NM]400A")) then "user_material_symbols.sym@1" else if (match(GetValue("MATERIAL"),"S[NM]400B")) then "user_material_symbols.sym@2" else if (match(GetValue("MATERIAL"),"S[NM]400C")) then "user_material_symbols.sym@3" else if (match(GetValue("MATERIAL"),"S[NM]400")) then "user_material_symbols.sym@0" else if (match(GetValue("MATERIAL"),"S[NM]490A")) then "user_material_symbols.sym@6" else if (match(GetValue("MATERIAL"),"S[NM]490B")) then "user_material_symbols.sym@7" else if (match(GetValue("MATERIAL"),"S[NM]490C")) then "user_material_symbols.sym@8" else if (match(GetValue("MATERIAL"),"S[NM]490")) then "user_material_symbols.sym@5" else if (match(GetValue("MATERIAL"),"SM520B")) then "user_material_symbols.sym@11" else if (match(GetValue("MATERIAL"),"TMCP*")) then "user_material_symbols.sym@9" else "user_material_symbols.sym@99" endif endif endif endif endif endif endif endif endif endif