AssemblyInstance Class


Combines multiple elements for tagging, filtering, scheduling and creating isolated assembly views.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2012

Syntax

C#
public class AssemblyInstance : Element
Visual Basic
Public Class AssemblyInstance _
	Inherits Element
Visual C++
public ref class AssemblyInstance : public Element

Examples

Copy C#
// Create assembly instance, name the assembly, and create views of the assembly
void CreateAssemblyAndViews(Autodesk.Revit.DB.Document doc, ICollection<ElementId> elementIds)
{
   using (Transaction transaction = new Transaction(doc))
   {
       ElementId categoryId = doc.GetElement(elementIds.First()).Category.Id; // use category of one of the assembly elements
       if (AssemblyInstance.IsValidNamingCategory(doc, categoryId, elementIds))
       {
           transaction.Start("Create Assembly Instance");
           AssemblyInstance assemblyInstance = AssemblyInstance.Create(doc, elementIds, categoryId);
           transaction.Commit(); // commit the transaction that creates the assembly instance before modifying the instance's name

           if (transaction.GetStatus() == TransactionStatus.Committed)
           {
              transaction.Start("Set Assembly Name");
              assemblyInstance.AssemblyTypeName = "My Assembly Name";
              transaction.Commit();
           }

           if (assemblyInstance.AllowsAssemblyViewCreation()) // create assembly views for this assembly instance
           {
              if (transaction.GetStatus() == TransactionStatus.Committed)
              {
                  transaction.Start("View Creation");
                  View3D view3d = AssemblyViewUtils.Create3DOrthographic(doc, assemblyInstance.Id);
                  ViewSchedule partList = AssemblyViewUtils.CreatePartList(doc, assemblyInstance.Id);
                  transaction.Commit();
              }
           }
       }
   }
}
Copy VB.NET
' Create assembly instance, name the assembly, and create views of the assembly
Private Sub CreateAssemblyAndViews(doc As Autodesk.Revit.DB.Document, elementIds As ICollection(Of ElementId))
    Using transaction As New Transaction(doc)
        Dim categoryId As ElementId = doc.GetElement(elementIds.First()).Category.Id
        ' use category of one of the assembly elements
        If AssemblyInstance.IsValidNamingCategory(doc, categoryId, elementIds) Then
            transaction.Start("Create Assembly Instance")
            Dim assemblyInstance__1 As AssemblyInstance = AssemblyInstance.Create(doc, elementIds, categoryId)
            transaction.Commit()
            ' commit the transaction that creates the assembly instance before modifying the instance's name
            If transaction.GetStatus() = TransactionStatus.Committed Then
                transaction.Start("Set Assembly Name")
                assemblyInstance__1.AssemblyTypeName = "My Assembly Name"
                transaction.Commit()
            End If

            If assemblyInstance__1.AllowsAssemblyViewCreation() Then
                ' create assembly views for this assembly instance
                If transaction.GetStatus() = TransactionStatus.Committed Then
                    transaction.Start("View Creation")
                    Dim view3d As View3D = AssemblyViewUtils.Create3DOrthographic(doc, assemblyInstance__1.Id)
                    Dim partList As ViewSchedule = AssemblyViewUtils.CreatePartList(doc, assemblyInstance__1.Id)
                    transaction.Commit()
                End If
            End If
        End If
    End Using
End Sub

Inheritance Hierarchy

System Object
Autodesk.Revit.DB Element
Autodesk.Revit.DB AssemblyInstance

See Also