Teigha BIM 中的外部参数定义

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 部分对应于元数据,版本 2 带有 minversion 2 文件,这些文件用于所有现代版本的 .rvt/.rfa 文件。目前,它是 Teigha BIM 中唯一支持的版本。
  • Groups 部分表示外部参数定义的组;每个组都有一个名称和 ID(这两个字段都是唯一的)。这些组与 .rvt/.rfa 文档中的参数组或任何其他内容无关,仅用于对外部参数定义进行分组(例如,在“共享参数”对话框中)。
  • Params 部分包含外部参数定义。

每个部分都以一个以“*”符号开头的标题字符串开始,并包含一个部分表中的字段列表。标题和实体表中的字段都用制表符分隔。

Teigha BIM 中的外部参数定义

所有用于处理外部参数文件所需的接口都位于 Database/BmExtParamDef.h 文件中。该文件定义了两个类:

  • OdBmExtParamDef — 表示外部参数定义。
  • OdBmExtParamDefFile — 表示用于存储外部参数和组的文件。

OdBmExtParamDef 类

此类表示外部参数定义,其字段对应于 PARAM 部分中实体的字段:

  • OdString m_name; — 参数名称,对应于 OdBmParamDef 的 caption 字段。
  • OdBm::ParameterType m_dataType; — 参数类型,定义将使用 OdBmParamDef 的哪个子类以及 ParamDefValue 的 unitType。
  • OdInt64 m_dataCategory; — 定义族类型类别(仅适用于族类型参数)。
  • OdUInt32 m_groupId; — 参数所属组的 ID。
  • bool m_isVisible; — 可见性标志,对应于 OdBmParamDef 的 IsUserVisible 字段。
  • OdString m_description; — 描述,对应于 ParamElemExternal 的 description 字段。

除了获取和设置方法之外,该类还包含一个用于创建参数定义的方法,该方法可用于创建数据库参数 (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 — 将数据库内容保存到流。

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用