Message 1 of 9

Not applicable
09-23-2014
12:43 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello!
We are developing a solution that uploads Revit Family files to DMS server. First we added a few shared parameters that have the information of DMS record to our families.
if (doc.IsFamilyDocument) { Family f = doc.OwnerFamily; FamilyManager manager = doc.FamilyManager;
//Check if parameters have already been added to Family and it's Symbols.
//If not then adding parameters using Transaction. if (manager.get_Parameter("DMS_DOCNUMBER") == null) { using (Transaction trans = new Transaction(doc, "PARAM_SET")) { trans.Start(); manager.AddParameter("DMS_DOCNUMBER", BuiltInParameterGroup.PG_IDENTITY_DATA, ParameterType.Text, true); manager.AddParameter("DMS_DOCVERSION", BuiltInParameterGroup.PG_IDENTITY_DATA, ParameterType.Text, true); manager.AddParameter("DMS_DOCTYPE", BuiltInParameterGroup.PG_IDENTITY_DATA, ParameterType.Text, true); manager.AddParameter("DMS_DOCPART", BuiltInParameterGroup.PG_IDENTITY_DATA, ParameterType.Text, true); trans.Commit(); } }
//Create FamilyParameter reference objects after parameters have been added or checked if added FamilyParameter docnr = manager.get_Parameter("DMS_DOCNUMBER"); FamilyParameter docvers = manager.get_Parameter("DMS_DOCVERSION"); FamilyParameter doctype = manager.get_Parameter("DMS_DOCTYPE"); FamilyParameter docpart = manager.get_Parameter("DMS_DOCPART");
//Setting parameter values for every Symbol in the family foreach (FamilyType ft in manager.Types) { if (!MaterialHasDocument(ft, manager)) { DocumentObj docObj = CreateDMSDocument("RVT"); using (Transaction trans = new Transaction(doc, "SET_PARAM")) { trans.Start(); manager.CurrentType = ft; manager.Set(docnr, docObj.docNumber); manager.Set(docvers, docObj.docVersion); manager.Set(doctype, docObj.docType); manager.Set(docpart, docObj.docPart); trans.Commit(); }
//This is where we upload the .rfa file
//MANY MANY ERRORS UploadOriginal(docObj, f, doc); } } } else { TaskDialog.Show("Info", "Family view not open."); }
Everything works as it should up until UploadOriginal method call.
string path = Path.GetTempPath(); string name = family.Name; string fName = name + ".rfa"; string fPath = path + fName;
//Revit throws an error on this line saying that Family is not editable
//What could cause this mayhem?
//To upload .rfa Family file I need to save it as a file first and that's what I try to do until mighty ERROR occurs Document famDoc = doc.EditFamily(family); famDoc.SaveAs(fPath); famDoc.Close(false); //application related code following...
What could be the reason of this error? How could I fix it? Must it be overwritten like a baus (BOSS)?
Solved! Go to Solution.