Exemplo n.º 1
0
 public static void SetDynamicParameterValue(this BlockReference block, string parameterName, object parameterValue)
 {
     if (block.IsDynamicBlock)
     {
         DynamicBlockReferencePropertyCollection pc   = block.DynamicBlockReferencePropertyCollection;
         DynamicBlockReferenceProperty           prop = pc
                                                        .Cast <DynamicBlockReferenceProperty>()
                                                        .FirstOrDefault(p => p.PropertyName.Equals(parameterName, StringComparison.InvariantCulture));
         if (prop != null)
         {
             if (prop.PropertyTypeCode == (short)DynamicPropertyTypes.Distance)
             {
                 prop.Value = parameterValue;
             }
             else if (prop.PropertyTypeCode == (short)DynamicPropertyTypes.Visibility)
             {
                 object val = prop.GetAllowedValues()
                              .First(n => n.ToString() == parameterValue.ToString());
                 prop.Value = val;
             }
         }
         else
         {
             throw new ArgumentException("No parameter " + parameterName);
         }
     }
 }