ファミリは、そのファミリが作成する要素のタイプに対応するファミリテンプレートを使用して作成できます。
テンプレートには、プロジェクトにファミリを配置するために必要な情報が含まれています。
ほとんどのファミリテンプレートは、それらから作成される要素ファミリのタイプに従って命名されます。壁ベース、天井ベース、床ベース、屋根ベース、線ベース、面ベースなどです。
|
ファミリテンプレート |
説明 |
|
壁ベース |
壁に挿入されるコンポーネントを作成するために使用します。 |
|
天井ベース |
天井に挿入されるコンポーネントを作成するために使用します。天井ベースのファミリの例には、スプリンクラーや埋め込み型照明器具などがあります。 |
|
床ベース |
床に挿入されるコンポーネントに使用します。 |
|
屋根ベース |
屋根に挿入されるコンポーネントに使用します。屋根ベースのファミリの例には、天窓や屋根ファンなどがあります。 |
|
スタンドアロン |
ホストに依存しないコンポーネントに使用します。スタンドアロンファミリの例には、家具、電化製品、ダクト、継手などがあります。 |
|
適応型 |
多くの固有のコンテキスト条件に柔軟に適応する必要があるコンポーネントを作成するために使用します。 |
|
線ベース |
線ベースのテンプレートは、2点配置を使用する詳細ファミリおよびモデルファミリを作成するために使用できます。 |
|
面ベース |
ホストを変更できる作業面ベースのファミリを作成するために使用します。このタイプのテンプレートから作成されたファミリは、ホストに複雑な切り込みを入れることができます。これらのファミリのインスタンスは、向きに関係なく、任意の面に配置できます。 |
|
特殊 |
ファミリがモデルとの固有の相互作用を必要とする場合に使用します。これらのファミリテンプレートは、1種類のファミリにのみ特化しています。たとえば、構造フレームテンプレートは、構造フレームコンテンツの作成にのみ使用できます。 |
壁ベース、天井ベース、床ベース、屋根ベースのテンプレートは、ホストベースのテンプレートとして知られています。ホストベースのファミリは、そのホストタイプの要素が存在する場合にのみプロジェクトに配置できます。
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 References . . . . . . . . . . . . サイズ: 1
OdBmFamilyElemRefPtr Item[0]:
ハンドル ElementId. . . . . . . . . . . . . . 1537
ここで、id=1537 の要素は押し出しです。