Revit二次开发Element:Parameters Property

对于Revit拾取到的一个构件,使用Parameters得到的参数:(实例参数集合)
以下为取得参数及参数值的简单代码:

 public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
    {
        UIDocument uiDoc = commandData.Application.ActiveUIDocument;
        Document doc = uiDoc.Document;
        Element element = doc.GetElement(uiDoc.Selection.PickObject(ObjectType.Element,"Pick an object"));
        
        StringBuilder sb = new StringBuilder();
        foreach (Parameter param in element.Parameters)
        {
            sb.AppendLine(GetParameterInformation(param,doc));
        }
        TaskDialog.Show("Infor",sb.ToString());
        return Result.Succeeded;
    }

    string GetParameterInformation(Parameter param, Document doc)
    {
        string defName = param.Definition.Name + ":"; ;
        string defValue = string.Empty;
        switch (param.StorageType)
        {
            case StorageType.Double:
                //defValue = UnitUtils.ConvertFromInternalUnits(param.AsDouble(), param.DisplayUnitType).ToString();
                defValue = param.AsValueString();
                break;
            case StorageType.ElementId:
                ElementId id = param.AsElementId();
                if (id.IntegerValue >= 0)
                {
                    defValue = doc.GetElement(id).Name;
                }else
                {
                    defValue = id.IntegerValue.ToString();
                }
                break;
            case StorageType.Integer:
                if (param.Definition.ParameterType == ParameterType.YesNo)
                {
                    if (param.AsInteger() == 0)
                    {
                        defValue = "false";
                    }
                    else
                    {
                        defValue = "true";
                    }
                }else
                {
                    defValue = param.AsInteger().ToString();
                }
                break;
            case StorageType.String:
                defValue = param.AsString();
                break;
            default:
                defValue = param.AsValueString();
                break;
        }
        return defName + defValue;
    }
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值