예제 #1
0
        // Token: 0x0600014A RID: 330 RVA: 0x00009FF0 File Offset: 0x000081F0
        internal ReinfSorter(AssemblyInstance assembly, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette, Func <Element, bool> additionalFilter)
        {
            this.CNCElementData   = cncElementData;
            this.MatWcsToPalette  = matWcsToPalette;
            this.AdditionalFilter = additionalFilter;
            ICollection <ElementId> memberIds = assembly.GetMemberIds();

            this.members = (from id in memberIds
                            select assembly.Document.GetElement(id)).ToList <Element>();
            this.steelGroupElements = new List <SteelGroupElement>();
        }
예제 #2
0
        // Token: 0x06000005 RID: 5 RVA: 0x000023A8 File Offset: 0x000005A8
        private static string ExportReinforcementToUnitechnik(AssemblyInstance assembly, FileFormat fileFormat, ICollection <ExportReinfData> exportedElements, Func <Element, bool> filter)
        {
            ICamExportIntOptions options       = new CamExporter.CamExportOptionsOnlyFileFormat(fileFormat);
            ItMachineDataBase    cncdocCreator = ItCNCDataFactory.getCNCDocCreator(assembly, options);

            cncdocCreator.InitializeFromAssembly(assembly);
            ItGeMatrix3d matWcsToPalette = cncdocCreator.MatWcsToPalette;

            ItMachineDataBase.CNCElementData        cncelementData = new ItMachineDataBase.CNCElementData();
            ILookup <SteelGroup, SteelGroupElement> steelGroups;

            using (ItTransaction itTransaction = ItTransactionManager.Instance.start(assembly.Document, "RevitPrecast Internal Transaction", null))
            {
                ReinfSorter reinfSorter = new ReinfSorter(assembly, cncelementData, matWcsToPalette, filter);
                reinfSorter.SortElements();
                steelGroups = reinfSorter.GetSteelGroups();
                itTransaction.rollback("Planned rollback.");
            }
            short iVersion = (fileFormat == FileFormat.Unitechnik52) ? (short)502 : (short)600;

            ItUniWrapperImpl.StartDocument(1, 1, ProjectCoordinates.Empty, iVersion, "", 1.0, true);
            ItUniWrapperImpl.AddLayer(0, 1.0, 1.0, 1.0, "x");
            foreach (IGrouping <SteelGroup, SteelGroupElement> grouping in steelGroups)
            {
                grouping.Key.WriteUnitechnik(exportedElements);
            }
            ItMachineDataBase.UnitechnikWriteMountingPartData(cncelementData);
            ItMachineDataBase.UnitechnikWriteBRGirdersData(cncelementData);
            string fullReinforcementString = ItUniWrapperImpl.GetFullReinforcementString();
            bool   flag = fullReinforcementString.Contains("ERROR");

            if (flag)
            {
                throw new CamExportException(fullReinforcementString);
            }
            return(fullReinforcementString);
        }
예제 #3
0
        // Token: 0x060001D2 RID: 466 RVA: 0x0000C41C File Offset: 0x0000A61C
        internal new static SteelGroupElementRebar GetInstance(RevitElement <Rebar> rebar, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette, List <SteelGroupElement> existingElements)
        {
            bool flag = rebar.IsInvalid() || !SteelGroupElementRebar.CanBeExported(rebar);
            SteelGroupElementRebar result;

            if (flag)
            {
                result = null;
            }
            else
            {
                SteelGroupElementRebar steelGroupElementRebar = new SteelGroupElementRebar(cncElementData, matWcsToPalette);
                steelGroupElementRebar.Rebar = rebar;
                steelGroupElementRebar.Host  = rebar.Element.getHostingPart();
                bool flag2 = steelGroupElementRebar.Host == null;
                if (flag2)
                {
                    result = null;
                }
                else
                {
                    steelGroupElementRebar.RebarBarType = (rebar.Document.GetElement(rebar.Element.GetTypeId()) as RebarBarType);
                    steelGroupElementRebar.Data         = (rebar.load <ItReinforcement>(null, false) ?? SteelGroupElement.GetEmptyData(steelGroupElementRebar));
                    bool flag3;
                    steelGroupElementRebar.IronSetsSchematic           = rebar.Element.getIronSets(out flag3, RebarMode.Schematic, false);
                    steelGroupElementRebar.IronSetsSchematicAreInvalid = flag3;
                    steelGroupElementRebar.IronSetsRealistic           = rebar.Element.getIronSets(out flag3, RebarMode.Realistic, false);
                    steelGroupElementRebar.IronSetsRealisticAreInvalid = flag3;
                    steelGroupElementRebar.TransformToPalette();
                    steelGroupElementRebar.SetMinMaxZ(steelGroupElementRebar.IronSetsRealistic);
                    steelGroupElementRebar.SetGroup(existingElements);
                    result = steelGroupElementRebar;
                }
            }
            return(result);
        }
예제 #4
0
 // Token: 0x060001D1 RID: 465 RVA: 0x0000ACDE File Offset: 0x00008EDE
 internal SteelGroupElementRebar(ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette) : base(cncElementData, matWcsToPalette)
 {
 }
예제 #5
0
        // Token: 0x06000197 RID: 407 RVA: 0x0000B1A4 File Offset: 0x000093A4
        internal new static SteelGroupElementMeshCFS GetInstance(RevitElement <FabricSheet> fabricSheet, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette)
        {
            bool flag = fabricSheet.IsInvalid() || !SteelGroupElementMeshBase.IsCFS(fabricSheet);
            SteelGroupElementMeshCFS result;

            if (flag)
            {
                result = null;
            }
            else
            {
                FabricSheetType          sheetType = SteelGroupElementMeshBase.GetSheetType(fabricSheet.Element);
                SteelGroupElementMeshCFS steelGroupElementMeshCFS = new SteelGroupElementMeshCFS(cncElementData, matWcsToPalette);
                steelGroupElementMeshCFS.FabricSheet = fabricSheet;
                steelGroupElementMeshCFS.Host        = fabricSheet.Element.getHostingPart();
                bool flag2 = steelGroupElementMeshCFS.Host == null;
                if (flag2)
                {
                    result = null;
                }
                else
                {
                    steelGroupElementMeshCFS.FabricArea = (fabricSheet.Document.GetElement(fabricSheet.Element.FabricAreaOwnerId) as FabricArea);
                    SteelGroupElement         steelGroupElement = steelGroupElementMeshCFS;
                    RevitElement <FabricArea> fabricArea        = steelGroupElementMeshCFS.FabricArea;
                    steelGroupElement.Data                  = (((fabricArea != null) ? fabricArea.load <ItReinforcement>(null, false) : null) ?? SteelGroupElement.GetEmptyData(steelGroupElementMeshCFS));
                    steelGroupElementMeshCFS._cfsName       = sheetType.Name;
                    steelGroupElementMeshCFS.WireItemsMajor = steelGroupElementMeshCFS.getWireItems(fabricSheet.Element, (WireDistributionDirection)0, sheetType).ToList <WireItem>();
                    steelGroupElementMeshCFS.WireItemsMinor = steelGroupElementMeshCFS.getWireItems(fabricSheet.Element, (WireDistributionDirection)1, sheetType).ToList <WireItem>();
                    ItGeBoundBlock3d itGeBoundBlock3d = SteelGroupElementMeshCFS.sheetLocalExtents(steelGroupElementMeshCFS.WireItemsMajor, steelGroupElementMeshCFS.WireItemsMinor);
                    bool             flag3            = itGeBoundBlock3d == null;
                    if (flag3)
                    {
                        result = null;
                    }
                    else
                    {
                        steelGroupElementMeshCFS.PosPalette  = itGeBoundBlock3d.minPoint;
                        steelGroupElementMeshCFS._maxLength  = itGeBoundBlock3d.length;
                        steelGroupElementMeshCFS._maxWidth   = itGeBoundBlock3d.width;
                        steelGroupElementMeshCFS._toTurn     = 0;
                        steelGroupElementMeshCFS._stopOnTurn = 0;
                        steelGroupElementMeshCFS._matType    = 0;
                        steelGroupElementMeshCFS.WireItemsMajor.ForEach(delegate(WireItem item)
                        {
                            item.transformToSteelmat();
                        });
                        steelGroupElementMeshCFS.WireItemsMinor.ForEach(delegate(WireItem item)
                        {
                            item.transformToSteelmat();
                        });
                        bool flag4 = steelGroupElementMeshCFS.Data.LayerPosition == PosReinfLayer.Undefined;
                        if (flag4)
                        {
                            steelGroupElementMeshCFS.SetLayerPositionFromCFS();
                        }
                        steelGroupElementMeshCFS.SetMinMaxZ();
                        steelGroupElementMeshCFS.SetGroup();
                        result = steelGroupElementMeshCFS;
                    }
                }
            }
            return(result);
        }
예제 #6
0
        // Token: 0x060001C2 RID: 450 RVA: 0x0000BF9C File Offset: 0x0000A19C
        internal new static SteelGroupElementGirder GetInstance(RevitElement <FamilyInstance> girder, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette, List <SteelGroupElement> existingElements)
        {
            bool flag = girder.IsInvalid();
            SteelGroupElementGirder result;

            if (flag)
            {
                result = null;
            }
            else
            {
                SteelGroupElementGirder steelGroupElementGirder = new SteelGroupElementGirder(cncElementData, matWcsToPalette);
                steelGroupElementGirder.Girder = girder;
                steelGroupElementGirder.Host   = girder.Element.getHostingPart();
                bool flag2 = steelGroupElementGirder.Host == null;
                if (flag2)
                {
                    result = null;
                }
                else
                {
                    steelGroupElementGirder.Data = SteelGroupElementGirder.GetReinforcementDataInstance(girder, steelGroupElementGirder);
                    bool flag3 = !SteelGroupElementGirder.IsGirderData(steelGroupElementGirder.Data);
                    if (flag3)
                    {
                        result = null;
                    }
                    else
                    {
                        steelGroupElementGirder.SetMinMaxZ();
                        steelGroupElementGirder.SetGroup();
                        result = steelGroupElementGirder;
                    }
                }
            }
            return(result);
        }
예제 #7
0
        // 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);
        }
예제 #8
0
 // Token: 0x06000179 RID: 377 RVA: 0x0000AA78 File Offset: 0x00008C78
 internal static SteelGroupElement GetInstance(RevitElement <RebarInSystem> rebarInSystem, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette)
 {
     return(SteelGroupElementAreaReinf.GetInstance(rebarInSystem, cncElementData, matWcsToPalette));
 }
예제 #9
0
 // Token: 0x06000178 RID: 376 RVA: 0x0000AA58 File Offset: 0x00008C58
 internal static SteelGroupElement GetInstance(RevitElement <Rebar> rebar, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette, List <SteelGroupElement> steelGroupElements)
 {
     return(SteelGroupElementRebar.GetInstance(rebar, cncElementData, matWcsToPalette, steelGroupElements));
 }
예제 #10
0
 // Token: 0x06000177 RID: 375 RVA: 0x0000AA38 File Offset: 0x00008C38
 internal static SteelGroupElement GetInstance(RevitElement <FamilyInstance> instance, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette, List <SteelGroupElement> steelGroupElements)
 {
     return(SteelGroupElementGirder.GetInstance(instance, cncElementData, matWcsToPalette, steelGroupElements));
 }
예제 #11
0
 // Token: 0x06000176 RID: 374 RVA: 0x0000AA1E File Offset: 0x00008C1E
 internal SteelGroupElement(ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette)
 {
     this.CNCElementData  = cncElementData;
     this.MatWcsToPalette = matWcsToPalette;
 }
예제 #12
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: 0x0600018D RID: 397 RVA: 0x0000ACEC File Offset: 0x00008EEC
        internal new static SteelGroupElementAreaReinf GetInstance(RevitElement <RebarInSystem> rebarInSystem, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette)
        {
            bool flag = rebarInSystem.IsInvalid();
            SteelGroupElementAreaReinf result;

            if (flag)
            {
                result = null;
            }
            else
            {
                SteelGroupElementAreaReinf steelGroupElementAreaReinf = new SteelGroupElementAreaReinf(cncElementData, matWcsToPalette);
                steelGroupElementAreaReinf.RebarInSystem = rebarInSystem;
                steelGroupElementAreaReinf.Host          = rebarInSystem.Element.getHostingPart();
                bool flag2 = steelGroupElementAreaReinf.Host == null;
                if (flag2)
                {
                    result = null;
                }
                else
                {
                    steelGroupElementAreaReinf.AreaReinforcement = (rebarInSystem.Document.GetElement(rebarInSystem.Element.SystemId) as AreaReinforcement);
                    steelGroupElementAreaReinf.RebarBarType      = (rebarInSystem.Document.GetElement(rebarInSystem.Element.GetTypeId()) as RebarBarType);
                    steelGroupElementAreaReinf.Data = (steelGroupElementAreaReinf.AreaReinforcement.load <ItReinforcement>(null, false) ?? SteelGroupElement.GetEmptyData(steelGroupElementAreaReinf));
                    steelGroupElementAreaReinf.IronSetsSchematic = rebarInSystem.Element.getIronSets(RebarMode.Schematic);
                    steelGroupElementAreaReinf.IronSetsRealistic = rebarInSystem.Element.getIronSets(RebarMode.Realistic);
                    steelGroupElementAreaReinf.TransformToPalette();
                    steelGroupElementAreaReinf.SetMinMaxZ(steelGroupElementAreaReinf.IronSetsRealistic);
                    steelGroupElementAreaReinf.SetGroup();
                    result = steelGroupElementAreaReinf;
                }
            }
            return(result);
        }