Revit API-从Revit项目FamilyDelete.pushbutton中完全删除系列

问题描述 投票:0回答:1

我在尝试从项目中删除家庭时遇到问题。我可以删除族类型,但似乎族仍在项目中加载。有没有办法将其完全删除?

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

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();
}

enter image description here

revit-api revit revitpythonshell pyrevit
1个回答
0
投票

家庭

[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

© www.soinside.com 2019 - 2024. All rights reserved.