5,根据ElementId 获取FamilyInstance(族实例)和Room(房间)

 

      UIApplication uiapp = commandData.Application;

            UIDocument uidoc = uiapp.ActiveUIDocument;

            Autodesk.Revit.ApplicationServices.Application app = uiapp.Application;

            Document doc = uidoc.Document;

 

            FilteredElementCollector collector = new FilteredElementCollector(doc);

 

            //QuickFilter 快速过滤;OST_Windows :过滤的是窗; FamilySymbol:过滤类型是族类型

            collector = collector.OfCategory(BuiltInCategory.OST_Windows).OfClass(typeof(FamilyInstance));

 

            List<Autodesk.Revit.DB.Element> famSyms = new List<Element>();

            foreach (Element e in collector) {

                famSyms.Add(e);

            }

 

            try

            {

     

                Type t = famSyms[0].GetType();

       

                if (t.Equals(typeof(FamilyInstance)))

                {

 

                    FamilyInstance familyInstance = famSyms[1] as FamilyInstance;

                    Room room;

                        room= familyInstance.Room;

                    if (room ==null) {

                        room = familyInstance.FromRoom;

                        if (room == null) {

                            room = familyInstance.ToRoom;

                        }

                    }

                   

                    if (room != null)

                    {

                    

                        SpatialElement ph = famSyms[0] as SpatialElement;

                        TaskDialog.Show("是", "头tt是:" + room.Name);

                    }

                    else {

 

                   

                        TaskDialog.Show("null", "null");

                    }

           

                }

            }

            catch

            {

                TaskDialog.Show("异常", "异常");

       

            }

猜你喜欢

转载自blog.csdn.net/qq_25909453/article/details/81517500