Message 1 of 3
Adding Shared Parameters to Families

Not applicable
07-14-2014
09:43 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Here is what I am trying to add.
1. user would add list of folders which contains all the family files.
2. Get all the files
3. Add parameter to the families
4. I want the shared parameter to be non editable.
Here is the code.
foreach (string li in GVar.rvtFmlyList) { string s = ""; Autodesk.Revit.DB.Document doc; try { //string directory = @"C:\ProgramData\Autodesk\RVT 2014\Libraries\Australia\Columns"; string Def_file = @"C:\Users\raghulang\Desktop\ADVipSecure.txt"; // loop through all files in the directory //check directory exists if (System.IO.Directory.Exists(li)) { foreach (string filename in System.IO.Directory.GetFiles(li)) { //MessageBox.Show("Directory exists!!" + directory + "||" + filename); s += "Family Name,Family Type,"; try { doc = GVar.app.OpenDocumentFile(filename); if (!doc.IsFamilyDocument) { //MessageBox.Show("Not Family" + directory + "||" + filename); //return; // skip any files that are not families } //MessageBox.Show("Family" + directory + "||" + filename); Autodesk.Revit.DB.FamilyManager familyManager = doc.FamilyManager; DefinitionFile defFile = Helper.RevitHelper.SetAndOpenExternalSharedParamFile(GVar.app, Def_file); DefinitionGroups myGroups = defFile.Groups; DefinitionGroup myGroup = myGroups.get_Item("ADVipSecure"); Definitions myDefinitions = myGroup.Definitions; ExternalDefinition eDef = myDefinitions.get_Item("Company Name") as ExternalDefinition; //Family family = Helper.RevitHelper.FindElementByName(doc, typeof(Family), filename) as Family; //MessageBox.Show(family.Name); //Document familyDoc = doc.EditFamily(family); familyManager.AddParameter(eDef, BuiltInParameterGroup.PG_IDENTITY_DATA, true); doc.Close(false); } catch (Autodesk.Revit.Exceptions.ArgumentNullException ae) { MessageBox.Show(ae.ToString()); } catch (Autodesk.Revit.Exceptions.FamilyContextException ae) { MessageBox.Show(ae.ToString()); } catch (Autodesk.Revit.Exceptions.FileAccessException ae) { MessageBox.Show(ae.ToString()); } catch (Autodesk.Revit.Exceptions.FileNotFoundException ae) { MessageBox.Show(ae.ToString()); } catch (Autodesk.Revit.Exceptions.ApplicationException ae) { MessageBox.Show(ae.ToString()); } catch (SystemException ae) { MessageBox.Show(ae.ToString()); } } } else { MessageBox.Show("Directory dont exists!!"); } } catch (SystemException ex) { MessageBox.Show(ex.ToString()); } } trans.Commit(); }
I am getting different erros when trying different things such as follows,
Autodesk.Revit.Exceptions.InvalidOperationException: A sub-transaction can only be active inside an open Transaction.
at Autodesk.Revit.DB.SubTransaction.Start()