revit二次开发之参数化族类型

创建参数化族类型(脚手杆长度)

因为我是用的族为构建组,并非系统族,在网上并没有找到适合构建族的方法,所以用的方法比较笨

大概方法为自己规定一套命名方法,然后遍历族类型找到同名族类型,若没找到,则先进行复制再参数化,所以要两个方法配合使用才能确保返回需求;

 

 1 protected static FamilySymbol Symbols(Document document, Family family, double railLength,string scaffoldName)
 2 {
 3     FamilySymbol railType = null;
 4     int count = 1;
 5 
 6     foreach (ElementId railId in family.GetFamilySymbolIds()) //遍历每个族类型的族ID
 7     {
 8         railType = document.GetElement(railId) as FamilySymbol; //获取族类型
 9         if (railType != null)
10         {
11             if (railType.Name == scaffoldName + "(" + railLength + "mm" + ")")
12             {
13                 return railType;  //返回需求的族类型
14             }
15             if (count == family.GetFamilySymbolIds().Count())  //当不存在时重新创建族类型
16             {
17                 Transaction transaction = new Transaction(document);
18                 transaction.Start("开始创建新参数化");
19 
20                 ElementType elementType = railType.Duplicate(scaffoldName + "(" + railLength + "mm" + ")"); //复制
21                 ParameterSet Parameters = elementType.Parameters;  //参数集合
22                 foreach (Autodesk.Revit.DB.Parameter lengthParameter in Parameters)
23                 {
24                     if (lengthParameter.Definition.Name == "杆长")
25                     {
26                         if (!lengthParameter.IsReadOnly) //参数是否只读
27                         {
28                             lengthParameter.Set((railLength) / 304.8);
29                         }
30 
31                     }
32 
33                 }
34                 transaction.Commit();
35                 return null;
36             }
37 
38         }
39         count++;
40     }
41 
42     return null;
43 }
 1 public static FamilySymbol ReturnSymbols(Document document, Family family, double Length, string scaffoldName)
 2 {
 3     FamilySymbol railSymbol = Symbols(document, family, Length, scaffoldName);
 4 
 5     if (railSymbol == null)  //此处若运行说明并没有直接找到而是进行了参数化
 6     {
 7         railSymbol = Symbols(document, family, Length, scaffoldName);
 8         return railSymbol;
 9     }
10     else
11     {
12         return railSymbol;
13     }
14 }

 

转载于:https://www.cnblogs.com/xt112233/p/9850681.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Revit是一款专业的BIM软件,它允许用户进行二次开发以满足特定需求。在Revit中,我们可以通过添加参数来扩展的功能和灵活性。 为了添加参数,我们首先需要打开Revit软件并加载我们要进行二次开发文件。然后,我们通过进入编辑器来访问参数。在编辑器中,我们可以找到“参数”按钮,并点击它来添加新的参数。 在“参数”对话框中,我们可以选择不同的参数类型,如整数、文本、长度等等。根据我们的需求,我们可以设置参数的名称、默认值、数据类型和单位。 一旦我们添加了参数,我们可以将其应用于中的特定元素。例如,如果我们想在窗户中添加一个参数用于控制窗户开启方式,我们可以在参数对话框中创建一个文本类型的参数,命名为“开启方式”。 在添加了参数后,我们可以使用Revit API进行二次开发Revit API是一组用于自动化和扩展Revit功能的编程接口。通过使用Revit API,我们可以编写脚本或插件来操作和管理Revit模型。 例如,我们可以使用Revit API编写一个插件,通过读取和修改参数来批量修改模型中的元素。这样,我们就能够根据具体要求自定义和管理参数,实现更高效的模型创建和编辑。 总之,通过Revit二次开发参数的添加,我们能够为Revit软件添加新的功能和灵活性,以满足我们的特定需求。这为我们提供了一个更强大、更个性化的BIM工作流程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值