【发布时间】:2019-12-20 23:25:37
【问题描述】:
我正在尝试删除所有家族中以特定前缀开头的所有查找表。
“sizeTableManager.RemoveSizeTable(tableToRemove)”方法返回 true,就好像它成功了,但是当我去编辑项目中的族并调出查找表列表时,它们仍然存在。
事务似乎也没有错误地提交,这更令人费解......
关于我做错了什么有什么想法吗?
这是我目前的代码:
string existingPrefix = "ExistingPrefix_";
Document doc = this.ActiveUIDocument.Document;
FilteredElementCollector collector = new FilteredElementCollector(doc);
ICollection<Element> elements = collector.OfClass(typeof(Family)).ToElements();
foreach (var element in elements)
{
using (Transaction t = new Transaction(doc, "flush old lookup tables"))
{
t.Start();
FamilySizeTableManager sizeTableManager = FamilySizeTableManager.GetFamilySizeTableManager(doc, element.Id);
if(sizeTableManager != null)
{
foreach (var tableToRemove in sizeTableManager.GetAllSizeTableNames())
{
if(tableToRemove.StartsWith(existingPrefix))
{
bool result = sizeTableManager.RemoveSizeTable(tableToRemove);
if(result)
{
// TaskDialog.Show("Success", "Removed " + tableToRemove + " from " + element.Name);
var test = "test";
}
else
{
TaskDialog.Show("Warning", "Unable to remove " + tableToRemove + " from " + element.Name);
}
}
}
}
var commitResult = t.Commit();
}
}
提前致谢!
【问题讨论】: