revit二次开发获取基本参数

UIDocument uidoc = commandData.Application.ActiveUIDocument;
            Document doc = uidoc.Document;
            //获取选择的元素,讲元素转成列表形式
            var elemList = uidoc.Selection.GetElementIds().ToList();
            //取得列表第一个元素
            Element elem = doc.GetElement(elemList[0]);
            //获取元素的类型
            ElementType type = doc.GetElement(elem.GetTypeId()) as ElementType;
            string str = "元素族名称:" + type.FamilyName + "/n" + "元素类型:" + type.Name;


            //参数获取
            // 方法一:利用LookupParameter,参数为参数名称,如果选择元素找不到参数就会报错; 
            Parameter p = elem.LookupParameter("面积");
            string ps = p.AsValueString(); //此方法会输出公制单位

            //string ps = p.AsDouble().ToString(); 此方法会输出英制单位。

下表是提取的4平米楼板的参数。所以在查询参数前宜先查下此参数的一些相关参数。如果提取注释参数需要用asString。一般根据storagetype来决定用哪一种storagetype的枚举值。


            // 方法二:利用get_Parameter,参数为定义参数,如果选择元素找不到参数就会报错; 
            Parameter p1 = elem.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED);
            string p1s = p1.AsValueString();


            // 方法三:首先找出所有参数,再查找。 
            ParameterSet pp = elem.Parameters;
            Parameter p2 = null;
            foreach (Parameter p3 in pp)
            {
                if (p3.Definition.ParameterType==ParameterType.Area)
                {
                    p2 = p3;
                }
            }
            string p2s = p2.AsValueString();
            TaskDialog.Show("1",ps );

猜你喜欢

转载自blog.csdn.net/weixin_42479664/article/details/80896494