您的位置:首页 > 其它

Revit二次开发之判断一个族实例是否基于面创建【比目鱼原创】

2017-03-03 09:10 344 查看
=========【更多高级应用请关注公众号】========



===================================
Revit中有些族是不基于面创建,有些族是基于面创建(如环形吸顶灯等),这时候需要查看该Family的属性【基于工作平面】这个参数进行判断,可以使用lookup查询到FamilyInstance的主体Family,然后在Parameters里查看。



【判断一个FamilyInstance基于面创建的参数,可以使用以下代码查看】

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Autodesk.Revit.DB.Structure;

using Autodesk.Revit.DB.Events;

using Autodesk.Revit.DB;

using Autodesk.Revit.ApplicationServices;

using Autodesk.Revit.Attributes;

using Autodesk.Revit.UI;

using Autodesk.Revit.DB.Plumbing;

using Autodesk.Revit.UI.Selection;

namespace Test_isFamilyInFace

{

    [TransactionAttribute(TransactionMode.Manual)]

    public class Class1 : IExternalCommand

    {

        Reference pickedRef = null;

        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)

        {

            Document doc = commandData.Application.ActiveUIDocument.Document;

            UIApplication uiApp = commandData.Application;

            Selection sel = uiApp.ActiveUIDocument.Selection;

            pickedRef = sel.PickObject(ObjectType.Element, "Please select 1");

            Element elem1 = doc.GetElement(pickedRef);

            FamilyInstance fi = elem1 as FamilyInstance;

            FamilySymbol fs = fi.Symbol;

            Family f1 = fs.Family;

            int a = f1.get_Parameter(BuiltInParameter.FAMILY_HOSTING_BEHAVIOR).AsInteger();

            string s = HostName(a);

            TaskDialog.Show("结果:", "主体编号:" + a.ToString() + "\r" + s);

            return Result.Succeeded;

        }

        public string HostName(int a)

        {

            string s = "找不到属性";

            switch (a)

            {

                case 0:

                    return s = "族不基于面";

                case 1:

                    return s = "基于墙的";

                case 2:

                    return s = "基于Floor(楼板的)";

                case 3:

                    return s = "基于吊顶";

                case 5:

                    return s = "基于Face的";

                default:

                    return s = "找不到属性";

                 

            }

}

}

}

转载请复制以下信息:
原文链接: 
作者:  BIM_er

BIM_er
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐