zoukankan      html  css  js  c++  java
  • Revit API过滤管道系统类型

    管道只能通过PipeType过滤出来类型属性,只能是系统族的类型属性。
    管道实例过滤不能用族符号和族实例,要用Pipe
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using WinForm = System.Windows.Forms;

    using Autodesk.Revit.UI;
    using Autodesk.Revit.DB;
    using Autodesk.Revit.Attributes;

    using Autodesk.Revit.DB.Mechanical;
    using Autodesk.Revit.UI.Selection;
    using Autodesk.Revit.ApplicationServices;

    using Autodesk.Revit.DB.Structure;
    using Autodesk.Revit.DB.ExtensibleStorage;
    using Autodesk.Revit.DB.Plumbing;
    using Autodesk.Revit.DB.Architecture;

    using System.Xml;

    namespace RevitCodes
    {

        [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
        
    public class cmd : IExternalCommand
        {
            
    public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
            {
                UIApplication uiApp 
    = commandData.Application;
                Document doc 
    = uiApp.ActiveUIDocument.Document;
                Selection sel 
    = uiApp.ActiveUIDocument.Selection;

                Transaction ts 
    = new Transaction(doc, "http://revit.5d6d.com");
                ts.Start();

                FilteredElementCollector collector 
    = new FilteredElementCollector(doc);
                
    //此法可以只过滤系统类型
                collector.OfCategory(BuiltInCategory.OST_PipeCurves);
                
    foreach (Element el in collector.ToElements())
                {
                    PipeType pipeType 
    = el as PipeType;//管道类型有专有类型
                    if (pipeType != null)
                        TaskDialog.Show(
    "pipetype", pipeType.Name);
                    FamilySymbol symbol 
    = el as FamilySymbol;//即不是族符号
                    if (symbol != null)
                        TaskDialog.Show(
    "symbol", symbol.Name);
                    FamilyInstance fi 
    = el as FamilyInstance;//也不是族实例
                    if(fi!=null)
                        TaskDialog.Show(
    "fi", fi.Name);
                    Pipe pipe 
    = el as Pipe;
                    
    if (pipe != null)
                        TaskDialog.Show(
    "pipe", pipe.Name);
                }

                ts.Commit();

                
    return Result.Succeeded;
            }
        }
    }
    url:http://greatverve.cnblogs.com/p/api-pipe-type.html
  • 相关阅读:
    【ML-9-1】支持向量机--软硬间隔与支持向量机
    【ML-8】感知机算法-传统和对偶形式
    【ML-7】聚类算法--K-means和k-mediods/密度聚类/层次聚类
    【ML-7】聚类算法-实例代码
    【ML-6-2】集成学习-boosting(Adaboost和GBDT )
    【ML-6-1】集成学习-bagging(随机森林)
    【ML-5】决策树算法
    【ML-4】逻辑回归--用于分类
    【ML-3.1】梯度下降于牛顿法实例
    树状数组
  • 原文地址:https://www.cnblogs.com/greatverve/p/api-pipe-type.html
Copyright © 2011-2022 走看看