ファミリを他のファミリにネストして、結合したファミリ ジオメトリを含んだ新しいファミリ(サードファミリ)を作成することができます。
たとえば、スクラッチから電球ファミリを含む照明器具をモデリングするのではなく、電球を照明器具ファミリにロードすることで、複合照明ファミリを作成することができます。
下記のヘルパーメソッドは、次の3つのステップを通じて、ドキュメント上に外部のRFAファイルを読み込んで、ファミリインスタンス
を生成するサンプルコードです。
ドキュメントにファミリをロードします。
ファミリシンボルを取得します。
新しいファミリインスタンスを作成します。
StructuralType _non_rst = StructuralType.NonStructural;
FamilyInstance InsertFamilySymbolFromRfa(
string filename,
Document doc )
{
FamilyInstance fi = null;
//
// load family file:
//
Family f;
if( doc.LoadFamily( filename, out f ) )
{
//
// retrieve family symbol:
//
FamilySymbol symbol = null;
foreach( FamilySymbol s in f.Symbols )
{
symbol = s;
break;
}
//
// create family instance:
//
if( null != symbol )
{
if( doc.IsFamilyDocument )
{
fi = doc.FamilyCreate.NewFamilyInstance(
XYZ.Zero, symbol, _non_rst );
}
else
{
fi = doc.Create.NewFamilyInstance(
XYZ.Zero, symbol, _non_rst );
}
}
}
return fi;
}
public IExternalCommand.Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements )
{
Application app = commandData.Application;
Document doc = app.ActiveDocument;
FamilyInstance a = InsertFamilySymbolFromRfa(
"C:/tmp/column.rfa", doc );
FamilyInstance b = InsertFamilySymbolFromRfa(
"C:/tmp/shelf.rfa", doc );
return IExternalCommand.Result.Succeeded;
}
実装の際の注意点として、ファミリのタイプまたはパラメータにアクセスするための FamilyManager クラスは、ターゲットとなるファミリのファミリドキュメントをロードしなければ利用できません。パラメータを設定する際には、ドキュメントロードの処理時間も考慮して設計する必要があります。
またファミリをネストしてサードファミリを作成する前には、そのネストするファミリのパラメータの共有設定(有効/無効)を事前に考慮しなければなりません。
この共有設定により、サードファミリをロードして要素を配置した際のジオメトリの動作が異なります。
ネストするファミリが共有設定されていない場合、そのネストしたファミリによって作成したコンポーネントは、他の要素とともに単一ユニットとして動作します。コンポーネントを別々に選択(編集)したり、タグ付けや集計することができません。
ネストするファミリが共有設定されている場合、コンポーネントを別々に選択、タグ付け、および集計できます。
以下のリンクは、複数のファミリをネストしてサードファミリを作成する手法に関する解説です。Revit APIを利用して実装する際にも役立ちますのでご参照ください。
ロード可能なファミリのネスト、共有について
コンポーネントがネストされたファミリを作成する
コンポーネントがネストおよび共有されたファミリを作成する
交換可能なコンポーネントでネストされたファミリを作成する
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Revit API Tips: ソリッドやメッシュのジオメトリをプロジェクト上に作図する方法 | 0 | 7.59 | 17-08-2026 |
| 2 | Revit API Tips: 壁プロファイルの取得方法 | 0 | 5.8 | 17-08-2026 |
| 3 | Visual Studioで「InventorViewCtrl.ocxの自己登録に失敗しました」エラーが発生して、Inventor ViewコントロールをWindowsフォームへ追加することが出来ない | 0 | 10.94 | 17-08-2026 |
| 4 | AutoCAD .NET API :最後に追加されたエンティティの取得 | 0 | 13.03 | 23-08-2026 |
| 5 | .NET :Interaction.GetObject で起動中の AutoCAD COM オブジェクトを取得できない場合の対処方法 | 0 | 10.2 | 04-09-2026 |
| 6 | What's New: Informed Design for Dynamo — Public Beta | 0 | 13.16 | 08-09-2026 |
| 7 | Revit API Tips: アドインでバッチ処理を実装する方法 | 0 | 4.51 | 17-08-2026 |
| 8 | How to Create Louvers with Curtain Panel family, and slanted on top | 0 | 5.6 | 21-09-2026 |
| 9 | Managed .Net API でレイアウト空間のビューポート表示範囲のオブジェクトを取得する方法 | 0 | 15.24 | 17-08-2026 |
| 10 | What's New: BIM Definition Subcategory for Revit Family Files in Inventor | 2 | 6 | 13-04-2026 |