예제 #1
0
 // Token: 0x0600011A RID: 282 RVA: 0x00009C94 File Offset: 0x00007E94
 public static void WriteThicknesses(int totalThickness, int productionThickness)
 {
     ItDebug.assert(totalThickness.Ge(0), "total thickness can not be negative");
     ItDebug.assert(productionThickness.Ge(0), "production thickness can not be negative");
     ItDebug.assert(productionThickness.Ge(totalThickness), "production thickness can not be smaller than total thickness");
     ItUniWrapperImpl.setThicknesses(totalThickness, productionThickness);
 }
예제 #2
0
        // Token: 0x06000071 RID: 113 RVA: 0x000053D0 File Offset: 0x000035D0
        private bool ExportShellToUnitechnik(AssemblyInstance assemblyInstance, int iProdNo, CNCProjectData projectData, ItMachineDataWallDB.DbwElementData.Shell shell, int doubleWallGapInMM)
        {
            ItGeMatrix3d matWcsToPalette = base.MatWcsToPalette;

            base.MatWcsToPalette = shell.Transformation;
            this.Mode            = shell.Mode;
            bool flag = base.ExportUnitechnik(assemblyInstance, new RevitElement <Part>[]
            {
                shell.Part
            }, iProdNo, projectData);

            ItUniWrapperImpl.SetDoubleWallGap(doubleWallGapInMM);
            bool flag2 = !flag;
            bool result;

            if (flag2)
            {
                result = flag;
            }
            else
            {
                base.MatWcsToPalette = matWcsToPalette;
                result = true;
            }
            return(result);
        }
예제 #3
0
 // Token: 0x06000114 RID: 276 RVA: 0x00009B98 File Offset: 0x00007D98
 internal static void AddCutout(ItUniWrapperImpl.CutoutData data, IEnumerable <ItUniWrapperImpl.Point2D> points)
 {
     ItDebug.assert(points.any <ItUniWrapperImpl.Point2D>(), "Can not handle empty List of Points");
     ItUniWrapperImpl.Point2D[] array = points.ToArray <ItUniWrapperImpl.Point2D>();
     data.countOfPoints = (ushort)array.Length;
     ItUniWrapperImpl.addCutout(data, array);
 }
예제 #4
0
 // Token: 0x06000113 RID: 275 RVA: 0x00009B5C File Offset: 0x00007D5C
 internal static void AddFreeFormRodstock(ItUniWrapperImpl.RodstockData data, IEnumerable <ItUniWrapperImpl.FreeFormSegment> segments)
 {
     ItDebug.assert(segments.any <ItUniWrapperImpl.FreeFormSegment>(), "Can not handle empty List of FreeFormSegments");
     ItUniWrapperImpl.FreeFormSegment[] array = segments.ToArray <ItUniWrapperImpl.FreeFormSegment>();
     data.numberOfFreeFormSegments = (ushort)array.Length;
     ItUniWrapperImpl.addFreeFormRodstock(data, array);
 }
예제 #5
0
 // Token: 0x06000117 RID: 279 RVA: 0x00009C10 File Offset: 0x00007E10
 public static void SetSlabInfoFields(string info1, string info2, string info3, string info4)
 {
     info1 = (info1 ?? string.Empty);
     info2 = (info2 ?? string.Empty);
     info3 = (info3 ?? string.Empty);
     info4 = (info4 ?? string.Empty);
     ItUniWrapperImpl.setSlabInfoFields(info1, info2, info3, info4);
 }
예제 #6
0
        // Token: 0x06000115 RID: 277 RVA: 0x00009BD4 File Offset: 0x00007DD4
        internal static void AddContour(List <ItUniWrapperImpl.Point2D> points)
        {
            ItDebug.assert(points.any <ItUniWrapperImpl.Point2D>(), "Can not handle empty List of Points");
            ItUniWrapperImpl.Point2D[] array = points.ToArray();
            int countOfPoints = array.Length;

            ItUniWrapperImpl.addContour(countOfPoints, array);
        }
예제 #7
0
 // Token: 0x0600023D RID: 573 RVA: 0x0000F938 File Offset: 0x0000DB38
 internal override void WriteToUnitechnik(ICollection <ExportReinfData> exportedElements)
 {
     ItUniWrapperImpl.AddStandardFabricSheet(this._type, this.Count, this.Weight, this._name);
     exportedElements.Add(new ExportReinfData
     {
         Id         = base.FabricSheet.Id,
         ExportedAs = ExportReinfData.ExportType.AsExtIron
     });
 }
예제 #8
0
		// Token: 0x06000270 RID: 624 RVA: 0x0000FE94 File Offset: 0x0000E094
		public void sendToUniwrapper()
		{
			ItDebug.assert(this.status == WireItem.Status.RelativeToSteelmat, "Can't write wire items before their coordinates are transformed to be relative to steelmats origin");
			int diameter = CNCDataBase.convertToMM(this.WireDiameter);
			int length = CNCDataBase.convertToMM(this.Length);
			int[] startpoint = CNCDataBase.toPointArray(this.StartPoint);
			int pitch = CNCDataBase.convertToMM((double)this.Pitch);
			int spacerStartpoint = CNCDataBase.convertToMM((double)this.SpacerStartPoint);
			int spacerPitch = CNCDataBase.convertToMM((double)this.SpacerPitch);
			ItUniWrapperImpl.AddCFSRodstock(this.ReinforcementType, this.SteelQuality, this.NumberOfIrons, diameter, length, startpoint, pitch, this.Angle, this.ArticleNumber, this.AutomaticProduction, this.SpacerType, spacerStartpoint, spacerPitch, this.AdditionalStore);
		}
예제 #9
0
        // Token: 0x06000112 RID: 274 RVA: 0x00009B24 File Offset: 0x00007D24
        internal static int AddStandardFabricSheet(int type, int count, double weightKg, string sheetName)
        {
            ItDebug.assert(sheetName != null, "cant handle null as sheetname");
            bool flag = sheetName == null;

            if (flag)
            {
                throw new ArgumentException();
            }
            return(ItUniWrapperImpl.addStandardFabricSheet(type, count, weightKg, sheetName));
        }
예제 #10
0
        // Token: 0x0600010D RID: 269 RVA: 0x00009714 File Offset: 0x00007914
        internal static int EndDocument(string strFilename)
        {
            ItDebug.assert(!string.IsNullOrWhiteSpace(strFilename), "Failure in: ");
            bool flag = string.IsNullOrWhiteSpace(strFilename);

            if (flag)
            {
                throw new ArgumentException();
            }
            return(ItUniWrapperImpl.endDocument(strFilename));
        }
예제 #11
0
        // Token: 0x060001D8 RID: 472 RVA: 0x0000CA88 File Offset: 0x0000AC88
        private void UnitechnikWriteRebarAsFreeForm()
        {
            ItDebug.assert(base.IronSetsSchematic.any <List <ItGeCurve3d> >() && base.IronSetsSchematic[0].Count > 1, "Do not call this method for anything but bending forms.");
            ItUniWrapperImpl.RodstockData data = default(ItUniWrapperImpl.RodstockData);
            List <ItGeCurve3d>            list = base.IronSetsSchematic[0];
            ItGeVector3d normal;
            short        unitechnikAngleOfFreeForm = base.GetUnitechnikAngleOfFreeForm(list[0], out normal);
            int          num;
            double       dValue;

            this.GetSpacingAndCountForUnitechnik(unitechnikAngleOfFreeForm, out num, out dValue);
            int         freeFormLength = SteelGroupElementRebar.GetFreeFormLength(list);
            ItGePoint3d startPoint     = base.GetStartPoint(base.IronSetsSchematic);

            data.length              = (uint)freeFormLength;
            data.startAngle          = unitechnikAngleOfFreeForm;
            data.artNr               = string.Empty;
            data.autoProd            = 0;
            data.diameter            = (ushort)CNCDataBase.convertToMM(base.RebarBarType.BarDiameter);
            data.flexFormNumber      = 0;
            data.formType            = 2;
            data.hasSpacers          = 0;
            data.hasWielding         = 0;
            data.installationHeight  = (uint)CNCDataBase.convertToMM(startPoint.z);
            data.number              = (ushort)num;
            data.pitch               = CNCDataBase.convertToMM(dValue);
            data.pitchSpacer         = 0u;
            data.startingPointSpacer = 0u;
            data.reinfType           = (byte)base.CNCReinfTypeValue;
            data.steelQuality        = SteelGroupElementRebarBase.GetSteelQuality(base.RebarBarType);
            data.xcoord              = CNCDataBase.convertToMM(startPoint.x);
            data.ycoord              = CNCDataBase.convertToMM(startPoint.y);
            List <ItUniWrapperImpl.FreeFormSegment> list2 = new List <ItUniWrapperImpl.FreeFormSegment>();
            int num2;

            for (int i = 0; i < list.Count; i = num2 + 1)
            {
                ItGeCurve3d itGeCurve3d = list[i];
                ItGeCurve3d nextCurve   = list.ElementAtOrDefault(i + 1);
                short       unitechnikAngleOfNextSegment = this.GetUnitechnikAngleOfNextSegment(itGeCurve3d, nextCurve, normal);
                list2.Add(new ItUniWrapperImpl.FreeFormSegment
                {
                    length = (uint)CNCDataBase.convertToMM(itGeCurve3d.len),
                    angle  = unitechnikAngleOfNextSegment
                });
                num2 = i;
            }
            ItUniWrapperImpl.AddFreeFormRodstock(data, list2);
        }
예제 #12
0
        // Token: 0x06000110 RID: 272 RVA: 0x00009848 File Offset: 0x00007A48
        internal static int AddSteelmat(string matName, int maxLen, int maxWidth, int toTurn, int stopOnTurn, int matType, int[] pos)
        {
            ItDebug.assert(matName != null, "cant handle null as steelmat name");
            ItDebug.assert(maxLen > 0 && maxWidth > 0, "cant have negative length or width");
            ItDebug.assert(toTurn == 0 || toTurn == 1, "toTurn must be 0 or 1");
            ItDebug.assert(stopOnTurn == 0 || stopOnTurn == 1, "stopOnTurn must be 0 or 1");
            ItDebug.assert((matType >= 0 && matType <= 4) || matType == 8, "invalid mattype");
            ItDebug.assert(pos.Length == 3, "position must be a 3d-point");
            bool flag = matName == null;

            if (flag)
            {
                throw new ArgumentException();
            }
            bool flag2 = maxLen <= 0 || maxWidth <= 0;

            if (flag2)
            {
                throw new ArgumentException();
            }
            bool flag3 = toTurn != 0 && toTurn != 1;

            if (flag3)
            {
                throw new ArgumentException();
            }
            bool flag4 = stopOnTurn != 0 && stopOnTurn != 1;

            if (flag4)
            {
                throw new ArgumentException();
            }
            bool flag5 = (matType < 0 || matType > 4) && matType != 8;

            if (flag5)
            {
                throw new ArgumentException();
            }
            bool flag6 = pos.Length != 3;

            if (flag6)
            {
                throw new ArgumentException();
            }
            matName = ((matName.Length > 20) ? matName.Substring(0, 20) : matName);
            return(ItUniWrapperImpl.addSteelmat(matName, maxLen, maxWidth, toTurn, stopOnTurn, matType, pos));
        }
예제 #13
0
        // Token: 0x060001A1 RID: 417 RVA: 0x0000B7F8 File Offset: 0x000099F8
        internal override void WriteToUnitechnik(ICollection <ExportReinfData> exportedElements)
        {
            int[] pos      = CNCDataBase.toPointArray(base.PosPalette);
            int   maxLen   = CNCDataBase.convertToMM(this._maxLength);
            int   maxWidth = CNCDataBase.convertToMM(this._maxWidth);

            ItUniWrapperImpl.AddSteelmat(this._cfsName, maxLen, maxWidth, this._toTurn, this._stopOnTurn, this._matType, pos);
            foreach (WireItem wireItem in base.WireItemsMajor.Union(base.WireItemsMinor))
            {
                wireItem.sendToUniwrapper();
            }
            exportedElements.Add(new ExportReinfData
            {
                Id         = base.FabricSheet.Id,
                ExportedAs = ExportReinfData.ExportType.AsCFS
            });
        }
예제 #14
0
        // Token: 0x0600010C RID: 268 RVA: 0x00009668 File Offset: 0x00007868
        internal static int StartDocument(int iProduct, int iElementId, ProjectCoordinates projectCoordinates, short iVersion, string strElemName, double dTotalArea, bool clearDocument)
        {
            ItDebug.assert(iProduct >= 0 && iProduct < 100, "product type must be between 0 and 99");
            ItDebug.assert(iElementId >= 0 || iElementId < 999, "elementId must be between 0 and 999");
            bool flag = iProduct < 0 || iProduct >= 100;

            if (flag)
            {
                throw new ArgumentOutOfRangeException();
            }
            bool flag2 = iElementId < 0 && iElementId >= 999;

            if (flag2)
            {
                throw new ArgumentOutOfRangeException();
            }
            strElemName = ((strElemName.Length > 30) ? strElemName.Substring(0, 30) : strElemName);
            double[] array = projectCoordinates.getArray();
            return(ItUniWrapperImpl.startOrder(iProduct, iElementId, array, iVersion, strElemName, dTotalArea, clearDocument));
        }
예제 #15
0
        // Token: 0x0600010F RID: 271 RVA: 0x000097CC File Offset: 0x000079CC
        internal static int AddGirder(string girderName, int[] iParameter)
        {
            ItDebug.assert(girderName != null, "cant handle null as mountPartName");
            ItDebug.assert(iParameter.Length % 4 == 2, "parameter array for mount parts must be array of pairs of 4 elements, plus two (the first two)");
            bool flag = girderName == null;

            if (flag)
            {
                throw new ArgumentException();
            }
            bool flag2 = iParameter.Length % 4 != 2;

            if (flag2)
            {
                throw new ArgumentException();
            }
            girderName = ((girderName.Length > 10) ? girderName.Substring(0, 10) : girderName);
            int iCount = iParameter.Length;

            return(ItUniWrapperImpl.addSet(5, girderName, iCount, iParameter));
        }
예제 #16
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);
        }
예제 #17
0
 // Token: 0x0600011B RID: 283 RVA: 0x00009CE0 File Offset: 0x00007EE0
 public static void SetDoubleWallGap(int doubleWallGap)
 {
     ItUniWrapperImpl.setDoubleWallGap(doubleWallGap);
 }
예제 #18
0
 // Token: 0x06000116 RID: 278 RVA: 0x00009C06 File Offset: 0x00007E06
 internal static void AddStraightRodstock(ItUniWrapperImpl.RodstockData data)
 {
     ItUniWrapperImpl.addStraightRodstock(data);
 }
        // Token: 0x06000221 RID: 545 RVA: 0x0000EEA0 File Offset: 0x0000D0A0
        protected void UnitechnikAddStraightBars(List <List <ItGeCurve3d> > arrayIrons, ElementId id)
        {
            List <ItGeCurve3d> list = arrayIrons.FirstOrDefault <List <ItGeCurve3d> >();
            bool flag = list == null;

            if (flag)
            {
                ItFailures.PostFailure(ItFailures.CAMObjectWithoutValidGeometry, id);
            }
            else
            {
                ItGeCurve3d itGeCurve3d = list.FirstOrDefault <ItGeCurve3d>();
                bool        flag2       = itGeCurve3d == null;
                if (flag2)
                {
                    ItFailures.PostFailure(ItFailures.CAMObjectWithoutValidGeometry, id);
                }
                else
                {
                    ItGePoint3d itGePoint3d;
                    itGeCurve3d.hasStartPoint(out itGePoint3d);
                    ItGeVector3d itGeVector3d;
                    short        unitechnikAngleOfFreeForm = this.GetUnitechnikAngleOfFreeForm(itGeCurve3d, out itGeVector3d);
                    bool         flag3 = arrayIrons.Count > 1;
                    int          num;
                    double       num2;
                    if (flag3)
                    {
                        this.GetSpacingAndCountForUnitechnik(unitechnikAngleOfFreeForm, out num, out num2);
                    }
                    else
                    {
                        ItGeVector3d kOrigin = ItGeVector3d.kOrigin;
                        num2 = 0.0;
                        num  = 1;
                    }
                    uint length = (uint)CNCDataBase.convertToMM(itGeCurve3d.len);
                    ItUniWrapperImpl.RodstockData data = new ItUniWrapperImpl.RodstockData
                    {
                        length              = length,
                        startAngle          = unitechnikAngleOfFreeForm,
                        artNr               = string.Empty,
                        autoProd            = 0,
                        diameter            = (ushort)CNCDataBase.convertToMM(this.RebarBarType.BarDiameter),
                        flexFormNumber      = 0,
                        formType            = 0,
                        hasSpacers          = 0,
                        hasWielding         = 0,
                        pitchSpacer         = 0u,
                        startingPointSpacer = 0u,
                        reinfType           = (byte)base.CNCReinfTypeValue,
                        steelQuality        = SteelGroupElementRebarBase.GetSteelQuality(this.RebarBarType),
                        xcoord              = CNCDataBase.convertToMM(itGePoint3d.x),
                        ycoord              = CNCDataBase.convertToMM(itGePoint3d.y),
                        installationHeight  = (uint)CNCDataBase.convertToMM(itGePoint3d.z),
                        number              = (ushort)(num2.Ne(0.0, -1.0) ? num : 1),
                        pitch               = CNCDataBase.convertToMM(num2)
                    };
                    ItUniWrapperImpl.AddStraightRodstock(data);
                    bool flag4 = num2.Eq(0.0, -1.0) && num > 1;
                    if (flag4)
                    {
                        int num3;
                        for (int i = 1; i < arrayIrons.Count; i = num3 + 1)
                        {
                            itGeCurve3d = arrayIrons[i].FirstOrDefault <ItGeCurve3d>();
                            bool flag5 = itGeCurve3d == null;
                            if (!flag5)
                            {
                                itGeCurve3d.hasStartPoint(out itGePoint3d);
                                data.xcoord = CNCDataBase.convertToMM(itGePoint3d.x);
                                data.ycoord = CNCDataBase.convertToMM(itGePoint3d.y);
                                ItUniWrapperImpl.AddStraightRodstock(data);
                            }
                            num3 = i;
                        }
                    }
                }
            }
        }
예제 #20
0
        // Token: 0x060000E4 RID: 228 RVA: 0x00009110 File Offset: 0x00007310
        protected override void UnitechnikWriteAdditionalSlabData(AssemblyInstance assemblyInstance)
        {
            string strandsTypeName = this.GetStrandsTypeName(assemblyInstance);

            ItUniWrapperImpl.SetSlabInfoFields(strandsTypeName, string.Empty, string.Empty, string.Empty);
        }
예제 #21
0
 // Token: 0x06000118 RID: 280 RVA: 0x00009C4D File Offset: 0x00007E4D
 internal static void SetProjectData(CNCProjectData data)
 {
     ItDebug.assert(data.CheckNoNullFields(), "no fields must be null in the CNCProjectData, use string.Empty instead");
     ItUniWrapperImpl.setProjectData(data);
 }
예제 #22
0
 // Token: 0x06000119 RID: 281 RVA: 0x00009C68 File Offset: 0x00007E68
 public static void AddLayer(int layerType, double dThickness, double dUnitWeight, double dVolume, string sConcreteQuality)
 {
     ItDebug.assert(sConcreteQuality != null, "No strings should be null when being sent to UniWrapper");
     sConcreteQuality = (sConcreteQuality ?? string.Empty);
     ItUniWrapperImpl.addLayer(layerType, dThickness, dUnitWeight, dVolume, sConcreteQuality);
 }
예제 #23
0
 // Token: 0x0600011C RID: 284 RVA: 0x00009CEC File Offset: 0x00007EEC
 public static string GetFullReinforcementString()
 {
     return(ItUniWrapperImpl.getFullReinforcementString());
 }
예제 #24
0
        // Token: 0x06000111 RID: 273 RVA: 0x00009990 File Offset: 0x00007B90
        internal static int AddCFSRodstock(int reinfType, string steelQuality, int numberOfIrons, int diameter, int length, int[] startpoint, int pitch, int angle, string articleNumber, int automaticProduction, int spacerType, int spacerStartpoint, int spacerPitch, int additionalStore)
        {
            ItDebug.assert(reinfType >= 0 && reinfType < 9, "invalid reinfType");
            ItDebug.assert(steelQuality != null, "cant handle null as steel quality");
            ItDebug.assert(numberOfIrons > 0, "cant handle 0 or negative iron number");
            ItDebug.assert(diameter > 0, "cant handle 0 or negative diameter");
            ItDebug.assert(length > 0, "cant handle 0 or negative iron length");
            ItDebug.assert(startpoint.Length == 3, "Startpoint must be a 3d point");
            ItDebug.assert(articleNumber != null, "cant handle null as article number");
            ItDebug.assert(automaticProduction == 0 || automaticProduction == 1, "automaticProduction must be 0 or 1");
            ItDebug.assert(additionalStore >= 0 && additionalStore <= 112, "additional store contains invalid flags");
            bool flag = reinfType < 0 || reinfType >= 9;

            if (flag)
            {
                throw new ArgumentException();
            }
            bool flag2 = steelQuality == null;

            if (flag2)
            {
                throw new ArgumentException();
            }
            bool flag3 = numberOfIrons <= 0;

            if (flag3)
            {
                throw new ArgumentException();
            }
            bool flag4 = diameter <= 0;

            if (flag4)
            {
                throw new ArgumentException();
            }
            bool flag5 = length <= 0;

            if (flag5)
            {
                throw new ArgumentException();
            }
            bool flag6 = startpoint.Length != 3;

            if (flag6)
            {
                throw new ArgumentException();
            }
            bool flag7 = articleNumber == null;

            if (flag7)
            {
                throw new ArgumentException();
            }
            bool flag8 = automaticProduction != 0 && automaticProduction != 1;

            if (flag8)
            {
                throw new ArgumentException();
            }
            bool flag9 = additionalStore < 0 || additionalStore > 112;

            if (flag9)
            {
                throw new ArgumentException();
            }
            return(ItUniWrapperImpl.addCFSRodstock(reinfType, steelQuality, numberOfIrons, diameter, length, startpoint, pitch, angle, articleNumber, automaticProduction, spacerType, spacerStartpoint, spacerPitch, additionalStore));
        }