static private bool ExportFamily(KeyValuePair <string, List <Element> > familyElements, ref Va3cContainer.Va3cObject categoryObject) { if (familyElements.Value.Count == 0) { return(false); } Va3cContainer.Va3cObject familyObject = new Va3cContainer.Va3cObject(); familyObject.uuid = StringConverter.NewGuid(); familyObject.type = "Family"; familyObject.name = familyElements.Key; Dictionary <string, List <Element> > familySymbolElementsDic = new Dictionary <string, List <Element> >(); List <Element> noFamilySymbolElementsList = new List <Element>(); foreach (Element element in familyElements.Value) { string familySymbolName; if (GetElementFamilySymbolName(element, out familySymbolName)) { if (familySymbolElementsDic.ContainsKey(familySymbolName)) { familySymbolElementsDic[familySymbolName].Add(element); } else { familySymbolElementsDic.Add(familySymbolName, new List <Element> { element }); } } else { noFamilySymbolElementsList.Add(element); } } ExportFamilySymbols(familySymbolElementsDic, ref familyObject); foreach (Element element in noFamilySymbolElementsList) { if (!ElementExporter.ExportElement(element, ref familyObject)) { /*log*/ } } if (familyObject.children.Count > 0) { categoryObject.children.Add(familyObject); } return(true); }
static private bool ExportFamilySymbol(KeyValuePair <string, List <Element> > familySymbolElements, ref Va3cContainer.Va3cObject familyObject) { Va3cContainer.Va3cObject familySymbolObject = new Va3cContainer.Va3cObject(); familySymbolObject.uuid = StringConverter.NewGuid(); familySymbolObject.type = "Family Symbol"; familySymbolObject.name = familySymbolElements.Key; foreach (Element element in familySymbolElements.Value) { if (!ElementExporter.ExportElement(element, ref familySymbolObject)) { /*log*/ } } if (familySymbolObject.children.Count > 0) { familyObject.children.Add(familySymbolObject); } return(true); }
static private bool ExportCategory(KeyValuePair <ElementId, List <Element> > categoryElements, ref Va3cContainer.Va3cObject rootObject, Document activeDocument) { if (categoryElements.Value.Count == 0) { return(false); } Va3cContainer.Va3cObject categoryObject = new Va3cContainer.Va3cObject(); categoryObject.uuid = StringConverter.NewGuid(); categoryObject.type = "Category"; Category category = Category.GetCategory(activeDocument, categoryElements.Key); if (category == null) { categoryObject.name = "无类别"; } else { categoryObject.name = category.Name; } Dictionary <string, List <Element> > familyElementsDic = new Dictionary <string, List <Element> >(); List <Element> noFamilyElementsList = new List <Element>(); foreach (Element element in categoryElements.Value) { string familyName; if (GetElementFamilyName(element, out familyName)) { if (familyElementsDic.ContainsKey(familyName)) { familyElementsDic[familyName].Add(element); } else { familyElementsDic.Add(familyName, new List <Element> { element }); } } else { noFamilyElementsList.Add(element); } } FamilyExporter.ExportFamilys(familyElementsDic, ref categoryObject); foreach (Element element in noFamilyElementsList) { if (!ElementExporter.ExportElement(element, ref categoryObject)) { /*log*/ } } if (categoryObject.children.Count > 0) { rootObject.children.Add(categoryObject); } return(true); }