Ejemplo n.º 1
0
 public static void SetTitleBlockParameters(Element existingTitleBlock, Element newTitleBlock)
 {
     try
     {
         Autodesk.Revit.DB.FamilyInstance familyInstance1 = existingTitleBlock as Autodesk.Revit.DB.FamilyInstance;
         Autodesk.Revit.DB.FamilyInstance familyInstance2 = newTitleBlock as Autodesk.Revit.DB.FamilyInstance;
         IList <Parameter> orderedParameters = familyInstance1.GetOrderedParameters();
         familyInstance2.GetOrderedParameters();
         foreach (Parameter parameter1 in (IEnumerable <Parameter>)orderedParameters)
         {
             string    name       = parameter1.Definition.Name;
             Parameter parameter2 = familyInstance1.LookupParameter(name);
             Parameter parameter3 = familyInstance2.LookupParameter(name);
             if (parameter3 != null || parameter2 != null)
             {
                 BuiltInParameter parameterId1 = BuiltInParameter.SHEET_NUMBER;
                 Parameter        parameter4   = familyInstance2.get_Parameter(parameterId1);
                 BuiltInParameter parameterId2 = BuiltInParameter.SHEET_NAME;
                 Parameter        parameter5   = familyInstance2.get_Parameter(parameterId2);
                 if (!(parameter3.Definition.Name == parameter4.Definition.Name) && !(parameter3.Definition.Name == parameter5.Definition.Name))
                 {
                     try
                     {
                         if (parameter3.StorageType == StorageType.Double)
                         {
                             parameter3.Set(parameter2.AsDouble());
                         }
                         else if (parameter3.StorageType == StorageType.ElementId)
                         {
                             parameter3.Set(parameter2.AsElementId());
                         }
                         else if (parameter3.StorageType == StorageType.Integer)
                         {
                             parameter3.Set(parameter2.AsInteger());
                         }
                         else if (parameter3.StorageType == StorageType.String)
                         {
                             parameter3.Set(parameter2.AsString());
                         }
                     }
                     catch
                     {
                     }
                 }
             }
         }
     }
     catch
     {
     }
 }