Creates Family instances within the document.
Namespace: Autodesk.Revit.Creation
Assembly: RevitAPI (in RevitAPI.dll) Version: 22.0.0.0 (22.1.0.0)
Syntax
Parameters
- dataList
- Type: System.Collections.Generic..::..List<(Of <(<'FamilyInstanceCreationData>)>)>
A list of FamilyInstanceCreationData which wraps the creation arguments of the families to be created.
Return Value
If the creation is successful, a set of ElementIds which contains the Family instances should be returned, otherwise the exception will be thrown.
Remarks
Examples
CopyC#
ICollection<ElementId> BatchCreateColumns(Autodesk.Revit.DB.Document document, Level level)
{
List<FamilyInstanceCreationData> fiCreationDatas = new List<FamilyInstanceCreationData>();
ICollection<ElementId> elementSet = null;
FamilySymbol familySymbol = null;
FilteredElementCollector collector = new FilteredElementCollector(document);
ICollection<Element> collection = collector.OfClass(typeof(FamilySymbol)).ToElements();
foreach (Element e in collection)
{
familySymbol = e as FamilySymbol;
if (null != familySymbol.Category)
{
if ("Structural Columns" == familySymbol.Category.Name)
{
break;
}
}
}
if (null != familySymbol)
{
for (int i = 1; i < 11; i++)
{
XYZ location = new XYZ(i * 10, 100, 0);
FamilyInstanceCreationData fiCreationData =
new FamilyInstanceCreationData(location, familySymbol, level, StructuralType.Column);
if (null != fiCreationData)
{
fiCreationDatas.Add(fiCreationData);
}
}
if (fiCreationDatas.Count > 0)
{
elementSet = document.Create.NewFamilyInstances2(fiCreationDatas);
}
else
{
throw new Exception("Batch creation failed.");
}
}
else
{
throw new Exception("No column types found.");
}
return elementSet;
}
CopyVB.NET
Private Function BatchCreateColumns(document As Autodesk.Revit.DB.Document, level As Level) As ICollection(Of ElementId)
Dim fiCreationDatas As New List(Of FamilyInstanceCreationData)()
Dim elementSet As ICollection(Of ElementId) = Nothing
Dim familySymbol As FamilySymbol = Nothing
Dim collector As New FilteredElementCollector(document)
Dim collection As ICollection(Of Element) = collector.OfClass(GetType(FamilySymbol)).ToElements()
For Each e As Element In collection
familySymbol = TryCast(e, FamilySymbol)
If familySymbol.Category IsNot Nothing Then
If "Structural Columns" = familySymbol.Category.Name Then
Exit For
End If
End If
Next
If familySymbol IsNot Nothing Then
For i As Integer = 1 To 10
Dim location As New XYZ(i * 10, 100, 0)
Dim fiCreationData As New FamilyInstanceCreationData(location, familySymbol, level, StructuralType.Column)
If fiCreationData IsNot Nothing Then
fiCreationDatas.Add(fiCreationData)
End If
Next
If fiCreationDatas.Count > 0 Then
elementSet = document.Create.NewFamilyInstances2(fiCreationDatas)
Else
Throw New Exception("Batch creation failed.")
End If
Else
Throw New Exception("No column types found.")
End If
Return elementSet
End Function
Exceptions
See Also