using Autodesk.Revit.DB; using FWindSoft.Revit.Extension; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FWindSoft.Revit.FamilyManager { public static class FamilyManagerExtension { #region 族加载 /// /// 获取项目中的族 /// /// /// public static List GetFamilys(this Document doc) { return doc.GetElements(); } /// /// 加载族文件ljy /// /// /// /// public static Family LoadFamilyT(this Document doc, string familyFile) { Family family = null; doc.LoadFamily(familyFile, new FamilyLoadOptions(), out family); return family; } /// /// 加载族文件ljy /// /// /// /// /// public static Family LoadFamilyT(this Document doc, string familyFile, string familyName) { var strFamilyName = string.IsNullOrWhiteSpace(familyName)?Path.GetFileNameWithoutExtension(familyFile):familyName; Family family = doc.FindFamily(strFamilyName); if (family == null) { family = doc.LoadFamilyT(familyFile); } return family; } /// /// 加载制定文件的族,加载之前判断族名称是否存在 /// /// /// /// public static Family LoadFamilyCheckName(this Document doc, string familyFile) { return doc.LoadFamilyT(familyFile, null); } public static Family FindFamily(this Document doc, string familyName) { Family family = null; List listFamily = doc.GetFamilys(); foreach (var f in listFamily) { if (f.Name == familyName) { family = f; break; } } return family; } #endregion /// /// 获取指定文件的默认族类型 /// /// /// /// public static FamilySymbol LoadSysmbol(this Document doc,string familyFile) { var family = doc.LoadFamilyCheckName(familyFile); if (family == null) return null; return family.GetFamilySymbol(); } } }