Revit开发之设置族参数的值

3 篇文章 0 订阅
族参数的值是关联于族类型的,在每个族类型中都储存了各自类型的参数值,使用API以实现读写族参数的值,读写方法略有不同。

(1)读取参数值
Autodesk. Revit. DB. FamilyType 类:
• double? AsDouble(FamilyParameter familyParameter)
Elementld AsElementId(FamilyParameter familyParameter)
int? AsInteger(FamilyParameter familyParameter)
string AsString(FamilyParameter familyParameter)
string AsVaiueString(FamilyParameter familyParameter)

与在工程文件里面读取参数的方式类似,族参数有四种存储类型,所以有四种对应的读取函数;而AsValueString函数可以得到参数值的可视字符串。
唯一不同的是,族参数是绑定到族类型的,需要先从族管理类中得到族类型和族参数,再来得到该参数在该类型上对应的值。

(2)设置参数值
Autodesk. Revit. DB. FamilyManager 类:
void Set(FamilyParameter familyParameter,double value)
void Set(FamilyParameter familyParameter, ElementId value)
void Set(FamilyParameter familyParameter, int value)
void Set(FamilyParameter familyParameter, string value)

和读取族参数不同,设置族参数的方法在族管理类内,而需要的输入参数只有族参数和参数的值。前面提到,一个族参数的值对应于一个族类型的,所以该函数设置的值到当前族类型的,这个功能和UI上的一致。

读写族参数的要求和工程文档中的读写参数的要求相同。

注意:在设置族参数的值以前,必须确保当前族类型是存在的。

public void SetFamilyParameterValue( 
    FamilyManager familyMgr, FamilyParameter lengthPara, 
    FamilyParameter commentPara, FamilyParameter IntPara, 
    FamilyParameter materialPara, ElementId newMaterialId) 
{ 
    // 首先需要判断当前族类型是否存在,如果不存在,读写族参数都是不可行的 
    FamilyType currentType = familyMgr.CurrentType; 
    if (null == currentType) 
                return; 
 
    // 读写长度类型的族参数;他的储存类型为double 
    double length = currentType.AsDouble(lengthPara).Value; 
    familyMgr.Set(lengthPara, length + 1.25); 
 
    // 读写文字类型的族参数;他的储存类型为string 
    string comment = currentType.AsString(commentPara); 
    familyMgr.Set(commentPara, "新的注释"); 
 
    // 读写整数类型的族参数;他的储存类型为int 
    int integerVale = currentType.AsInteger(IntPara).Value; 
    familyMgr.Set(IntPara, integerVale + 3); 
 
    // 读写材质类型的族参数;他的储存类型为ElementId 
    ElementId materialId = currentType.AsElementId(materialPara); 
    familyMgr.Set(materialPara, newMaterialId); 
 
    // 您可以读写族参数的可视化文字表示的值 
    string lengthText = currentType.AsValueString(lengthPara); 
    familyMgr.SetValueString(lengthPara, "10m"); 
}

=========【更多高级应用请关注公众号】========


==================================




  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值