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 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 QLFabricationPartResolve(FabricationPart _fabricationPart, Field queryFieldForParameters) //{ // id = _fabricationPart.Id.ToString(); // name = _fabricationPart.Name; // if (queryFieldForParameters != null) // { // var returnElementsObject = new ConcurrentBag<QLParameter>(); // var nameFiltersContained = GraphQlHelpers.GetArgumentStrings(queryFieldForParameters, "nameFilter"); // var _doc = ResolverEntry.Doc; // ParameterSet objectList = _fabricationPart.Parameters; // //Parallel.ForEach(objectList, x => // foreach (Parameter x in objectList) // { // if (nameFiltersContained.Count == 0 || nameFiltersContained.Contains(x.Definition.Name)) // { // returnElementsObject.Add(new QLParameter() // { // id = x.Id.ToString(), // name = x.Definition.Name, // value = x.AsValueString() == null ? x.AsString() : x.AsValueString(), // userModifiable = x.UserModifiable, // isReadOnly = x.IsReadOnly // }); // } // } // qlParameters = returnElementsObject.OrderBy(x => x.name).ToList(); // } //} public QLFabricationPartResolve(FabricationPart _fabricationPart, object aFieldOrContext) { id = _fabricationPart.Id.ToString(); name = _fabricationPart.Name; var queryFieldForParameters = GraphQlHelpers.GetFieldFromFieldOrContext(aFieldOrContext, "qlParameters"); if (queryFieldForParameters != null) { var returnElementsObject = new ConcurrentBag <QLParameter>(); var nameFiltersContained = GraphQlHelpers.GetArgumentStrings(queryFieldForParameters, "nameFilter"); var _doc = ResolverEntry.Doc; ParameterSet objectList = _fabricationPart.Parameters; //Parallel.ForEach(objectList, x => foreach (Parameter x in objectList) { if (nameFiltersContained.Count == 0 || nameFiltersContained.Contains(x.Definition.Name)) { returnElementsObject.Add(new QLParameter() { id = x.Id.ToString(), name = x.Definition.Name, value = x.AsValueString() == null ? x.AsString() : x.AsValueString(), userModifiable = x.UserModifiable, isReadOnly = x.IsReadOnly }); } } qlParameters = returnElementsObject.OrderBy(x => x.name).ToList(); } }
public QLFamilySymbolResolve(FamilySymbol _familySymbol, object aFieldOrContext) { id = _familySymbol.Id.ToString(); name = _familySymbol.Name; var queryFieldForFamilyInstances = GraphQlHelpers.GetFieldFromFieldOrContext(aFieldOrContext, "qlFamilyInstances"); 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, queryFieldForFamilyInstances)); } } qlFamilyInstances = returnElementsObject.OrderBy(x => x.name).ToList(); } }
public QLAfElementTemplateResolve(AFElementTemplate aAfElementTemplate, Field afElementsField) { name = aAfElementTemplate.Name; if (afElementsField != null) { var afElementsNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "nameFilter"); var afElementsAttributeValueFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "attributeValueFilter"); var afElementsChildField = GraphQlHelpers.GetFieldFromFieldOrContext(afElementsField, "afElements"); var afAttributesChildField = GraphQlHelpers.GetFieldFromFieldOrContext(afElementsField, "afAttributes"); var returnObject = new ConcurrentBag <QLAfElement>(); 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 QLAfElementResolve(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 QLElementCollectionResolve(ICollection <ElementId> _ids, object aFieldOrContext) { elementIds = _ids.Select(x => x.ToString()).ToList(); var queryFieldForFamilyInstances = GraphQlHelpers.GetFieldFromFieldOrContext(aFieldOrContext, "qlFamilyInstances"); var queryFieldForFabricationParts = GraphQlHelpers.GetFieldFromFieldOrContext(aFieldOrContext, "qlFabricationParts"); 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)); returnFamilyInstancesObject.Add(new QLFamilyInstanceResolve(aElement as FamilyInstance, queryFieldForFamilyInstances)); } } 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)); returnFabricationPartsObject.Add(new QLFabricationPartResolve(aElement as FabricationPart, queryFieldForFabricationParts)); } } } } qlFamilyInstances = returnFamilyInstancesObject.OrderBy(x => x.name).ToList(); qlFabricationParts = returnFabricationPartsObject.OrderBy(x => x.name).ToList(); } }
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 QLPiSystemResolve(PISystem aPiSystem, Field afDbsField) { name = aPiSystem.Name; if (afDbsField != null) { var nameFilterStrings = GraphQlHelpers.GetArgumentStrings(afDbsField, "nameFilter"); var afElementsField = GraphQlHelpers.GetFieldFromFieldOrContext(afDbsField, "afElements"); var returnElementsObject = new ConcurrentBag <QLAfDatabase>(); var afDbsList = aPiSystem.Databases; Parallel.ForEach(afDbsList, aAfDb => { if (nameFilterStrings.Count == 0 || nameFilterStrings.Contains(aAfDb.Name)) { returnElementsObject.Add(new QLAfDatabaseResolve(aAfDb, afElementsField)); } }); afDbs = returnElementsObject.OrderBy(x => x.name).ToList(); } }