public List <QLFabricationService> GetFabServices(IResolveFieldContext context, string[] nameFilter = null) { Document _doc = ResolverEntry.Doc; var stuff = ResolverEntry.aRevitTask.Run <List <QLFabricationService> >(app => { var fabricationConfiguration = FabricationConfiguration.GetFabricationConfiguration(_doc); var objectList = fabricationConfiguration.GetAllServices(); var nameFilterStrings = nameFilter != null ? nameFilter.ToList() : new List <string>(); var qlFabricationPartsField = GraphQlHelpers.GetFieldFromContext(context, "qlFabricationParts"); var returnObject = new ConcurrentBag <QLFabricationService>(); //Parallel.ForEach(stringList, aFamilyCategoryName => foreach (var aFabricationService in objectList) { if (nameFilterStrings.Count == 0 || nameFilterStrings.Contains(aFabricationService.Name)) { var qlFabricationService = new QLFabricationServiceResolve(aFabricationService, qlFabricationPartsField); returnObject.Add(qlFabricationService); } } return(returnObject.OrderBy(x => x.name).ToList()); }).Result; return(stuff); }
public List <QLAssembly> GetAssemblies(IResolveFieldContext context, string[] nameFilter = null) { Document _doc = ResolverEntry.Doc; //https://github.com/jeremytammik/TraverseAllSystems/blob/master/TraverseAllSystems/Command.cs var objectList = new FilteredElementCollector(_doc).OfClass(typeof(AssemblyInstance)); //.Select(x=>x as MEPSystem).ToList<MEPSystem>(); var nameFilterStrings = nameFilter != null?nameFilter.ToList() : new List <string>(); var qlFieldViews = GraphQlHelpers.GetFieldFromContext(context, "hasViews"); var qlElementCollectionField = GraphQlHelpers.GetFieldFromContext(context, "qlElementCollection"); List <View> viewListing = null; if (qlFieldViews != null) { viewListing = new FilteredElementCollector(ResolverEntry.Doc) .OfCategory(BuiltInCategory.OST_Views) .WhereElementIsNotElementType() .Cast <View>().ToList(); } var returnObject = new ConcurrentBag <QLAssembly>(); //Parallel.ForEach(stringList, aFamilyCategoryName => foreach (AssemblyInstance aAssembly in objectList) { if (nameFilterStrings.Count == 0 || nameFilterStrings.Contains(aAssembly.Name)) { var qlMepSystem = new QLAssemblyResolve(aAssembly, qlFieldViews, viewListing, qlElementCollectionField); returnObject.Add(qlMepSystem); } } return(returnObject.OrderBy(x => x.name).ToList()); }
public List <QLFamilyCategory> GetCategories(IResolveFieldContext context, string[] nameFilter = null) { Document _doc = ResolverEntry.Doc; List <Category> objectList = new FilteredElementCollector(_doc).OfClass(typeof(Family)).Select(x => (x as Family).FamilyCategory).GroupBy(x => x.Id.ToString()).Select(x => x.First()).ToList(); //var stringList = objectList.Select(x => x.Name).OrderBy(x => x).Distinct().ToList(); //https://thebuildingcoder.typepad.com/blog/2010/05/categories.html //var objectList = _doc.Settings.Categories; var nameFilterStrings = nameFilter != null?nameFilter.ToList() : new List <string>(); var qlFamiliesField = GraphQlHelpers.GetFieldFromContext(context, "qlFamilies"); var qlFamilyInstancesField = GraphQlHelpers.GetFieldFromContext(context, "qlFamilyInstances"); var returnObject = new ConcurrentBag <QLFamilyCategory>(); //Parallel.ForEach(stringList, aFamilyCategoryName => foreach (Category aCategory in objectList) { if (nameFilterStrings.Count == 0 || nameFilterStrings.Contains(aCategory.Name)) { var qlFamilyCategory = new QLFamilyCategoryResolve(aCategory, qlFamiliesField, qlFamilyInstancesField); returnObject.Add(qlFamilyCategory); } } return(returnObject.OrderBy(x => x.name).ToList()); }
public QLElementCollection GetSelection(IResolveFieldContext context, string[] nameFilter = null) { Document _doc = ResolverEntry.Doc; UIDocument _uidoc = ResolverEntry.UiDoc; Selection selection = _uidoc.Selection; var qlFamilyInstancesField = GraphQlHelpers.GetFieldFromContext(context, "qlFamilyInstances"); var qlFabricationPartsField = GraphQlHelpers.GetFieldFromContext(context, "qlFabricationParts"); ICollection <ElementId> elementIds = selection.GetElementIds(); QLElementCollection qlElementCollection = new QLElementCollectionResolve(elementIds, qlFamilyInstancesField, qlFabricationPartsField); return(qlElementCollection); }
public List <QLViewSchedule> GetViewSchedules(IResolveFieldContext context, string[] nameFilter = null) { Document _doc = ResolverEntry.Doc; var scheduleList = new FilteredElementCollector(_doc).OfClass(typeof(ViewSchedule)).Select(p => (ViewSchedule)p).Where(x => !x.Name.Contains("Revision Schedule")).ToList(); var nameFilterStrings = nameFilter != null?nameFilter.ToList() : new List <string>(); var qlViewScheduleData = GraphQlHelpers.GetFieldFromContext(context, "qlViewScheduleData"); var returnObject = new ConcurrentBag <QLViewSchedule>(); //Parallel.ForEach(objectList, aFamily => foreach (var aViewSchedule in scheduleList) { if (nameFilterStrings.Count == 0 || nameFilterStrings.Contains(aViewSchedule.Name)) { var qlViewScheudle = new QLViewScheduleResolve(aViewSchedule, qlViewScheduleData); returnObject.Add(qlViewScheudle); } } return(returnObject.OrderBy(x => x.name).ToList()); }
public List <QLFamily> GetFamilies(IResolveFieldContext context, string[] nameFilter = null) { Document _doc = ResolverEntry.Doc; List <Family> objectList = new FilteredElementCollector(_doc).OfClass(typeof(Family)).Select(x => (x as Family)).ToList(); var nameFilterStrings = nameFilter != null?nameFilter.ToList() : new List <string>(); var qlFamilySymbolsField = GraphQlHelpers.GetFieldFromContext(context, "qlFamilySymbols"); var qlFamilyInstancesField = GraphQlHelpers.GetFieldFromContext(context, "qlFamilyInstances"); var returnObject = new ConcurrentBag <QLFamily>(); //Parallel.ForEach(objectList, aFamily => foreach (var aFamily in objectList) { if (nameFilterStrings.Count == 0 || nameFilterStrings.Contains(aFamily.Name)) { var qlFamily = new QLFamilyResolve(aFamily, qlFamilySymbolsField, qlFamilyInstancesField); returnObject.Add(qlFamily); } } return(returnObject.OrderBy(x => x.name).ToList()); }