下载app免费领取会员
根据Autodesk官方的定义,共享参数是参数定义,可用于多个族或项目中。它最牛掰的功能在于可以直接在项目文档里给族添加参数>>>>就是这么简单粗暴,来我们一起了解一下Revit中这个神奇的参数定义功能!
1.共享参数的概念
刚才已经提到过了共享参数是用于参数定义的,而且它不仅可以在族文档中定义参数,还可以在项目文档中再定义参数,简直逆天!不仅如此,它的作用对象是族类别(注意不是族类型,族类别包括:墙啊、结构柱啊、公制常规模型等等),这些参数随后可以用于创建明细表,这是一般参数没有的待遇呀!最重要的是,共享参数定义保存在与任何族文件或Revit项目不相关的txt文件中,这样就可以从其他族或项目中访问此文件,不用重复定义啦!
话不多说,直接上效果图!
2.操作方法
(1)首先你得找到“共享参数”的功能按钮在哪吧
它位于“管理”面板下,和Dynamo大兄弟在一个面板下哦!
(2)创建共享参数定义文件
点击创建按钮,选择文件保存的路径,如果有已经定义好的文件直接浏览即可。
(3)创建参数组,方便对参数的管理。
(4)新建一个参数作为测试,我这边取了一个“MyDefinition”的文字类型参数。
(5)点击“确定”之后,在管理面板下打开“项目参数”
(6)添加参数,参数类型为“共享参数”,点击进行参数选择
选择“MyGroup”参数组下的参数定义,并确定。
设定共享参数的类型和参数的分组位置!
(7)添加共享参数的作用类别,可多选。
(8)确定之后,验证是否成功,查看常规模型是否存在名为“MyDefinition”的文字类型参数。
3.代码实现
private void SharInfo(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.(wallCategory);
bool instanceParameter = true;
BuiltInParameterGroup parameterGroup = BuiltInParameterGroup.PG_DATA;
if (!System.IO.File.Exists(sharedParametersFilename))
{
try
{
System.IO.StreamWriter sw = System.IO.File.Text(sharedParametersFilename);
sw.Close();
}
catch (Exception)
{
throw new Exception(string.Format("Can't 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.(groupName);
}
Definition definition = group.Definitions.get_Item(definitionName);
if (definition == null)
{
definition = group.Definitions.(new ExternalDefinitionCreationOptions(definitionName, parameterType));
}
ElementBinding binding = null;
if (instanceParameter)
{
binding = revitApp..NewInstanceBinding(categorySet);
}
else
{
binding = revitApp..NewTypeBinding(categorySet);
}
bool Success = revitDoc.ParameterBindings.(definition, binding, parameterGroup);
if (!Success)
{
throw new Exception("Failed to bind definition to category");
}
}
catch (Exception ex)
{
throw ex;
}
}
4.注意事项
共享参数不仅可以通过代码进行创建,还能提取并赋值,修改方法可参照其他类型参数更改的代码:RevitAPI修改项目文档中族参数的几个要点;
共享参数的定义文件删除后,并不会影响到已经添加到模型中的参数;
好像没有什么要注意的了!
Revit中文网作为国内知名BIM软件培训交流平台,几十万Revit软件爱好者和你一起学习Revit,不仅仅为广大用户提供相关BIM软件下载与相关行业资讯,同时也有部分网络培训与在线培训,欢迎广大用户咨询。
网校包含各类BIM课程320余套,各类学习资源270余种,是目前国内BIM类网校中课程最有深度、涵盖性最广、资源最为齐全的网校。网校课程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等几十种BIM相关软件的教学课程,专业涵盖土建、机电、装饰、市政、后期、开发等多个领域。
需要更多BIM考试教程或BIM视频教程,可以咨询客服获得更多免费Revit教学视频。
本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。
上一篇:CAD教程 | 如何使用三点在CAD2023中创建圆形