ItemFactoryBaseNewFamilyInstance(Line, FamilySymbol, View) Method |
Add a line based detail family instance into the Autodesk Revit document,
using an line and a view where the instance should be placed.
Namespace: Autodesk.Revit.CreationAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic FamilyInstance NewFamilyInstance(
Line line,
FamilySymbol symbol,
View specView
)
Public Function NewFamilyInstance (
line As Line,
symbol As FamilySymbol,
specView As View
) As FamilyInstance
public:
FamilyInstance^ NewFamilyInstance(
Line^ line,
FamilySymbol^ symbol,
View^ specView
)
member NewFamilyInstance :
line : Line *
symbol : FamilySymbol *
specView : View -> FamilyInstance
Parameters
- line Line
- The line location of family instance. The line must in the plane of the view.
- symbol FamilySymbol
- A family symbol object that represents the type of the instance that is to be inserted.
- specView View
- A 2D view in which to display the family instance.
Return Value
FamilyInstance
Exceptions
RemarksThis overload applies only to 2D family line based detail symbols.
The type/symbol that is used must be loaded into the document before this method is called.
Families and their symbols can be loaded using the Document.LoadFamily
or Document.LoadFamilySymbol methods.
Examplevoid CreateDetailComponent(Autodesk.Revit.DB.Document document, View view)
{
if (view.ViewType == ViewType.Detail ||
view.ViewType == ViewType.DraftingView)
{
FamilySymbol symbol = null;
FilteredElementCollector fsCollector = new FilteredElementCollector(document);
fsCollector.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_DetailComponents);
ICollection<Element> collection = fsCollector.ToElements();
foreach (Element element in collection)
{
FamilySymbol current = element as FamilySymbol;
if (current.Family.FamilyPlacementType == FamilyPlacementType.CurveBasedDetail)
{
symbol = current;
break;
}
}
if (symbol != null)
{
XYZ start = view.Origin;
XYZ end = start + new XYZ(2, 0, 0);
Line line = Line.CreateBound(start, end);
FamilyInstance instance = document.Create.NewFamilyInstance(line, symbol, view);
}
}
}
Private Sub CreateDetailComponent(document As Autodesk.Revit.DB.Document, view As View)
If view.ViewType = ViewType.Detail OrElse view.ViewType = ViewType.DraftingView Then
Dim symbol As FamilySymbol = Nothing
Dim fsCollector As New FilteredElementCollector(document)
fsCollector.OfClass(GetType(FamilySymbol)).OfCategory(BuiltInCategory.OST_DetailComponents)
Dim collection As ICollection(Of Element) = fsCollector.ToElements()
For Each element As Element In collection
Dim current As FamilySymbol = TryCast(element, FamilySymbol)
If current.Family.FamilyPlacementType = FamilyPlacementType.CurveBasedDetail Then
symbol = current
Exit For
End If
Next
If symbol IsNot Nothing Then
Dim start As XYZ = view.Origin
Dim [end] As XYZ = start + New XYZ(2, 0, 0)
Dim line__1 As Line = Line.CreateBound(start, [end])
Dim instance As FamilyInstance = document.Create.NewFamilyInstance(line__1, symbol, view)
End If
End If
End Sub
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also