Teigha BIMは外部パラメータ定義をサポートしています。これらは外部テキストファイルに保存され、プロジェクト/ファミリドキュメントには含まれませんが、ドキュメントにインポートできるエンティティです。ParamElemExternalクラスのパラメータ要素は、外部パラメータ定義のGUIDを格納します。
外部パラメータ定義ファイル構造
これらのファイルの簡単な例を次に示します。
*META VERSION MINVERSION
META 2 1
*GROUP ID NAME
GROUP 1 1
GROUP 2 2
GROUP 3 Exported Parameters
*PARAM GUID NAME DATATYPE DATACATEGORY GROUP VISIBLE DESCRIPTION USERMODIFIABLE
PARAM f5ff6402-9260-4e5a-9f8e-49d14a351e19 Area AREA 3 1 1
PARAM 1f8f5e6f-f6e9-43a0-a059-d610dfd26402 Param11 TEXT 2 1 Desc1 1
PARAM 844695f1-a33f-40d7-aacf-a0e131d51a97 Param 2 FORCE 1 1 444 1
- METAセクションはメタデータに対応し、.rvt/.rfaファイルのすべての最新バージョンで使用されるminversion 2のバージョン2ファイルです。現在、Teigha BIMでサポートされている唯一のバージョンです。
- Groupsセクションは外部パラメータ定義のグループを表します。各グループには名前とIDがあります(両方のフィールドは一意です)。これらのグループは、.rvt/.rfaドキュメント内のパラメータグループやその他のものとは関係がなく、外部パラメータ定義をグループ化するためにのみ使用されます(たとえば、共有パラメータダイアログで)。
- Paramsセクションには外部パラメータ定義が含まれています。
各セクションは「*」記号で始まるヘッダー文字列で始まり、セクションテーブル内のフィールドのリストを含みます。ヘッダーとエンティティテーブルの両方のフィールドはタブ記号で区切られています。
Teigha BIMにおける外部パラメータ定義
外部パラメータファイルを操作するために必要なすべてのインターフェースは、Database/BmExtParamDef.hファイルにあります。このファイルは2つのクラスを定義しています。
- OdBmExtParamDef — 外部パラメータ定義を表します。
- OdBmExtParamDefFile — 外部パラメータとグループを格納するためのファイルを表します。
OdBmExtParamDefクラス
このクラスは外部パラメータ定義を表し、そのフィールドはPARAMセクションのエンティティのフィールドに対応します。
- OdString m_name; — OdBmParamDefのキャプションフィールドに格納されるパラメータの名前。
- OdBm::ParameterType m_dataType; — OdBmParamDefのどのサブ要素が使用されるか、およびParamDefValueのunitTypeを定義するパラメータタイプ。
- OdInt64 m_dataCategory; — ファミリタイプカテゴリを定義します(ファミリタイプパラメータにのみ適用可能)。
- OdUInt32 m_groupId; — パラメータが属するグループのID。
- bool m_isVisible; — OdBmParamDefのIsUserVisibleフィールドに対応する可視性フラグ。
- OdString m_description; — ParamElemExternalのdescriptionフィールドに格納される説明。
getおよびsetメソッドに加えて、このクラスには、データベースパラメータ(ParamElemExternal)の作成、つまり外部定義をデータベースにインポートするために使用できるパラメータ定義を作成するメソッドが含まれています。また、このクラスには、データベースから共有パラメータファイルにパラメータをエクスポートするOdBmParamDefを使用して外部定義を作成するためのコンストラクタも含まれています。
OdBmParamDefPtr getParamDef(const OdBmDatabasePtr& pDb) const;
OdBmExtParamDef(const OdBmParamDefPtr& pParamDef, OdUInt32 groupId, const OdString& description);
OdBmExtParamDefFileクラス
このクラスは、外部パラメータ定義のデータベース(ファイル)を表し、ストリームからのデータベースのロードと保存、およびパラメータ定義とグループの追加、削除などのインターフェースを提供します。
- getGroups — グループのID-文字列名マップを定数参照として返します。
- addGroup — グループを追加します。負のIDが渡された場合、インターフェースはIDを自身で割り当てて返します。
- deleteGroup — グループを削除します。グループは、パラメータ定義を含まない場合にのみ削除できます。
- renameGroup — グループの名前を変更します。
- isValidGroup — 渡されたIDを持つグループがデータベースに存在するかどうかを検証します。
- getParams — パラメータ定義のGUID-OdBmExtParamDefマップを定数参照として返します。
- getParamsByGroup — グループに属するパラメータ定義のマップを返します。
- getParamByGUID — GUIDによってパラメータ定義を返します。
- addParam — データベースにパラメータ定義を追加します。GUIDが一意でない場合、またはデータ型やグループが無効な場合は、パラメータ名とともにエラーIDを返します。
- deleteParam — パラメータを削除します。
- moveParam — パラメータを別のグループに移動します。
- getParamTypeByTag — ファイルのPARAMセクションレコードのDATACATEGORYフィールドで使用される文字列タグによってParameterTypeを返します(例:タグAREAはパラメータタイプOdBm::kPT_Areaに対応します)。
- getParamTypeTag — 文字列タグDATACATEGORYによってParameterTypeを返します。
- loadFromStream — ストリームからデータベースコンテンツをロードします。
- saveToStream — データベースコンテンツをストリームに保存します。