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));
                    }
                }
            }
        }
示例#2
0
        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();
            }
        }
示例#3
0
        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();
            }
        }
示例#4
0
        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();
            }
        }
示例#5
0
        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();
                }
            }
        }
示例#6
0
        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();
            }
        }
示例#7
0
        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);
            }
        }
示例#8
0
        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();
            }
        }
示例#9
0
        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();
            }
        }