Revit API 開發時有時候需要針對特定類型的構建進行處理或分析。

而為了取得特定類型的構建,需要透過 FilteredElementCollector 將 UIDocument 特定類型的構建取出,程式碼如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void GetElementsByCategory(ExternalCommandData commandData,BuiltInCategory category)
{
    UIDocument uidoc = commandData.Application.ActiveUIDocument;

    FilteredElementCollector docCollector = new FilteredElementCollector(uidoc.Document);
    docCollector.OfCategory(category);

    IList<Element> elementsInView = docCollector.ToElements();
    StringBuilder sb = new StringBuilder();

    foreach (Element element in elementsInView)
    {
        if (element is FamilyInstance)
        {
            FamilyInstance inst = element as FamilyInstance;
            FamilySymbol Sy = inst.Symbol;
            Family family = Sy.Family;

            sb.Append(string.Format("Family Symbol {0}, Family Name {1}", Sy.Name, family.Name));
        }
    }

    TaskDialog.Show("INFO", sb.ToString());
}

 

若不知道構建的類別,可以查看構建的Properties,就可以知道目標構建的所屬類別。

arrow
arrow
    文章標籤
    revit
    全站熱搜
    創作者介紹
    創作者 Lung-Yu,Tsai 的頭像
    Lung-Yu,Tsai

    Lung-Yu,Tsai 的部落格

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()