关于Revit 共享参数的那点事

您所在的位置:网站首页 bim公制常规模型英文版在哪里 关于Revit 共享参数的那点事

关于Revit 共享参数的那点事

2024-07-15 17:14| 来源: 网络整理| 查看: 265

关注公众号及时获取文章更新

根据Autodesk官方的定义,共享参数是参数定义,可用于多个族或项目中。 它最牛掰的功能在于可以直接在项目文档里给族添加参数  >>>>  就是这么简单粗暴,来我们一起了解一下Revit 中这个神奇的参数定义功能!

目录

 1. 共享参数的概念

2. 操作方法

3. 代码实现

4. 注意事项

 1. 共享参数的概念

刚才已经提到过了共享参数是用于参数定义的,而且它不仅可以在族文档中定义参数,还可以在项目文档中再定义参数,简直逆天!不仅如此,它的作用对象是族类别(注意不是族类型,族类别包括:墙啊、结构柱啊、公制常规模型等等),这些参数随后可以用于创建明细表,这是一般参数没有的待遇呀!最重要的是,共享参数定义保存在与任何族文件或 Revit 项目不相关的txt文件中,这样就可以从其他族或项目中访问此文件,不用重复定义啦!

话不多说,直接上效果图!

2. 操作方法

(1)首先你得找到“共享参数”的功能按钮在哪吧

它位于“管理”面板下,和Dynamo大兄弟在一个面板下哦!

(2) 创建共享参数定义文件

点击创建按钮,选择文件保存的路径,如果有已经定义好的文件直接浏览即可。

(3) 创建参数组,方便对参数的管理。

(4) 新建一个参数作为测试,我这边取了一个“MyDefinition”的文字类型参数。

(5)点击“确定”之后,在管理面板下打开“项目参数”

(6)添加参数,参数类型为“共享参数”,点击进行参数选择

 选择“MyGroup”参数组下的参数定义,并确定。

 设定共享参数的类型和参数的分组位置!

(7) 添加共享参数的作用类别,可多选。

(8)确定之后,验证是否成功,查看常规模型是否存在名为“MyDefinition”的文字类型参数。

3. 代码实现 private void CreateSharInfo(Application revitApp, Document revitDoc) { try { string sharedParametersFilename = @"C:\Users\炳勇\OneDrive\桌面\shared-parameters.txt"; string groupName = "MyGroup"; string definitionName = "MyDefinition"; ParameterType parameterType = ParameterType.Text; CategorySet categorySet = new CategorySet(); Category wallCategory = revitDoc.Settings.Categories.get_Item(BuiltInCategory.OST_GenericModel); categorySet.Insert(wallCategory); bool instanceParameter = true; BuiltInParameterGroup parameterGroup = BuiltInParameterGroup.PG_DATA; if (!System.IO.File.Exists(sharedParametersFilename)) { try { System.IO.StreamWriter sw = System.IO.File.CreateText(sharedParametersFilename); sw.Close(); } catch (Exception) { throw new Exception(string.Format("Can't create shared parameter file:{0}", sharedParametersFilename)); } } revitApp.SharedParametersFilename = sharedParametersFilename; DefinitionFile definitionFile = revitApp.OpenSharedParameterFile(); if (definitionFile == null) { throw new Exception("Can not open shared parameter file"); } DefinitionGroups groups = definitionFile.Groups; DefinitionGroup group = groups.get_Item(groupName); if (group == null) { group = groups.Create(groupName); } Definition definition = group.Definitions.get_Item(definitionName); if (definition == null) { definition = group.Definitions.Create(new ExternalDefinitionCreationOptions(definitionName, parameterType)); } ElementBinding binding = null; if (instanceParameter) { binding = revitApp.Create.NewInstanceBinding(categorySet); } else { binding = revitApp.Create.NewTypeBinding(categorySet); } bool insertSuccess = revitDoc.ParameterBindings.Insert(definition, binding, parameterGroup); if (!insertSuccess) { throw new Exception("Failed to bind definition to category"); } } catch (Exception ex) { throw ex; } } 4. 注意事项 共享参数不仅可以通过代码进行创建,还能提取并赋值,修改方法可参照其他类型参数更改的代码:Revit API 修改项目文档中族参数的几个要点;新建共享参数文件时,必须采用unicode编码,否则系统无法识别;共享参数的定义文件删除后,并不会影响到已经添加到模型中的参数;好像没有什么要注意的了!

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3