public QLFabricationServiceResolve(FabricationService _fabService, Field qlFabricationPartsField) { id = _fabService.ServiceId.ToString(); name = _fabService.Name; if (qlFabricationPartsField != null) { Autodesk.Revit.DB.Document _doc = ResolverEntry.Doc; List <FabricationPart> objectList = new FilteredElementCollector(_doc).OfClass(typeof(FabricationPart)). Select(x => (x as FabricationPart)).Where(x => x.ServiceId.ToString() == id).ToList(); var nameFiltersContained = GraphQlHelpers.GetArgumentStrings(qlFabricationPartsField, "nameFilter"); var queryFieldForParameters = GraphQlHelpers.GetFieldFromSelectionSet(qlFabricationPartsField, "qlParameters"); qlFabricationParts = new List <QLFabricationPart>(); foreach (FabricationPart aFabPart in objectList) { if (nameFiltersContained.Count == 0 || nameFiltersContained.Contains(aFabPart.Name)) { qlFabricationParts.Add(new QLFabricationPartResolve(aFabPart, queryFieldForParameters)); } } } }
public GraphQlAfDatabase(AFDatabase aAfDatabase, Field afElementsField) { name = aAfDatabase.Name; path = aAfDatabase.GetPath(); thisAfDatabase = aAfDatabase; if (afElementsField != null) { var afElementsNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "nameFilter"); var afElementsAttributeValueFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "attributeValueFilter"); var afElementsChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afElements"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afAttributes"); var returnElementsObject = new ConcurrentBag <GraphQlAfElement>(); var afElementList = aAfDatabase.Elements; Parallel.ForEach(afElementList, aAfChildElement => { if (GraphQlHelpers.JudgeElementOnFilters(aAfChildElement, afElementsNameFilterStrings, afElementsAttributeValueFilterStrings)) { returnElementsObject.Add(new GraphQlAfElement(aAfChildElement, afElementsChildField, afAttributesChildField)); } }); afElements = returnElementsObject.OrderBy(x => x.name).ToList(); } }
public QLFamilySymbolResolve(FamilySymbol _familySymbol, Field queryFieldForFamilyInstances) { id = _familySymbol.Id.ToString(); name = _familySymbol.Name; if (queryFieldForFamilyInstances != null) { var returnElementsObject = new ConcurrentBag <QLFamilyInstance>(); var nameFiltersContained = GraphQlHelpers.GetArgumentStrings(queryFieldForFamilyInstances, "nameFilter"); var queryFieldForParameters = GraphQlHelpers.GetFieldFromSelectionSet(queryFieldForFamilyInstances, "qlParameters"); var _doc = ResolverEntry.Doc; List <FamilyInstance> objectList = new FilteredElementCollector(_doc).OfClass(typeof(FamilyInstance)) .Select(x => (x as FamilyInstance)).Where(x => x.Symbol.Id.ToString() == id).ToList(); //Parallel.ForEach(objectList, x => foreach (var x in objectList) { if (nameFiltersContained.Count == 0 || nameFiltersContained.Contains(x.Name)) { returnElementsObject.Add(new QLFamilyInstanceResolve(x, queryFieldForParameters)); } } qlFamilyInstances = returnElementsObject.OrderBy(x => x.name).ToList(); } }
public GraphQlAfElementTemplate(AFElementTemplate aAfElementTemplate, Field afElementsField) { name = aAfElementTemplate.Name; ThisAfElementTemplate = aAfElementTemplate; if (afElementsField != null) { var afElementsNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "nameFilter"); var afElementsAttributeValueFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "attributeValueFilter"); var afElementsChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afElements"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afAttributes"); var returnObject = new ConcurrentBag <GraphQlAfElement>(); List <AFElement> afElementList = aAfElementTemplate.FindInstantiatedElements(true, OSIsoft.AF.AFSortField.Name, OSIsoft.AF.AFSortOrder.Ascending, 10000).Select(x => x as AFElement).Where(x => x != null).ToList(); Parallel.ForEach(afElementList, aAfChildElement => { if (GraphQlHelpers.JudgeElementOnFilters(aAfChildElement, afElementsNameFilterStrings, afElementsAttributeValueFilterStrings)) { returnObject.Add(new GraphQlAfElement(aAfChildElement, afElementsChildField, afAttributesChildField)); } }); afElements = returnObject.OrderBy(x => x.name).ToList(); } }
public GraphQlAfAttribute(AFAttribute aAfAttribute, Field afAttributesField = null, Field tsPlotValuesField = null) { AFValue aAfValue = aAfAttribute.GetValue(); name = aAfAttribute.Name; ThisAfAttribute = aAfAttribute; value = aAfValue.Value?.ToString(); uom = aAfAttribute.DisplayUOM?.Abbreviation; if (aAfAttribute.DataReference?.Name == "PI Point") { timeStamp = aAfValue.Timestamp.UtcTime.ToString("yyyy-MM-ddTHH:mm:ssZ"); } if (afAttributesField != null) { var afAttributesNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afAttributesField, "nameFilter"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afAttributesField, "afAttributes"); var returnAttributesObject = new ConcurrentBag <GraphQlAfAttribute>(); var afAttributeList = aAfAttribute.Attributes.ToList <AFAttribute>(); Parallel.ForEach(afAttributeList, aAfChildAttribute => { if (afAttributesNameFilterStrings.Count == 0 || afAttributesNameFilterStrings.Contains(aAfChildAttribute.Name)) { returnAttributesObject.Add(new GraphQlAfAttribute(aAfAttribute, afAttributesChildField)); } }); afAttributes = returnAttributesObject.OrderBy(x => x.name).ToList(); } if (tsPlotValuesField != null) { if (aAfAttribute.DataReference?.Name == "PI Point") { var plotDensity = GraphQlHelpers.GetArgumentDouble(tsPlotValuesField, "plotDensity"); var startDateTime = GraphQlHelpers.GetArgumentDateTime(tsPlotValuesField, "startDateTime"); var endDateTime = GraphQlHelpers.GetArgumentDateTime(tsPlotValuesField, "endDateTime"); var timeRange = new AFTimeRange(startDateTime, endDateTime); AFValues asdf = ThisAfAttribute.GetValues(timeRange, (int)plotDensity, null); var returnObject = new ConcurrentBag <GraphQlTsValue>(); foreach (AFValue aAfTsValue in asdf) { returnObject.Add(new GraphQlTsValue() { timeStamp = aAfTsValue.Timestamp.UtcTime.ToString("yyyy-MM-ddTHH:mm:ssZ"), value = aAfTsValue.Value.ToString() }); } tsPlotValues = returnObject.OrderBy(x => x.timeStamp).ToList(); } } }
public QLElementCollectionResolve(ICollection <ElementId> _ids, Field queryFieldForFamilyInstances, Field queryFieldForFabricationParts) { elementIds = _ids.Select(x => x.ToString()).ToList(); if (queryFieldForFamilyInstances != null || queryFieldForFabricationParts != null) { var _doc = ResolverEntry.Doc; var returnFamilyInstancesObject = new ConcurrentBag <QLFamilyInstance>(); var returnFabricationPartsObject = new ConcurrentBag <QLFabricationPart>(); foreach (var aId in _ids) { var aElement = _doc.GetElement(aId); if (aElement == null) { } else { if (aElement is FamilyInstance && queryFieldForFamilyInstances != null) { var nameFiltersContained = GraphQlHelpers.GetArgumentStrings(queryFieldForFamilyInstances, "nameFilter"); var queryFieldForParameters = GraphQlHelpers.GetFieldFromSelectionSet(queryFieldForFamilyInstances, "qlParameters"); if (nameFiltersContained.Count == 0 || nameFiltersContained.Contains(aElement.Name)) { returnFamilyInstancesObject.Add(new QLFamilyInstanceResolve(aElement as FamilyInstance, queryFieldForParameters)); } } if (aElement is FabricationPart && queryFieldForFabricationParts != null) { var nameFiltersContained = GraphQlHelpers.GetArgumentStrings(queryFieldForFabricationParts, "nameFilter"); var queryFieldForParameters = GraphQlHelpers.GetFieldFromSelectionSet(queryFieldForFabricationParts, "qlParameters"); if (nameFiltersContained.Count == 0 || nameFiltersContained.Contains(aElement.Name)) { returnFabricationPartsObject.Add(new QLFabricationPartResolve(aElement as FabricationPart, queryFieldForParameters)); } } } } qlFamilyInstances = returnFamilyInstancesObject.OrderBy(x => x.name).ToList(); qlFabricationParts = returnFabricationPartsObject.OrderBy(x => x.name).ToList(); } }
public QLAssemblyResolve(AssemblyInstance _assembly, Field qlFieldViews, List <View> viewListing, Field queryFieldForEllementCollection) { id = _assembly.Id.ToString(); name = _assembly.Name; if (qlFieldViews != null && viewListing != null) { hasViews = viewListing.Any(v => v.AssociatedAssemblyInstanceId.IntegerValue == _assembly.Id.IntegerValue); } if (queryFieldForEllementCollection != null) { var qlFamilyInstancesField = GraphQlHelpers.GetFieldFromSelectionSet(queryFieldForEllementCollection, "qlFamilyInstances"); var qlFabricationPartsField = GraphQlHelpers.GetFieldFromSelectionSet(queryFieldForEllementCollection, "qlFabricationParts"); ICollection <ElementId> elementIds = _assembly.GetMemberIds(); qlElementCollection = new QLElementCollectionResolve(elementIds, qlFamilyInstancesField, qlFabricationPartsField); } }
public GraphQlAfElement(AFElement aAfElement, Field afElementsField, Field afAttributesField) { name = aAfElement.Name; template = aAfElement.Template?.Name; path = aAfElement.GetPath(); ThisAfElement = aAfElement; if (afElementsField != null) { var afElementsNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "nameFilter"); var afElementsAttributeValueFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "attributeValueFilter"); var afElementsChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afElements"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afAttributes"); var returnElementsObject = new ConcurrentBag <GraphQlAfElement>(); var afElementList = aAfElement.Elements; Parallel.ForEach(afElementList, aAfChildElement => { if (GraphQlHelpers.JudgeElementOnFilters(aAfChildElement, afElementsNameFilterStrings, afElementsAttributeValueFilterStrings)) { returnElementsObject.Add(new GraphQlAfElement(aAfChildElement, afElementsChildField, afAttributesChildField)); } }); afElements = returnElementsObject.OrderBy(x => x.name).ToList(); } if (afAttributesField != null) { var afAttributesNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afAttributesField, "nameFilter"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afAttributesField, "afAttributes"); var tsValuesField = GraphQlHelpers.GetFieldFromSelectionSet(afAttributesField, "tsPlotValues"); var returnAttributesObject = new ConcurrentBag <GraphQlAfAttribute>(); var afAttributeList = aAfElement.Attributes.ToList <AFAttribute>(); Parallel.ForEach(afAttributeList, aAfAttribute => { if (afAttributesNameFilterStrings.Count == 0 || afAttributesNameFilterStrings.Contains(aAfAttribute.Name)) { returnAttributesObject.Add(new GraphQlAfAttribute(aAfAttribute, afAttributesChildField, tsValuesField)); } }); afAttributes = returnAttributesObject.OrderBy(x => x.name).ToList(); } }
public GraphQlPiSystem(PISystem aPiSystem, Field afDbsField) { name = aPiSystem.Name; ThisPiSystem = aPiSystem; if (afDbsField != null) { var nameFilterStrings = GraphQlHelpers.GetArgumentStrings(afDbsField, "nameFilter"); var afElementsField = GraphQlHelpers.GetFieldFromSelectionSet(afDbsField, "afElements"); var returnElementsObject = new ConcurrentBag <GraphQlAfDatabase>(); var afDbsList = aPiSystem.Databases; Parallel.ForEach(afDbsList, aAfDb => { if (nameFilterStrings.Count == 0 || nameFilterStrings.Contains(aAfDb.Name)) { returnElementsObject.Add(new GraphQlAfDatabase(aAfDb, afElementsField)); } }); afDbs = returnElementsObject.OrderBy(x => x.name).ToList(); } }