Example #1
0
        public void GetProperties()
        {
            ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();

            if (modelObjectEnum.GetSize() == 1)
            {
                while (modelObjectEnum.MoveNext())
                {
                    if (modelObjectEnum.Current is Tekla.Structures.Model.Grid)
                    {
                        Grid grid = (Grid)modelObjectEnum.Current;

                        coordinateX = grid.CoordinateX;
                        coordinateY = grid.CoordinateY;
                        coordinateZ = grid.CoordinateZ;
                        labelX      = grid.LabelX;
                        labelY      = grid.LabelY;
                        labelZ      = grid.LabelZ;
                    }
                }
            }
            if (modelObjectEnum.GetSize() > 1)
            {
                coordinateX = "";
                coordinateY = "";
                coordinateZ = "";
                labelX      = "";
                labelY      = "";
                labelZ      = "";
            }
        }
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            try
            {
                Model model = new Model();
                TransformationPlane transformationplane = model.GetWorkPlaneHandler().GetCurrentTransformationPlane();
                model.GetWorkPlaneHandler().SetCurrentTransformationPlane(new TransformationPlane());
                ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();

                if (modelObjectEnum.GetSize() == 1)
                {
                    while (modelObjectEnum.MoveNext())
                    {
                        if (modelObjectEnum.Current is Tekla.Structures.Model.Part)
                        {
                            Tekla.Structures.Model.Part part = modelObjectEnum.Current as Tekla.Structures.Model.Part;
                            double level = 0; part.GetReportProperty("TOP_LEVEL_UNFORMATTED", ref level);
                            akit.CommandStart("ail_create_basic_view", "", "main_frame");
                            akit.ValueChange("Modelling create view", "v1_coordinate", level.ToString("F02"));
                            akit.PushButton("v1_create", "Modelling create view");
                        }
                    }
                }

                model.GetWorkPlaneHandler().SetCurrentTransformationPlane(transformationplane);
            }
            catch { }
        }
Example #3
0
        private void WriteHoles(XmlTextWriter writer, Part part)
        {
            if (part != null)
            {
                ModelObjectEnumerator myHoleEnum = part.GetChildren();
                while (myHoleEnum.MoveNext())
                {
                    BooleanPart myHole = myHoleEnum.Current as BooleanPart;
                    if (myHole != null)
                    {
                        double Width  = 0;
                        double Height = 0;

                        myHole.GetReportProperty("WIDTH", ref Width);
                        myHole.GetReportProperty("HEIGHT", ref Height);

                        writer.WriteStartElement("hole", null);
                        writer.WriteAttributeString("id", myHole.Identifier.ID.ToString());
                        writer.WriteElementString("width", Width.ToString("#####."));
                        writer.WriteElementString("height", Height.ToString("#####."));
                        writer.WriteEndElement();
                    }
                }
            }
        }
Example #4
0
        public static List <ModelObject> ToList(this ModelObjectEnumerator modelObjectEnumerator)
        {
            ModelObjectEnumerator.AutoFetch = true;

            try
            {
                if (modelObjectEnumerator == null)
                {
                    return(null);
                }

                var objs = new List <ModelObject>();
                modelObjectEnumerator.Reset();

                foreach (ModelObject modelObject in modelObjectEnumerator)
                {
                    objs.Add(modelObject);
                }

                return(objs);
            }
            catch
            {
                return(new List <ModelObject>());
            };
        }
Example #5
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            try
            {
                Model model = new Model();
                ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();
                if (modelObjectEnum.GetSize() > 0)
                {
                    while (modelObjectEnum.MoveNext())
                    {
                        if (modelObjectEnum.Current is Tekla.Structures.Model.Part)
                        {
                            Tekla.Structures.Model.Part part = (Tekla.Structures.Model.Part)modelObjectEnum.Current;
                            string USER_FIELD_3 = "", USER_FIELD_4 = "", PRELIM_MARK = "";
                            part.GetUserProperty("USER_FIELD_3", ref USER_FIELD_3);
                            part.GetUserProperty("USER_FIELD_4", ref USER_FIELD_4);
                            part.GetUserProperty("PRELIM_MARK", ref PRELIM_MARK);

                            USER_FIELD_4 = USER_FIELD_4.Replace("(?)", "");

                            if (USER_FIELD_3 == "Z")
                            {
                                part.SetUserProperty("USER_FIELD_2", PRELIM_MARK);
                                part.SetUserProperty("PRELIM_MARK", USER_FIELD_3 + USER_FIELD_4);
                                part.Modify();
                            }
                        }
                    }
                    model.CommitChanges();
                    MessageBox.Show("Process Complete");
                }
            }
            catch { }
        }
Example #6
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            try
            {
                Model          model          = new Model();
                DrawingHandler drawingHandler = new DrawingHandler();

                ArrayList ModelObjectArray = new ArrayList();

                if (drawingHandler.GetActiveDrawing() != null)
                {
                    DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected();
                    while (drawingObjectEnum.MoveNext())
                    {
                        Tekla.Structures.Drawing.ModelObject dModelObject = (Tekla.Structures.Drawing.ModelObject)drawingObjectEnum.Current;
                        ModelObjectArray.Add(model.SelectModelObject(dModelObject.ModelIdentifier));
                    }
                }
                else
                {
                    ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();
                    while (modelObjectEnum.MoveNext())
                    {
                        Tekla.Structures.Model.ModelObject modelObject = (Tekla.Structures.Model.ModelObject)modelObjectEnum.Current;
                        ModelObjectArray.Add(model.SelectModelObject(modelObject.Identifier));
                    }
                }

                Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                modelObjectSelector.Select(ModelObjectArray);
                akit.Callback("acmdCreateViewBySelectedObjectsExtrema", "", "main_frame");
                akit.Callback("acmd_interrupt", "", "main_frame");
            }
            catch { }
        }
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            try
            {
                Model model = new Model();
                ModelObjectEnumerator        modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();
                System.Collections.ArrayList array           = new System.Collections.ArrayList();
                if (modelObjectEnum.GetSize() == 0)
                {
                    Picker picker = new Picker();
                    Part   part   = (Part)picker.PickObject(Tekla.Structures.Model.UI.Picker.PickObjectEnum.PICK_ONE_PART);
                    part.Insert();
                    array.Add(part);
                }

                else
                {
                    while (modelObjectEnum.MoveNext())
                    {
                        if (modelObjectEnum.Current is Part)
                        {
                            Part part = (Part)modelObjectEnum.Current;
                            part.Insert();
                            array.Add(part);
                        }
                    }
                }
                model.CommitChanges();
                Tekla.Structures.Model.UI.ModelObjectSelector modelobjsel = new Tekla.Structures.Model.UI.ModelObjectSelector();
                modelobjsel.Select(array);
            }
            catch { }
        }
Example #8
0
        private void AddReinforcements(Part part, TreeNode partNode)
        {
            ModelObjectEnumerator rebarEnum = part.GetReinforcements();

            while (rebarEnum.MoveNext())
            {
                Reinforcement rebar = null;

                try
                {
                    rebar = rebarEnum.Current as Reinforcement;
                }
                catch
                {
                }

                if (rebar != null)
                {
                    TreeNode childNode = new TreeNode(rebar.Name);
                    childNode.Tag  = rebar.Identifier;
                    childNode.Name = rebar.Identifier.ID.ToString();
                    partNode.Nodes.Add(childNode);
                }
            }
        }
Example #9
0
        public bool ClashCheck()
        {
            bool result = false;

            _selector       = new ModelObectSelector();
            _clashes        = new ArrayList();
            _clashCheckDone = false;
            ArrayList objectsToSelect = new ArrayList();

            objectsToSelect = InsertThreeClashingParts();

            #region 전체 모델의 충돌에 대해 확인
            ModelObjectEnumerator modelObjectEnumerator = _model.GetModelObjectSelector().GetAllObjects();
            foreach (ModelObject modelObject in modelObjectEnumerator)
            {
                objectsToSelect.Add(modelObject);
            }
            #endregion

            _selector.Select(objectsToSelect);
            _model.CommitChanges();

            result = RunClashCheck();

            if (TsEvent != null)
            {
                TsEvent.UnRegister();
            }

            return(result);
        }
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            try
            {
                Model model = new Model();
                TSMUI.ModelObjectSelector modelObjectSelector = new TSMUI.ModelObjectSelector();
                ModelObjectEnumerator     objectsToCopyEnum   = modelObjectSelector.GetSelectedObjects();

                ArrayList objectsToCopyArray = new ArrayList();

                while (objectsToCopyEnum.MoveNext())
                {
                    objectsToCopyArray.Add(objectsToCopyEnum.Current);
                }

                Beam sourceBeam = PickBeam();

                ArrayList modelObjectSelectorArray = new ArrayList();
                modelObjectSelectorArray.Add(sourceBeam);
                modelObjectSelector.Select(modelObjectSelectorArray);
                modelObjectSelectorArray.Clear();

                CopyToAnotherBeamByEndPoint(objectsToCopyArray, sourceBeam);
            }
            catch { }
        }
Example #11
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            Model model = new Model();
            ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();

            Tekla.Structures.Model.UI.Picker picker = new Tekla.Structures.Model.UI.Picker();

            if (modelObjectEnum.GetSize() == 0)
            {
                modelObjectEnum = picker.PickObjects(Tekla.Structures.Model.UI.Picker.PickObjectsEnum.PICK_N_PARTS);
            }

            ArrayList arrayPoints = picker.PickPoints(Tekla.Structures.Model.UI.Picker.PickPointEnum.PICK_TWO_POINTS);
            Point     point1      = (Tekla.Structures.Geometry3d.Point)arrayPoints[0];
            Point     point2      = (Tekla.Structures.Geometry3d.Point)arrayPoints[1];
            Line      line        = new Tekla.Structures.Geometry3d.Line(point1, point2);

            while (modelObjectEnum.MoveNext())
            {
                if (modelObjectEnum.Current is Beam)
                {
                    Beam  beam         = (Beam)modelObjectEnum.Current;
                    Line  line2        = new Line(beam.StartPoint, beam.EndPoint);
                    Point intersection = Intersection.LineToLine(line, line2).Point1;
                    Tekla.Structures.Model.Operations.Operation.Split(beam, intersection);
                }
            }
            model.CommitChanges();
        }
Example #12
0
 public static IEnumerable <ModelObject> ToIEnumerable(ModelObjectEnumerator enumerator)
 {
     while (enumerator.MoveNext())
     {
         yield return(enumerator.Current);
     }
 }
Example #13
0
 private static void GetCoordinateSystemAndNameOfSelectedObject(ModelObjectEnumerator SelectedModelObjects, out Tekla.Structures.Geometry3d.CoordinateSystem ModelObjectCoordSys, out string ModelObjectName)
 {
     if (SelectedModelObjects.Current is Tekla.Structures.Model.Part)
     {
         ModelObjectCoordSys = (SelectedModelObjects.Current as Tekla.Structures.Model.Part)
                               .GetCoordinateSystem();
         ModelObjectName = (SelectedModelObjects.Current as Tekla.Structures.Model.Part)
                           .GetPartMark();
     }
     else if (SelectedModelObjects.Current is Tekla.Structures.Model.Assembly)
     {
         ModelObjectCoordSys = (SelectedModelObjects.Current as Tekla.Structures.Model.Assembly)
                               .GetMainPart().GetCoordinateSystem();
         ModelObjectName = (SelectedModelObjects.Current as Tekla.Structures.Model.Assembly)
                           .AssemblyNumber.Prefix +
                           (SelectedModelObjects.Current as Tekla.Structures.Model.Assembly).AssemblyNumber.StartNumber;
     }
     else if (SelectedModelObjects.Current is Tekla.Structures.Model.BaseComponent)
     {
         ModelObjectCoordSys = (SelectedModelObjects.Current as Tekla.Structures.Model.BaseComponent)
                               .GetCoordinateSystem();
         ModelObjectName = (SelectedModelObjects.Current as Tekla.Structures.Model.BaseComponent)
                           .Name;
     }
     else
     {
         ModelObjectCoordSys = new Tekla.Structures.Geometry3d.CoordinateSystem();
         ModelObjectName     = "";
     }
 }
Example #14
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            try
            {
                Model model = new Model();
                ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();
                if (modelObjectEnum.GetSize() > 0)
                {
                    while (modelObjectEnum.MoveNext())
                    {
                        if (modelObjectEnum.Current is Tekla.Structures.Model.Part)
                        {
                            Tekla.Structures.Model.Part part = (Tekla.Structures.Model.Part)modelObjectEnum.Current;
                            string    mark                = "";
                            Hashtable strProps            = new Hashtable();
                            ArrayList PartStrRepPropNames = new ArrayList();
                            PartStrRepPropNames.Add("ASSEMBLY_POS");
                            part.GetStringReportProperties(PartStrRepPropNames, ref strProps);
                            if ((mark = (string)strProps["ASSEMBLY_POS"]) == null)
                            {
                                mark = "";
                            }

                            mark = mark.Replace("(?)", "");

                            part.SetUserProperty("USER_FIELD_4", mark);
                            part.Modify();
                        }
                    }
                    model.CommitChanges();
                    MessageBox.Show("Process Complete");
                }
            }
            catch { }
        }
        public PDLength()
        {
            System.Type[] selectionType = new System.Type[1];
            selectionType.SetValue(typeof(TSM.CustomPart), 0);

            Model myModel = new Model();
            ModelObjectEnumerator allObjects = myModel.GetModelObjectSelector().GetAllObjectsWithType(selectionType);

            while (allObjects.MoveNext())
            {
                if (allObjects.Current is TSM.CustomPart)
                {
                    TSM.CustomPart currentComponent = allObjects.Current as TSM.CustomPart;
                    if (currentComponent.Name == "EB_PD")
                    {
                        double curWidth  = 0.0;
                        double curLength = 0.0;

                        currentComponent.GetUserProperty("w", ref curWidth);
                        currentComponent.GetUserProperty("L", ref curLength);

                        string newName = "PD" + curWidth.ToString() + " L=" + curLength.ToString();
                        currentComponent.SetUserProperty("P1a", newName);
                        currentComponent.Modify();
                    }
                }
            }
            myModel.CommitChanges();
        }
Example #16
0
        } // Read

        protected Dictionary<string, T> ReadModObj<T>() where T : ModelObject
        {
            var result = new Dictionary<string, T>();
            selector = model.GetModelObjectSelector();
            Type[] Types = new Type[1];
            Types.SetValue(typeof(T), 0);
            ModelObjectEnumerator objParts = selector.GetAllObjectsWithType(Types);
            int totalCnt = objParts.GetSize();
            var progress = new Operation.ProgressBar();
            bool displayResult = progress.Display(100, "TSmatch", "Reading model. Pass component records:", "Cancel", " ");
            int iProgress = 0;
            while(objParts.MoveNext())
            {
                T myObj = objParts.Current as T;
                if (myObj == null) continue;
                string guid = string.Empty;
                myObj.GetReportProperty("GUID", ref guid);
                result.Add(guid, myObj);
                iProgress++;
                if (iProgress % 500 == 0)
                {
                    progress.SetProgress(iProgress.ToString(), 100 * iProgress / totalCnt);
                    if (progress.Canceled()) break;
                }
            }
            progress.Close();
            return result;
        }
        public CurrentSelectedObjects(string channelProfile, string channelClass, Model Model)
        {
            Model ThisModel = Model;

            //User interface for the model
            TSMUI.ModelObjectSelector GetSelectedObjects = new TSMUI.ModelObjectSelector();

            // Model Object Enumerator (from Tekla.Structures.Model namespace) collection of selected objects
            ModelObjectEnumerator SelectedObjects = GetSelectedObjects.GetSelectedObjects();

            // Change channel profile to value passed in constructor
            ChannelProfile = channelProfile;
            // Set class to value passed in constructor
            ChannelClass = channelClass;

            // go through objects in model objects enumerator MoveNext returns false at end of collection
            while (SelectedObjects.MoveNext())
            {
                // cast as beam, model 'object' class is just an abstract class, we must call out beams specifically.
                Beam ThisBeam = SelectedObjects.Current as Beam;
                if (ThisBeam != null)
                {
                    // Pass profile and class for beam from constructor
                    ThisBeam.Profile.ProfileString = ChannelProfile;
                    ThisBeam.Class = ChannelClass;
                    //Apply new start point and end point
                    ThisBeam.StartPoint = new T3D.Point(1000, 0, 0);
                    ThisBeam.EndPoint   = new T3D.Point(4000, 1000, 0);

                    // Method to modify beam and apply changes
                    ThisBeam.Modify();
                }
            }
        }
            private static ModelObjectEnumerator getSelectedObjects()
            {
                var selector = new TSM.UI.ModelObjectSelector();
                ModelObjectEnumerator selectionEnum = selector.GetSelectedObjects();

                return(selectionEnum);
            }
Example #19
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            MyModel.GetWorkPlaneHandler().SetCurrentTransformationPlane(new TransformationPlane());
            Tekla.Structures.Model.UI.ModelObjectSelector MS = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator Menum          = MS.GetSelectedObjects();
            List <Beam>           AllPartList    = EnumtoArray(Menum).OfType <Beam>().ToList();
            List <int>            AllPartListIds = AllPartList.Select(x => x.Identifier.ID).ToList();
            List <Beam>           BeamList       = AllPartList.Where(x => x.Name == "BEAM").ToList();

            int ConCount = 0;

            foreach (Beam bem in BeamList)
            {
                bem.Select();
                // Start Side
                Beam StartBeam = GetPrimary(bem, AllPartListIds, "Start");
                if (StartBeam != null && !IsConnectionApplied(bem, StartBeam))
                {
                    //MessageBox.Show(StartBeam.Identifier.ID.ToString());
                    ApplyConn(StartBeam, bem, "Start");
                    ConCount++;
                }

                Beam EndBeam = GetPrimary(bem, AllPartListIds, "End");
                if (EndBeam != null && !IsConnectionApplied(bem, EndBeam))
                {
                    ApplyConn(EndBeam, bem, "End");
                    ConCount++;
                }
            }

            MessageBox.Show("Total Connection Applied : " + ConCount.ToString());
        }
Example #20
0
        internal void ModifyGrid(ref Model myModel)
        {
            bool Success = false;
            ModelObjectEnumerator Enumerator = myModel.GetModelObjectSelector().GetAllObjects();

            while (!Success && Enumerator.MoveNext())
            {
                ModelObject ModelObject = Enumerator.Current as ModelObject;
                Type        ObjectType  = ModelObject.GetType();

                while (ObjectType != typeof(Grid) && ObjectType.BaseType != null)
                {
                    ObjectType = ObjectType.BaseType;
                }


                if (ObjectType == typeof(Grid))
                {
                    Success = true;
                }
            }

            Grid curGr = Enumerator.Current as Grid;
            var  ff    = GetGridXString();

            curGr.CoordinateX = ff.Item1;
            curGr.CoordinateY = string.Format("{0:F2} 2*{1:F2}", BeamWidth * -0.5, BeamWidth * 0.5);
            curGr.LabelX      = ff.Item2;
            curGr.LabelY      = "R C L";
            curGr.Modify();
            myModel.CommitChanges();
        }
 public static dynamic GetTSObject(ModelObjectEnumerator dynObject)
 {
     if (dynObject is null)
     {
         return(null);
     }
     return(dynObject.teklaObject);
 }
Example #22
0
        public string GetInfo()
        {
            Model model = new Model();

            Tekla.Structures.Model.UI.ModelObjectSelector selector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator enumerator = selector.GetSelectedObjects();

            return(enumerator.GetSize().ToString());
        }
        public static List <ModelObject> ToList(this ModelObjectEnumerator enumerator)
        {
            var modelObjects = new List <ModelObject>();

            while (enumerator.MoveNext())
            {
                var modelObject = enumerator.Current;
                modelObjects.Add(modelObject);
            }
            return(modelObjects);
        }
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            Model myModel = new Model();
            ModelObjectEnumerator selectedObjects   = getSelectedObjects();
            ArrayList             selectedAssemblys = getSelectedAssemblys(selectedObjects);

            foreach (Assembly currentAssembly in selectedAssemblys)
            {
                assemblyManager(currentAssembly, akit);
            }
        }
Example #25
0
        public static List <ModelObject> ToList(this ModelObjectEnumerator enumerator, bool selectInstances = false)
        {
            enumerator.SelectInstances = selectInstances;
            var output = new List <ModelObject>(enumerator.GetSize());

            while (enumerator.MoveNext())
            {
                output.Add(enumerator.Current);
            }

            return(output);
        }
        GetModelObjectsAsList(ModelObjectEnumerator enumerator)
        {
            var modelObjects = new List <ModelObject>();

            while (enumerator.MoveNext())
            {
                var modelObject = enumerator.Current;
                modelObjects.Add(modelObject);
            }

            return(modelObjects);
        }
Example #27
0
        private void MallinnaLaatta()
        {
            ModelObjectSelector   mSelector = malli.GetModelObjectSelector();
            ModelObjectEnumerator enumer    = mSelector.GetAllObjects();

            for (int i = 0; i < enumer.GetSize(); i++)
            {
                ModelObject obj = enumer.Current;
                if (obj is ContourPlate)
                {
                    if (((ContourPlate)obj).Name == "LASKETTU_LAATTA")
                    {
                        ContourPlate laattaTemp = (ContourPlate)obj;
                        laattaTemp.Contour.ContourPoints[0] = new ContourPoint(new Point(0, 0, 3000), null);
                        laattaTemp.Contour.ContourPoints[1] = new ContourPoint(new Point(0, laatanKorkeus, 3000), null);
                        laattaTemp.Contour.ContourPoints[2] = new ContourPoint(new Point(laatanLeveys, laatanKorkeus, 3000), null);
                        laattaTemp.Contour.ContourPoints[3] = new ContourPoint(new Point(laatanLeveys, 0, 3000), null);
                        PoistaRaudoitus(laattaTemp);
                        laattaTemp.Modify();
                        malli.CommitChanges();
                        return;
                    }
                }
                enumer.MoveNext();
            }
            ContourPlate laatta = new ContourPlate();

            laatta.Name = "LASKETTU_LAATTA";
            ContourPoint vasenAlanurkka = new ContourPoint(new Point(0, 0, 3000), null);
            ContourPoint vasenYlanurkka = new ContourPoint(new Point(0, laatanKorkeus, 3000), null);
            ContourPoint oikeaYlanurkka = new ContourPoint(new Point(laatanLeveys, laatanKorkeus, 3000), null);
            ContourPoint oikeaAlanurkka = new ContourPoint(new Point(laatanLeveys, 0, 3000), null);

            laatta.AddContourPoint(vasenAlanurkka);
            laatta.AddContourPoint(vasenYlanurkka);
            laatta.AddContourPoint(oikeaYlanurkka);
            laatta.AddContourPoint(oikeaAlanurkka);

            laatta.Profile.ProfileString = Asetukset.LaatanPaksuus.ToString();
            if (!string.IsNullOrWhiteSpace(Asetukset.BetoninLujuus.ToString()))
            {
                laatta.Material.MaterialString = betonimateriaalit[Asetukset.BetoninLujuus];
            }
            else
            {
                laatta.Material.MaterialString = "Concrete_Undefined";
            }
            laatta.Position.Depth = Position.DepthEnum.FRONT;

            laatta.Insert();
            malli.CommitChanges();
        }
Example #28
0
        private void createSeamOfMultipleParts(string name, int number)
        {
            Seam seam = new Seam();

            seam.Name   = name;
            seam.Number = number;

            Picker picker = new Picker();

            try
            {
                seam.SetPrimaryObject(picker.PickObject(Picker.PickObjectEnum.PICK_ONE_PART, "Wybierz element główny"));
                ModelObjectEnumerator partsEnumerator = picker.PickObjects(Picker.PickObjectsEnum.PICK_N_OBJECTS, "Wybierz elementy podrzędne");
                ArrayList             secondaryParts  = new ArrayList();

                foreach (ModelObject modelObject in partsEnumerator)
                {
                    secondaryParts.Add(modelObject);
                }
                seam.SetSecondaryObjects(secondaryParts);
                seam.SetInputPositions(picker.PickPoint(), picker.PickPoint());
            }
            catch (ApplicationException ex)
            {
                Operation.DisplayPrompt("Przerwano operację");
                return;
            }
            if (number != BaseComponent.CUSTOM_OBJECT_NUMBER)
            {
                seam.Insert();
            }
            else
            {
                try
                {
                    if (isExisting(seam))
                    {
                        seam.Insert();
                    }
                    else
                    {
                        importCustomComponent(seam);
                        seam.Insert();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Nie udało się wstawić komponentu", "Error");
                }
            }
            MyModel.CommitChanges();
        }
Example #29
0
        private void PoistaRaudoitus(ModelObject laatta)
        {
            ModelObjectEnumerator rautaEnum = malli.GetModelObjectSelector().GetAllObjects();

            for (int j = 0; j < rautaEnum.GetSize(); j++)
            {
                if (rautaEnum.Current != null && rautaEnum.Current is RebarMesh)
                {
                    ((RebarMesh)rautaEnum.Current).Delete();
                }
                rautaEnum.MoveNext();
            }
        }
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            Model myModel = new Model();

            ModelObjectEnumerator selectedObjects = getSelectedObjects();
            ArrayList             selectedParts   = getSelectedRebarGroups(selectedObjects);

            foreach (TSM.RebarGroup currentRebarGroup in selectedParts)
            {
                ungroupRebar(currentRebarGroup);
            }
            myModel.CommitChanges();
        }
        private static ArrayList getSelectedBooleans(ModelObjectEnumerator selectedObjects)
        {
            ArrayList selectedParts = new ArrayList();

            while (selectedObjects.MoveNext())
            {
                if (selectedObjects.Current is TSM.BooleanPart)
                {
                    selectedParts.Add(selectedObjects.Current);
                }
            }

            return selectedParts;
        }
            private static List<Assembly> getSelectedAssemblys(ModelObjectEnumerator selectedObjects)
            {
                List<Assembly> selectedAssemblys = new List<Assembly>();

                while (selectedObjects.MoveNext())
                {
                    if (selectedObjects.Current is Assembly)
                    {
                        selectedAssemblys.Add(selectedObjects.Current as Assembly);
                    }
                }

                return selectedAssemblys;
            }
 /*
 private bool IgnoreObject(ModelObject modelObject)
 {
     Model model = new Model();
     string gUIDByIdentifier = model.GetGUIDByIdentifier(modelObject.Identifier);
     bool result = false;
     if (this.settings.ObjectsToIgnore.Contains(gUIDByIdentifier))
     {
         result = true;
     }
     else
     {
         int count = this.settings.FilterList.Count;
         for (int i = 0; i < count; i++)
         {
             string filterName = this.settings.FilterList[i];
             if (Operation.ObjectMatchesToFilter(modelObject, filterName))
             {
                 result = true;
             }
         }
     }
     return result;
 }*/
 private bool CheckIfIgnored(ModelObjectEnumerator modelObjectEnumerator, ModelObject part)
 {
     bool result = false;
     if (modelObjectEnumerator != null)
     {
         foreach (ModelObject modelObject in modelObjectEnumerator)
         {
             if (part.Identifier.ID == modelObject.Identifier.ID)
             {
                 return true;
             }
         }
         return result;
     }
     return result;
 }
        private void CheckObjectList(ref List<ObjectInfo> problemObjects, ModelObjectEnumerator partList, ref int partFoundCount, ref int ignorePartCount)
        {
            partList.SelectInstances = false;

            Tekla.Structures.Model.Model model = new Model();
            if (!model.GetConnectionStatus())
            {
                MessageBox.Show("Tekla is not open.");
                Environment.Exit(1);
            }

            foreach (ModelObject modelObject in partList)
            {
                if (true) // !this.IgnoreObject(modelObject))
                {
                    Part part = modelObject as Part;
                    if (part != null)
                    {
                        partFoundCount++;

                        string profile = "";
                        string profileType = "";
                        double height = new double();
                        double width = new double();
                        double wallThickness = new double();

                        string[] profileList;

                        part.GetReportProperty("PROFILE", ref profile);
                        part.GetReportProperty("PROFILE_TYPE", ref profileType);
                        part.GetReportProperty("HEIGHT", ref height);
                        part.GetReportProperty("WIDTH", ref width);
                        part.GetReportProperty("PROFILE.PLATE_THICKNESS", ref wallThickness);
                        
                        // splits profile string into segments, uses numerical values as split separators
                        profileList = Regex.Split(profile, @"[0-9]+");
                        
                        MessageBox.Show(
                            "profile:\n" + 
                            profile + 
                            "\n profile Type: \n" +
                            profileType + 
                            "\n profileList:\n" + 
                            profileList[0] +
                            "\n height:" + height +
                            "\n width:" + width);

                        // round dimensions to 0 or 1 digits
                        height = DimensionRound(height);
                        width = DimensionRound(width);
                        wallThickness = DimensionRound(wallThickness);

                        if (profileType == "M" && profileList != null) // M for rectangular tubes
                        {
                            if (profileList.Length >= 2)
                            {
                                if (profileList[0] != "RHS" || profileList[1] != "X")
                                {
                                    // SHS profiles dont' have parameter 'width'
                                    if (width == 0) width = height;

                                    part.Select();
                                    // System.Globalization.CultureInfo.InvariantCulture is used, to always get dots (and not commas) in cases,
                                    // where one of profile parameters is rounded to 1 digit (e.g. 88.9 instead of 88,9)
                                    part.Profile.ProfileString = 
                                        "RHS" + 
                                        height.ToString(System.Globalization.CultureInfo.InvariantCulture) + 
                                        "X" + 
                                        width.ToString(System.Globalization.CultureInfo.InvariantCulture) + 
                                        "X" + 
                                        wallThickness;
                                    try
                                    {
                                        part.Modify();
                                    }
                                    catch (Exception e)
                                    {
                                        MessageBox.Show(e.ToString());
                                    }
                                }
                            }
                        }

                        if (profileType == "RO") // RO for circular tubes
                        {
                            if (profileList.Length >= 2)
                            {
                                if (profileList[0] != "Ø" || profileList[1] != "X")
                                {
                                    part.Select();

                                    part.Profile.ProfileString = 
                                        "Ø" + 
                                        height.ToString(System.Globalization.CultureInfo.InvariantCulture) + 
                                        "X" + 
                                        wallThickness.ToString(System.Globalization.CultureInfo.InvariantCulture);

                                    part.Modify();
                                }
                            }
                        }

                        if (profileType == "RU") // RU for circular rods
                        {
                            if (profileList.Length >= 1)
                            {
                                if (profileList[0] != "D")
                                {
                                    part.Profile.ProfileString = "D" + height.ToString(System.Globalization.CultureInfo.InvariantCulture);
                                    part.Modify();
                                }
                            }
                        }

                        /*
                        if (!(this.settings.PropertyName == "AssemblyPrefix") || IsMainPart(part))
                        {
                            string item = "asdfghjkl9999";
                            if (!part.GetReportProperty(this.settings.PropertyReportField, ref item) || !this.settings.ProjectProperties.Contains(item))
                            {
                                problemObjects.Add(new ObjectInfo(part));
                            }
                        }
                        */
                    }
                }
                else
                {
                    ignorePartCount++;
                }
            }
        }