1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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 族加载
- /// <summary>
- /// 获取项目中的族
- /// </summary>
- /// <param name="doc"></param>
- /// <returns></returns>
- public static List<Family> GetFamilys(this Document doc)
- {
- return doc.GetElements<Family>();
- }
- /// <summary>
- /// 加载族文件ljy
- /// </summary>
- /// <param name="doc"></param>
- /// <param name="familyFile"></param>
- /// <returns></returns>
- public static Family LoadFamilyT(this Document doc, string familyFile)
- {
- Family family = null;
- doc.LoadFamily(familyFile, new FamilyLoadOptions(), out family);
- return family;
- }
- /// <summary>
- /// 加载族文件ljy
- /// </summary>
- /// <param name="doc"></param>
- /// <param name="familyFile"></param>
- /// <param name="bic"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 加载制定文件的族,加载之前判断族名称是否存在
- /// </summary>
- /// <param name="doc"></param>
- /// <param name="familyFile"></param>
- /// <returns></returns>
- 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<Family> listFamily = doc.GetFamilys();
- foreach (var f in listFamily)
- {
- if (f.Name == familyName)
- {
- family = f;
- break;
- }
- }
- return family;
- }
- #endregion
- /// <summary>
- /// 获取指定文件的默认族类型
- /// </summary>
- /// <param name="doc"></param>
- /// <param name="familyFile"></param>
- /// <returns></returns>
- public static FamilySymbol LoadSysmbol(this Document doc,string familyFile)
- {
- var family = doc.LoadFamilyCheckName(familyFile);
- if (family == null)
- return null;
- return family.GetFamilySymbol();
- }
- }
- }
|