Esempio n. 1
0
        // Token: 0x0600017A RID: 378 RVA: 0x0000AA94 File Offset: 0x00008C94
        internal static SteelGroupElement GetInstance(RevitElement <FabricSheet> sheet, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette)
        {
            bool flag = SteelGroupElementMeshBase.IsCFS(sheet);
            SteelGroupElement instance;

            if (flag)
            {
                instance = SteelGroupElementMeshCFS.GetInstance(sheet, cncElementData, matWcsToPalette);
            }
            else
            {
                instance = SteelGroupElementMeshSFS.GetInstance(sheet, cncElementData, matWcsToPalette);
            }
            return(instance);
        }
        // Token: 0x0600023B RID: 571 RVA: 0x0000F8A8 File Offset: 0x0000DAA8
        private static IEnumerable <SteelGroupElementMeshSFS> AccumulateSheets(Dictionary <ElementId, List <SteelGroupElementMeshSFS> > dict)
        {
            Func <SteelGroupElementMeshSFS, SteelGroupElementMeshSFS, SteelGroupElementMeshSFS> sumSheets = delegate(SteelGroupElementMeshSFS total, SteelGroupElementMeshSFS next)
            {
                total.Count  += next.Count;
                total.Weight += next.Weight;
                total.WireItemsMajor.AddRange(next.WireItemsMajor);
                total.WireItemsMinor.AddRange(next.WireItemsMinor);
                return(total);
            };
            Func <List <SteelGroupElementMeshSFS>, SteelGroupElementMeshSFS> selector = delegate(List <SteelGroupElementMeshSFS> list)
            {
                SteelGroupElementMeshSFS steelGroupElementMeshSFS = list.FirstOrDefault <SteelGroupElementMeshSFS>();
                ItDebug.assert(steelGroupElementMeshSFS != null, "if a list is added to the dict, at least one sheet must be added to the list!");
                SteelGroupElementMeshSFS instance = SteelGroupElementMeshSFS.GetInstance(steelGroupElementMeshSFS.FabricSheet, steelGroupElementMeshSFS.CNCElementData, steelGroupElementMeshSFS.MatWcsToPalette);
                instance.Weight = 0.0;
                instance.Count  = 0;
                instance.WireItemsMajor.Clear();
                instance.WireItemsMinor.Clear();
                return(list.Aggregate(instance, sumSheets));
            };

            return(dict.Values.Select(selector));
        }