Teigha BIM 中的托管族

可以使用与族将创建的元素类型相对应的族模板来创建族。

样板包含将族放置到项目中所需的信息。

大多数族样板根据从中创建的图元族类型命名:基于墙、基于天花板、基于楼板、基于屋顶、基于线、基于面。

族样板

     描述

基于墙

用于创建将插入到墙中的构件。

基于天花板

用于创建将插入到天花板中的构件。基于天花板的族示例包括洒水器和嵌入式照明灯具。

基于楼板

用于创建将插入到楼板中的构件。

基于屋顶

用于创建将插入到屋顶中的构件。基于屋顶的族示例包括天窗和屋顶风扇。

独立

用于创建不依赖于主体的构件。独立族的示例包括家具、电器、风管和配件。

自适应

用于创建需要灵活适应许多独特上下文条件的构件。

基于线

基于线的样板可用于创建使用两点放置的详图族和模型族。

基于面

用于创建可修改其主体的基于工作平面的族。从此类样板创建的族可以在主体中进行复杂的切割。这些族的实例可以放置在任何表面上,无论其方向如何。

专业

当族需要与模型进行独特交互时使用。这些族样板仅适用于一种类型的族。例如,结构框架样板只能用于创建结构框架内容。

基于墙、基于天花板、基于楼板和基于屋顶的样板被称为基于主体的样板。只有当项目中存在其主体类型的图元时,才能放置基于主体的族。

使用 Teigha BIM API,您可以确定族是否是使用基于墙、基于楼板、基于面、基于天花板或基于屋顶的样板创建的。

对于尚未实例化的族,解决方案是访问 OdBm::BuiltInParameter::FAMILY_HOSTING_BEHAVIOR 参数以获取此信息。此参数值存储为整数值,整数值表示样板(主体行为)的以下含义:

  • 基于墙: 1
  • 基于楼板: 2
  • 基于天花板: 3
  • 基于屋顶: 4
  • 基于面: 5

然而,使用基于线和基于图案的样板创建的族返回整数值 0,无法使用此方法确定。

OdBm::FamilyHosting::Enum 的定义是为了帮助理解族的宿主行为,例如:

OdBmDatabasePtr pDb = app->readFile(L“some_family.rfa”);
OdBmElementPtr pElem = pDb->getOwnerFamilyId().safeOpenObject();
OdTfVariant vValue;
pElem->getParam(OdBm::BuiltInParameter::FAMILY_HOSTING_BEHAVIOR, vValue);
switch (vValue.getInt32())
{
case OdBm::FamilyHosting::Wall:
  // Wall hosted;
  break;
case OdBm::FamilyHosting::Floor:
  // Floor hosted;
  break;
case OdBm::FamilyHosting::Ceiling:
  // Ceiling hosted
  break;
case OdBm::FamilyHosting::Roof:
  // Roof hosted
  break;
case OdBm::FamilyHosting::Face:
  // Face hosted
  break;
case OdBm::FamilyHosting::NotHosted:
  // NotHosted family;
  break;
default:
  break;
}

族包含和引用的元素可以通过 OdBmFamily::getReferences(OdArray &) 方法访问。

例如,一个基于面的族可以有以下内容:

VariantArray 引用 . . . . . . . . . . . . 大小:1

  OdBmFamilyElemRefPtr 项[0]:

    句柄 ElementId. . . . . . . . . . . . . . 1537

其中 id=1537 的元素是一个拉伸体。

今天就开始行动

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

免费试用