LabelUtilsPE は、ラベル関連の機能をコア Teigha BIM 機能の外に移動させるプロトコル拡張 (PE) であり、Teigha BIM メンバー開発者が異なるローカライズをサポートするための独自のプロトコル拡張を実装できるようにします。現時点では、英語ラベルを持つプロトコル拡張が例として実装されています。
LabelUtilsPE インターフェース
• OdString getLabelFor(<Enum>)
組み込みの列挙値のラベルを返します。以下の列挙がサポートされています。
OdBm::BuiltInParameter::Enum
OdBm::BuiltInParameterGroup::Enum
OdBm::DisplayUnitType::Enum
OdBm::ParameterType::Enum
OdBm::UnitSymbolType::Enum
OdBm::UnitType::Enum
OdBm::BuiltInCategory::Enum
• OdString format(const OdBmAUnits& aUnits, OdBm::UnitType::Enum unitType, double value, bool editing = false)
渡された値は、その単位タイプ (OdBm::UnitType::Enum unitType) とデータベース内の単位タイプ書式設定の配列 (OdBmAUnits& aUnits) に対応する文字列として書式設定されます。
• OdString format(const OdBmAUnits& aUnits, OdBm::UnitType::Enum unitType, double value, const OdBmFormatOptions&
formatOptions, bool editing = false)
渡された値は、その単位タイプ (OdBm::UnitType::Enum unitType) と書式設定オプション (OdBmFormatOptions& formatOptions) に対応する文字列として書式設定されます。書式設定オプションには IsUseDefault フラグが含まれており、これが true の場合、関数はこれらの書式設定オプションをバイパスし、データベース内の単位タイプ書式設定 (OdBmAUnits& aUnits) から書式を取得します。
コードの場所
• Include\Database\BmLabelUtilsPE.h — サポートされているすべてのインターフェースを定義するメインヘッダー。
• Examples\TB_LabelUtilsPE\BmLabelUtilsEnPE.h および .cpp — 英語をサポートするPE実装。
LabelUtilsPE メソッドの使用法
PEメソッドを使用するには、まずPE実装を含むライブラリをロードします。例えば、英語のPEを使用するには、次のコマンドを呼び出す必要があります。
::odrxDynamicLinker()->loadModule(L"TB_ExLabelUtils");
次に、PEはOdBmElementクラスにリンクされ、次の呼び出しでアクセスできます。
OdBmLabelUtilsPEPtr pLabelUtils = OdBmElement::desc()->getX(OdBmLabelUtilsPE::desc());
PEモジュールがロードされていない場合、pLabelUtilsは結果としてヌルポインタを受け取ります。
BIMにおけるLabelUtilsPEの使用法
現在、LabelUtilsPEは、組み込みパラメータ (ParamDef.caption) および組み込みカテゴリ (Category.name) のテーブルを構築するために使用されています。データベースが開かれたときにLabelUtilsPEモジュールがロードされていない場合、組み込みパラメータとカテゴリ要素は、それらの列挙要素名に対応する名前を取得します。