Inserts a new instance of a family into the document,
using a location, type/symbol, the host element and a reference direction.
Namespace: Autodesk.Revit.Creation
Assembly: RevitAPI (in RevitAPI.dll) Version: 22.0.0.0 (22.1.0.0)
Syntax
Return Value
If creation was successful then an instance to the new object is returned, otherwise
nullNothingnullptra null reference (Nothing in Visual Basic).
Remarks
Examples
CopyC#
FilteredElementCollector collector = new FilteredElementCollector(document);
Floor floor = collector.OfClass(typeof(Floor)).FirstElement() as Floor;
if (floor != null)
{
Family family = null;
FilteredElementCollector famCollector = new FilteredElementCollector(document);
famCollector.OfClass(typeof(Family));
ICollection<Element> collection = famCollector.ToElements();
foreach (Element element in collection)
{
if (element.Name.CompareTo("Bed-Box") == 0)
{
family = element as Family;
break;
}
}
if (family != null)
{
FilteredElementCollector fsCollector = new FilteredElementCollector(document);
ICollection<Element> fsCollection = fsCollector.WherePasses(new FamilySymbolFilter(family.Id)).ToElements();
IEnumerator<Element> symbolItor = fsCollection.GetEnumerator();
int x = 0, y = 0;
int i = 0;
while (symbolItor.MoveNext())
{
FamilySymbol symbol = symbolItor.Current as FamilySymbol;
XYZ location = new XYZ(x, y, 0);
XYZ direction = new XYZ();
switch (i % 3)
{
case 0:
direction = new XYZ(1, 1, 0);
break;
case 1:
direction = new XYZ(0, 1, 1);
break;
case 2:
direction = new XYZ(1, 0, 1);
break;
}
FamilyInstance instance = document.Create.NewFamilyInstance(location, symbol, direction, floor, StructuralType.NonStructural);
x += 10;
i++;
}
}
}
CopyVB.NET
Dim collector As New FilteredElementCollector(document)
Dim floor As Floor = TryCast(collector.OfClass(GetType(Floor)).FirstElement(), Floor)
If floor IsNot Nothing Then
Dim family As Family = Nothing
Dim famCollector As New FilteredElementCollector(document)
famCollector.OfClass(GetType(Family))
Dim collection As ICollection(Of Element) = famCollector.ToElements()
For Each element As Element In collection
If element.Name.CompareTo("Bed-Box") = 0 Then
family = TryCast(element, Family)
Exit For
End If
Next
If family IsNot Nothing Then
Dim fsCollector As New FilteredElementCollector(document)
Dim fsCollection As ICollection(Of Element) = fsCollector.WherePasses(New FamilySymbolFilter(family.Id)).ToElements()
Dim symbolItor As IEnumerator(Of Element) = fsCollection.GetEnumerator()
Dim x As Integer = 0, y As Integer = 0
Dim i As Integer = 0
While symbolItor.MoveNext()
Dim symbol As FamilySymbol = TryCast(symbolItor.Current, FamilySymbol)
Dim location As New XYZ(x, y, 0)
Dim direction As New XYZ()
Select Case i Mod 3
Case 0
direction = New XYZ(1, 1, 0)
Exit Select
Case 1
direction = New XYZ(0, 1, 1)
Exit Select
Case 2
direction = New XYZ(1, 0, 1)
Exit Select
End Select
Dim instance As FamilyInstance = document.Create.NewFamilyInstance(location, symbol, direction, floor, StructuralType.NonStructural)
x += 10
i += 1
End While
End If
End If
Exceptions
See Also