/// <summary> /// 弹出配置框 /// </summary> /// <param name="ent"></param> public void SetMulFamily(FamilyEnt ent) { if (ent == null) { TaskDialog.Show("提示", "请选择族"); return; } _selFamily = ent; List <string> roomNames = new List <string>(); FilteredElementCollector collector = new FilteredElementCollector(_doc); List <Element> collection = collector.OfClass(typeof(SpatialElementTag)).ToList(); foreach (Element elem in collector) { if (elem is RoomTag) { RoomTag roomTag = elem as RoomTag; roomNames.Add(roomTag.Room.Name); } } FrmSetFamilyViewModel vm = new FrmSetFamilyViewModel(roomNames); vm.SetConfig = SetConfig; FrmSetFamilyView frm = new FrmSetFamilyView(vm); frm.ShowDialog(); }
/// <summary> /// 加载族文件 /// </summary> /// <param name="doc"></param> /// <param name="familyName"></param> /// <returns></returns> private Family FindAndLoadFamily(Document doc, FamilyEnt ent) { try { Family family = null; //查找是否已经载入族 FilteredElementCollector collector = new FilteredElementCollector(doc); ICollection <Element> collection = collector.OfClass(typeof(Family)).ToElements(); foreach (Element e in collection) { Family fam = e as Family; if (fam != null) { if (fam.Name == ent.FileName) { family = fam; break; } } } //载入族文件 if (family == null) { _doc.LoadFamily(ent.FilePath, new FamilyLoadOptions(), out family); } return(family); } catch (Exception) { return(null); } }
private void InitData() { FamilyList = new List <FamilyEnt>(); FamilyEnt ent = new FamilyEnt() { Id = Guid.NewGuid(), FileName = Path.GetFileNameWithoutExtension(@"E:\Revit二次开发\做族\族达人速成光盘内容(2013)\4.族创建实例\4.3家具族\单人沙发.rfa"), FilePath = @"E:\Revit二次开发\做族\族达人速成光盘内容(2013)\4.族创建实例\4.3家具族\单人沙发.rfa" }; FamilyEnt ent2 = new FamilyEnt() { Id = Guid.NewGuid(), FileName = Path.GetFileNameWithoutExtension(@"E:\Revit二次开发\简易参变族.rfa"), FilePath = @"E:\Revit二次开发\简易参变族.rfa" }; FamilyList.Add(ent); FamilyList.Add(ent2); }