public void Family LoadFamily(Document doc, string familyName)
{
var family = new FilteredElementCollector(doc).OfClass(typeof(Family)).Select(p => p as Family).FirstOrDefault(p => p.Name == familyName);
if (family == null)
{
var paths = Directory.GetFiles(FamilyPath, familyName + ".rfa", SearchOption.AllDirectories);
if (paths.Count() == 0)
return null;
var path = paths.First();
if (!doc.LoadFamily(path, new FamilyLoadOptions(), out family))
throw new Exception("族加载失败");
foreach (FamilySymbol fs in family.GetFamilySymbolIds().Select(p => doc.GetElement(p)))
{
fs.Activate();
}
}
return family;
}
Family family = LoadFamily(doc, "某某族");
//创建
var familyIns= mdoc.Create.NewFamilyInstance(xyz, mdoc.GetElement(family.GetFamilySymbolIds().First()) as FamilySymbol, view);
这个方法需要开事务。