BIMnotes

Revit二次开发:族参数绑定

2020-08-14  本文已影响0人  BIMnotes

在写异形柱转化功能的时候,想在族里面加一个材质的参数,并且将这个参数绑定在模型上。

效果如下:


参数绑定

代码如下:

        /// <summary>
        /// 绑定材质参数
        /// </summary>
        /// <param name="faDoc"></param>
        /// <param name="extrusion"></param>
        private static void BindParam(Document faDoc, Extrusion extrusion)
        {
            var faManager = faDoc.FamilyManager;
            // 添加材质参数
            // var materialFamilyPara = faManager.AddParameter("结构材质", BuiltInParameterGroup.PG_MATERIALS, ParameterType.Material, false);

            // 获取族材质参数
            var materialFamilyPara = faManager.get_Parameter(BuiltInParameter.STRUCTURAL_MATERIAL_PARAM);
            
            // 获取元素材质参数
            var materialElementPara = extrusion.get_Parameter(BuiltInParameter.MATERIAL_ID_PARAM);

            // 关联参数
            using (Transaction ts=new Transaction(faDoc, "BindingParameter"))
            {
                ts.Start();
                var materialID = new FilteredElementCollector(faDoc).OfCategory(BuiltInCategory.OST_Materials).Select(e=>e.Id).FirstOrDefault();
                if (materialID == null)
                    return;
                faManager.Set(materialFamilyPara, materialID);

                if (faManager.CanElementParameterBeAssociated(materialElementPara))
                {
                    TaskDialog.Show("test", "element:" + materialElementPara.Definition.Name + "\nfamily:" + materialFamilyPara.Definition.Name);
                    faManager.AssociateElementParameterToFamilyParameter(materialElementPara, materialFamilyPara);
                }
                ts.Commit();
            }
           
        }

三个小问题需要注意下:

上一篇 下一篇

猜你喜欢

热点阅读