【问题标题】:Revit API - Remove family completely from Revit projectRevit API - 从 Revit 项目中完全删除族
【发布时间】:2020-09-15 03:56:30
【问题描述】:

我在尝试从项目中删除一个家庭时遇到了问题。我可以删除族类型,但似乎该族仍在项目中加载。有没有办法彻底去除?

到目前为止,我已经查看了以下来源:

1) https://adndevblog.typepad.com/aec/2012/07/supported-workflow-for-unloading-a-family-using-the-revit-api.html

2)https://adndevblog.typepad.com/aec/2012/07/supported-workflow-for-unloading-a-family-using-the-revit-api.html

这是我的代码:

FilteredElementCollector colTitleBlocks = new FilteredElementCollector(doc)
                .OfClass(typeof(FamilySymbol))
                .OfCategory(BuiltInCategory.OST_TitleBlocks);


using (Transaction tx6 = new Transaction(doc))
{
    tx6.Start("load custom titleblock that you just made");


    Element family2Unload = null;
    foreach (FamilySymbol xfamily in colTitleBlocks )
        {

        if (xfamily.FamilyName == "E1 30 x 42 Horizontal")
             {

             family2Unload = doc.GetElement(xfamily.Id) as Element;

             }
        }
   doc.Delete(family2Unload.Id);

   tx6.Commit();
}

【问题讨论】:

    标签: revit-api revit revitpythonshell pyrevit


    【解决方案1】:

    家庭

    FamilyInstance => 放置的家庭实例

    FamilySymbol => 具有 0-m 个实例的族类型

    Family => 具有 n 个类型 0-m 个实例的族

    示例:FamilyDelete.pushbutton

    这是我从pyRevitMEP 删除家庭的脚本之一:

    """
    Copyright (c) 2017 Cyril Waechter
    Python scripts for Autodesk Revit
    This file is part of pypevitmep repository at https://github.com/CyrilWaechter/pypevitmep
    pypevitmep is an extension for pyRevit. It contain free set of scripts for Autodesk Revit:
    you can redistribute it and/or modify it under the terms of the GNU General Public License
    version 3, as published by the Free Software Foundation.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    See this link for a copy of the GNU General Public License protecting this package.
    https://github.com/CyrilWaechter/pypevitmep/blob/master/LICENSE
    """
    import rpw
    doc = rpw.revit.doc
    uidoc = rpw.revit.uidoc
    
    from Autodesk.Revit.DB import Transaction, FamilySymbol
    
    __doc__ = "Delete selected families from project"
    __title__ = "Family delete"
    __author__ = "Cyril Waechter"
    __context__ = "Selection"
    
    
    with rpw.db.Transaction("Delete families from project"):
        # Find families of selected object and delete it
        for id in uidoc.Selection.GetElementIds():
            el = doc.GetElement(id)
            family_id = el.Symbol.Family.Id
            doc.Delete(family_id)
    

    你有相同的家庭类型:FamilyTypeDelete.pushbutton

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多