private List<FamilySymbol> GetFamilySymbols(ExportedDataType exportedDataType)
        {
            List<FamilySymbol> symbols;

            if (Enum.IsDefined(typeof(BuiltInCategory), exportedDataType.RevitFamilyId))
                symbols = GetSymbolsForCategory((BuiltInCategory)exportedDataType.RevitFamilyId);
            else
                symbols = GetSymbolsForCategory(BuiltInCategory.OST_LightingDevices);
            return symbols;
        }
 private static void SetFullyEqualSymbolAsSelectedIfExists(FamilySelectorViewModel newModel,
                                                           ExportedDataType exportedDataType)
 {
     foreach (var familySymbol in newModel.FamilySymbolsList.Select(fs => fs))
     {
         if (CompareFields(exportedDataType.Fields, familySymbol))
         {
             newModel.SelectedSymbol = familySymbol;
             newModel.CreateCopy = false;
             return;
         }
     }
 }
 private static void SetSuitableTemplateType(FamilySelectorViewModel newModel, ExportedDataType exportedDataType)
 {
     foreach (var familySymbol in newModel.FamilySymbolsList)
     {
         var templateParam = familySymbol.Item1.get_Parameter("TemplateType");
         if (templateParam != null && templateParam.AsInteger() != 0)
         {
             if (CompareFields(exportedDataType.Fields.Where(field => field.IsTemplate), familySymbol))
             {
                 newModel.SelectedSymbol = familySymbol;
                 newModel.CreateCopy = true;
                 return;
             }
         }
     }
 }
        public void UpdateFamilySymbolType(FamilySymbol symbol, ExportedDataType dataType)
        {
            var defFile = CreateOrGetSharedOptionsFile();
            using (var trans = new Transaction(m_revitDoc.Document,"addParams"))
            {
                trans.Start();

                foreach (var field in dataType.Fields)
                {
                    var param = symbol.get_Parameter(field.Name);
                    if (param == null)
                    {
                        CreateAndBindParam(defFile,symbol.Category, field.Name);
                        param = symbol.get_Parameter(field.Name);
                    }
                    param.Set(field.Value);
                }
                trans.Commit();
            }
        }