Revit API过滤元素类别(FamilySymbol与FamilyInstance)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Revit API过滤元素类别(FamilySymbol与FamilyInstance)

Revit API过滤元素类别(FamilySymbol与FamilyInstance)

 2013/10/31 16:12:09  大气象  博客园  我要评论(0)
  • 摘要:仅OfCategory()过滤的元素包含系统FamilySymbolOfClass(typeof(FamilyInstance))过滤出来文档中族实例。//过滤元素类别[Transaction(TransactionMode.Manual)][Regeneration(RegenerationOption.Manual)]publicclasscmdGetCate:IExternalCommand{publicResultExecute(ExternalCommandDatacmdData
  • 标签:API instance
仅OfCategory()过滤的元素包含系统FamilySymbol
OfClass(typeof(FamilyInstance))过滤出来文档中族实例。
//过滤元素类别
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmdGetCate : IExternalCommand
{
    public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
    {
        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;

        Transaction ts = new Transaction(uiDoc.Document, "SetFamily");
        ts.Start();

        FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
        collector.OfCategory(BuiltInCategory.OST_DuctFitting);//过滤出来系统包含的Symbol与文档包含的Instance
        
//collector.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_DuctFitting);
        int iSymbol = 0;
        int iFi = 0;
        foreach (Element el in collector)
        {
            if (el is FamilySymbol)
                iSymbol += 1;
            else if (el is FamilyInstance)
                iFi += 1;
        }
        TaskDialog.Show("count", iSymbol + "," + iFi);

        ts.Commit();

        return Result.Succeeded;
    }
}url:http://greatverve.cnblogs.com/p/api-get-symbol-instance.html
上一篇: C#引用非托管.dll 下一篇: 简单通俗讲解DOM
发表评论
用户名: 匿名