revit 设置参数和获取参数值
设置参数
// 获取长度参数L
Parameter paramL = selectedElement.LookupParameter("L");
if (paramL == null)
{
    message = "所选图元不包含参数L";
    trans.RollBack();
    return Result.Failed;
}
if (paramL.IsReadOnly)
{
    message = "参数L为只读,无法修改";
    trans.RollBack();
    return Result.Failed;
}
// 验证参数类型
if (paramL.Definition.ParameterType != ParameterType.Length)
{
    message = "参数L不是长度类型参数";
    trans.RollBack();
    return Result.Failed;
}
// 将毫米转换为英尺(内部单位)
double valueInFeet = UnitUtils.ConvertToInternalUnits(1008, DisplayUnitType.DUT_MILLIMETERS);
// 设置参数值
paramL.Set(valueInFeet);获取参数--长度
ParameterSet parameters = element.Parameters;
foreach (Parameter parameter in parameters)
{
   if(parameter.Definition.Name == "长度" && parameter.StorageType == StorageType.Double)
   {
      double length = parameter.AsDouble();
      // 使用length
      break;
   }
}builit in paremeter获取参数 -长度
Wall wall = null;
Parameter parameterLength = wall.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH);
if (parameterLength != null && parameterLength.StorageType == StorageType.Double)
{
   double length = parameterLength.AsDouble();
   // 使用length
}获取类别与参数的绑定
BindingMap map = RevitDoc.ParameterBindings;
DefinitionBindingMapIterator dep = map.ForwardIterator();
while (dep.MoveNext())
{
   Definition definition = dep.Key;
   // 获取参数定义的基本信息
   string definitionName = definition.Name;
   ParameterType parameterType = definition.ParameterType;
   // 几乎都可以转型为InstanceBinding,笔者没有碰到过其他情况,如有例外,请联系我们。
   InstanceBinding instanceBinding = dep.Current as InstanceBinding;
   if (instanceBinding != null)
   {
      // 获取绑定的类别列表
      CategorySet categorySet = instanceBinding.Categories;
   }
} 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号