// Token: 0x06000239 RID: 569 RVA: 0x0000F7FC File Offset: 0x0000D9FC public static List <SteelGroupElementMeshSFS> GroupSheets(IEnumerable <SteelGroupElementMeshSFS> sheets) { List <SteelGroupElementMeshSFS> list = new List <SteelGroupElementMeshSFS>(); IEnumerable <SteelGroupElementMeshSFS> collection = SteelGroupElementMeshSFS.GroupSheetsImpl(sheets); list.AddRange(collection); return(list); }
// Token: 0x0600014C RID: 332 RVA: 0x0000A084 File Offset: 0x00008284 private void MergeStandardFabrics() { List <SteelGroupElementMeshSFS> list = this.steelGroupElements.OfType <SteelGroupElementMeshSFS>().ToList <SteelGroupElementMeshSFS>(); bool flag = list.none <SteelGroupElementMeshSFS>(); if (!flag) { List <SteelGroupElementMeshSFS> collection = SteelGroupElementMeshSFS.GroupSheets(list); foreach (SteelGroupElementMeshSFS item in list) { this.steelGroupElements.Remove(item); } this.steelGroupElements.AddRange(collection); } }
// 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: 0x06000235 RID: 565 RVA: 0x0000F570 File Offset: 0x0000D770 internal new static SteelGroupElementMeshSFS GetInstance(RevitElement <FabricSheet> fabricSheet, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette) { bool flag = fabricSheet.IsInvalid() || SteelGroupElementMeshBase.IsCFS(fabricSheet); SteelGroupElementMeshSFS result; if (flag) { result = null; } else { FabricSheetType sheetType = SteelGroupElementMeshBase.GetSheetType(fabricSheet.Element); SteelGroupElementMeshSFS steelGroupElementMeshSFS = new SteelGroupElementMeshSFS(cncElementData, matWcsToPalette); steelGroupElementMeshSFS.FabricSheet = fabricSheet; steelGroupElementMeshSFS.Host = fabricSheet.Element.getHostingPart(); bool flag2 = steelGroupElementMeshSFS.Host == null; if (flag2) { result = null; } else { steelGroupElementMeshSFS.FabricArea = (fabricSheet.Document.GetElement(fabricSheet.Element.FabricAreaOwnerId) as FabricArea); SteelGroupElement steelGroupElement = steelGroupElementMeshSFS; RevitElement <FabricArea> fabricArea = steelGroupElementMeshSFS.FabricArea; steelGroupElement.Data = (((fabricArea != null) ? fabricArea.load <ItReinforcement>(null, false) : null) ?? SteelGroupElement.GetEmptyData(steelGroupElementMeshSFS)); steelGroupElementMeshSFS.WireItemsMajor = steelGroupElementMeshSFS.getWireItems(fabricSheet.Element, 0, sheetType).ToList <WireItem>(); steelGroupElementMeshSFS.WireItemsMinor = steelGroupElementMeshSFS.getWireItems(fabricSheet.Element, (WireDistributionDirection)1, sheetType).ToList <WireItem>(); steelGroupElementMeshSFS._type = 1; steelGroupElementMeshSFS.Count = 1; steelGroupElementMeshSFS.Weight = SteelGroupElementMeshSFS.GetWeight(fabricSheet.Element); steelGroupElementMeshSFS._name = fabricSheet.Element.Name; steelGroupElementMeshSFS._typeId = fabricSheet.Element.GetTypeId(); steelGroupElementMeshSFS.MatWcsToPalette = ItGeMatrix3d.kIdentity; steelGroupElementMeshSFS.PosPalette = ItGePoint3d.kOrigin; steelGroupElementMeshSFS.SetMinMaxZ(); steelGroupElementMeshSFS.SetGroup(); result = steelGroupElementMeshSFS; } } return(result); }
// Token: 0x0600023A RID: 570 RVA: 0x0000F824 File Offset: 0x0000DA24 private static IEnumerable <SteelGroupElementMeshSFS> GroupSheetsImpl(IEnumerable <SteelGroupElementMeshSFS> sheets) { Dictionary <ElementId, List <SteelGroupElementMeshSFS> > dictionary = new Dictionary <ElementId, List <SteelGroupElementMeshSFS> >(); foreach (SteelGroupElementMeshSFS steelGroupElementMeshSFS in sheets) { SteelGroupElementMeshSFS.AddToSheetDict(dictionary, steelGroupElementMeshSFS._typeId, steelGroupElementMeshSFS); } bool flag = dictionary.Values.none <List <SteelGroupElementMeshSFS> >(); IEnumerable <SteelGroupElementMeshSFS> result; if (flag) { result = Enumerable.Empty <SteelGroupElementMeshSFS>(); } else { IEnumerable <SteelGroupElementMeshSFS> enumerable = SteelGroupElementMeshSFS.AccumulateSheets(dictionary); result = enumerable; } return(result); }
// 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)); }
// Token: 0x0600023C RID: 572 RVA: 0x0000F900 File Offset: 0x0000DB00 private static void AddToSheetDict(Dictionary <ElementId, List <SteelGroupElementMeshSFS> > dict, ElementId typeId, SteelGroupElementMeshSFS sheet) { List <SteelGroupElementMeshSFS> list; bool flag = !dict.TryGetValue(typeId, out list); if (flag) { list = new List <SteelGroupElementMeshSFS>(); dict[typeId] = list; } list.Add(sheet); }