AssemblyInstance クラスの Create()メソッドは、プロジェクトで新しいアセンブリ インスタンスの作成に使用します。Create()メソッドはトランザクション内で作成する必要があり、新しく作成したアセンブリ インスタンスで操作を実行する前にトランザクションをコミットする必要があります。アセンブリ タイプは、トランザクションの完了後に割り当てられます。
次の例では、新しいアセンブリ インスタンスを作成し、その AssemblyType の名前を変更して、アセンブリ インスタンスにビューを作成します。
|
コード領域: アセンブリとビューを作成 |
void CreateAssemblyAndViews(Autodesk.Revit.DB.Document doc, ICollection<ElementId> elementIds)
{
Transaction transaction = new Transaction(doc);
// use category of one of the assembly elements
ElementId categoryId = doc.GetElement(elementIds.First()).Category.Id;
if (AssemblyInstance.IsValidNamingCategory(doc, categoryId, elementIds))
{
transaction.Start("Create Assembly Instance");
AssemblyInstance assemblyInstance = AssemblyInstance.Create(doc, elementIds, categoryId);
// commit the transaction that creates the assembly instance before modifying the instance's name
transaction.Commit();
transaction.Start("Set Assembly Name");
assemblyInstance.AssemblyTypeName = "My Assembly Name";
transaction.Commit();
// create assembly views for this assembly instance
if (assemblyInstance.AllowsAssemblyViewCreation())
{
transaction.Start("View Creation");
View3D view3d = AssemblyViewUtils.Create3DOrthographic(doc, assemblyInstance.Id);
ViewSchedule partList = AssemblyViewUtils.CreatePartList(doc, assemblyInstance.Id);
transaction.Commit();
}
}
}
|
AssemblyViewUtils クラスを使用すると、直交投影 3D アセンブリ ビュー、断面詳細図アセンブリ ビュー、部材拾い出しマルチカテゴリ集計表アセンブリ ビュー、パーツ リスト マルチカテゴリ集計表アセンブリ ビュー、シート アセンブリ ビューなどさまざまなアセンブリ ビューをアセンブリ インスタンスに作成できます。これらの新しく作成したアセンブリ ビューを使用する前に、ドキュメントを再生成する必要があります。上の例では、2 つの新しいアセンブリ ビューを作成した後にトランザクションをコミットしています。Commit()メソッドは自動的にドキュメントを再生成します。