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.