Example #1
0
        /// <summary>
        /// 向属性树的第三层插放数据
        /// </summary>
        /// <param name="parameterset"></param>
        private void InsertThrParam(Element elem, ParamTree Tree, ParameterSet parameter)
        {
            foreach (Parameter param in parameter)
            {
                if (param == null)
                {
                    continue;                //如果参数没有,继续下一个
                }
                //定位第二层
                ParamTree tmptree = Tree.GetChildNodesByName(LabelUtils.GetLabelFor(param.Definition.ParameterGroup));

                string sb = "";

                switch (param.StorageType)
                {
                case Autodesk.Revit.DB.StorageType.Double:
                    sb += param.AsValueString();
                    break;

                case Autodesk.Revit.DB.StorageType.Integer:
                    sb += param.AsInteger().ToString();
                    break;

                case Autodesk.Revit.DB.StorageType.ElementId:
                    sb += (elem != null ? param.AsValueString() : "Not set");
                    break;

                case Autodesk.Revit.DB.StorageType.String:
                    sb += param.AsString();
                    break;

                case Autodesk.Revit.DB.StorageType.None:
                    sb += param.AsValueString();
                    break;

                default:
                    break;
                }
                //循环添加第三层数据
                tmptree.AddChildNodes(new ParamTree("3", param.Definition.Name, sb));
            }
        }
Example #2
0
        /// <summary>
        /// 制作单个构件的属性树
        /// </summary>
        /// <param name="parametergroup"></param>
        private ParamTree MakeParamTree(Element elem, List <string> parametergroup)
        {
            //第一层根节点的名字构件的Id
            ParamTree Tree = new ParamTree("1", elem.UniqueId.ToString());

            //第二层
            foreach (string str in parametergroup)
            {
                Tree.AddChildNodes(new ParamTree("2", str));
            }
            //得到每个属性的属性类别,然后查找到第二层的节点
            ParameterSet parameters = elem.Parameters;//获取单个元素的全部属性;

            //获取类型属性:
            ParameterSet parameters2 = GetParamSet(elem);


            InsertThrParam(elem, Tree, parameters);
            InsertThrParam(elem, Tree, parameters2);

            return(Tree);
        }