Document
Edit
|
Gets the document of a loaded family to edit.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 27.0.4.0 (27.0.4.0)
Parameters
- loadedFamily Family
- The loaded family in current document.
Return Value
DocumentReference of the document of the family.
| Exception | Condition |
|---|---|
| ArgumentNullException | Thrown when the input argument-"loadedFamily"-is . |
| ArgumentException | Thrown when the input argument-"loadedFamily"-is an in-place family or a non-editable family. (This can be checked with the IsInPlace and IsEditable properties of the Family class. |
| InvalidOperationException | Thrown when the family is already being edited. |
| ForbiddenForDynamicUpdateException | Thrown if this method is called during dynamic update. |
| InvalidOperationException | Thrown if this method is called while the document is modifiable (i.e. it has an unfinished transaction.) |
| InvalidOperationException | Thrown if this method is currently in a read-only state. |
This creates an independent copy of the family for editing.
To apply the changes back to the family stored in the document, use the LoadFamily overload
accepting
IFamilyLoadOptions
.
This method may not be called if the document is currently modifiable (has an open transaction) or is in a read-only state. The method may not be called during dynamic updates. To test the document's current status, check the values of IsModifiable and IsReadOnly properties.
C#
public void GetLoadedSymbols(Autodesk.Revit.DB.Document document, FamilyInstance familyInstance)
{
if (null != familyInstance.Symbol)
{
// Get family associated with this
Family family = familyInstance.Symbol.Family;
// Get Family document for family
Document familyDoc = document.EditFamily(family);
if (null != familyDoc && familyDoc.IsFamilyDocument == true)
{
String loadedFamilies = "FamilySymbols in " + family.Name + ":\n";
FilteredElementCollector collector = new FilteredElementCollector(document);
ICollection<Element> collection =
collector.OfClass(typeof(FamilySymbol)).ToElements();
foreach (Element e in collection)
{
FamilySymbol fs = e as FamilySymbol;
loadedFamilies += "\t" + fs.Name + "\n";
}
TaskDialog.Show("Revit",loadedFamilies);
}
}
}