注意:只有载入族的才是可以修改的
下面是一个例子:选一个载入族,删掉其中的一个参数
private void EditFamilyParm()
{
//选择一个族实例
Reference re = uidoc.Selection.PickObject(ObjectType.Element);
Element elem = doc.GetElement(re);
//返回FamilySymbol的Id
ElementId id = elem.GetTypeId();
FamilySymbol symbol = doc.GetElement(id) as FamilySymbol;
//返回编辑族的 Document
Autodesk.Revit.DB.Document fadoc = doc.EditFamily(symbol.Family);
//得到FamilyManager ,关于族参数的操作都在里面
FamilyManager manager = fadoc.FamilyManager;
IList<FamilyParameter> faparms = manager.GetParameters();
MessageBox.Show(faparms.First().Definition.Name);
Transaction trans = new Transaction(fadoc, "Remove Parameter");
trans.Start();
manager.RemoveParameter(faparms.First());
trans.Commit();
fadoc.LoadFamily(doc,new Opt());
}
//这是重新载入族文件时的选项
public class Opt : IFamilyLoadOptions
{
public bool OnFamilyFound(bool familyInUse, out bool overwriteParameterValues)
{
overwriteParameterValues = true;
return true;
}
public bool OnSharedFamilyFound(Family sharedFamily, bool familyInUse, out FamilySource source, out bool overwriteParameterValues)
{
throw new NotImplementedException();
}
}
博主会经常更新一些技术文章,请大家多多关注,多多交流
更多技术交流,请加qq群480950299