LabelUtilsPE 是一个协议扩展 (PE),它将与标签相关的功能移出 Teigha BIM 核心功能之外,允许 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 模块,则内置参数和类别元素将获得与其枚举元素名称对应的名称。