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 { }
        }
        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 { }
        }
            private static void selectInitialObjects(List <Assembly> selectedAssemblys)
            {
                ArrayList initialSelectedAssemblys = new ArrayList(selectedAssemblys);

                var selector = new TSM.UI.ModelObjectSelector();

                selector.Select(initialSelectedAssemblys);
            }
Esempio n. 4
0
        private void Button1_Click(object sender, RoutedEventArgs e)
        {
            Model Model = new Model();

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

            string text = textbox1.Text;

            TSMUI.ModelObjectSelector MS = new TSMUI.ModelObjectSelector();

            ArrayList ModelObjectLists = new ArrayList();

            if (string.IsNullOrWhiteSpace(textbox1.Text))
            {
                return;
            }
            else
            {
                List <string> guidList = text.Split(' ').ToList();

                foreach (string guid in guidList)
                {
                    Identifier ModelID = Model.GetIdentifierByGUID(guid);
                    var        rebar   = Model.SelectModelObject(ModelID);
                    if (rebar is RebarGroup)
                    {
                        ModelObjectLists.Add(rebar);
                    }
                    else
                    {
                        var Singlerebar = Model.SelectModelObject(ModelID) as SingleRebar;
                        ModelObjectLists.Add(Singlerebar);
                    }
                }
            }

            MS.Select(ModelObjectLists);

            Tekla.Structures.ModelInternal.Operation.dotStartAction("ZoomToSelected", "");
            Model.CommitChanges();

            ModelObjectEnumerator objects = new TSMUI.ModelObjectSelector().GetSelectedObjects();

            if (objects.GetSize() < 1)
            {
                Tekla.Structures.Model.Operations.Operation.DisplayPrompt("No objects selected. Check if GUID is correct.");
            }
        }
Esempio n. 5
0
        private void buttonExport_Click(object sender, EventArgs e)
        {
            var selection = new Picker()
                            .PickObjects(Picker.PickObjectsEnum.PICK_N_OBJECTS, "Pick Objects")
                            .ToAList <ModelObject>();

            var selector = new Tekla.Structures.Model.UI.ModelObjectSelector();

            selector.Select(new ArrayList(selection), false);

            var modelPath = _model.GetInfo().ModelPath;
            var modelName = _model.GetInfo().ModelName.Split('.')[0];

            ExportIFC($"{modelPath}\\IFC\\OUT_{modelName}");
        }
Esempio n. 6
0
        private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            Identifier id   = e.Node.Tag as Identifier;
            Beam       beam = new Beam();

            beam.Identifier = id;

            ArrayList mObjects = new ArrayList();

            mObjects.Add(beam);
            UI.ModelObjectSelector selector = new UI.ModelObjectSelector();

            preventModelSelectionEvent = true;
            selector.Select(mObjects);
            preventModelSelectionEvent = false;
        }
            private static void exportCurrentAssembly(Assembly assembly)
            {
                ArrayList currentAssemblySelect = new ArrayList();
                currentAssemblySelect.Add(assembly);

                var selector = new TSM.UI.ModelObjectSelector();
                selector.Select(currentAssemblySelect);

                try
                {
                    string name = getFileName(assembly);
                    exportIFC(name);
                }
                catch
                {
                    MessageBox.Show("Element sisaldab keelatuid märke");
                }
            }
        private void SelectModelObjectsInUi(List <int> ids)
        {
            var modelObjects = new ArrayList();

            ids.ForEach(id =>
            {
                var modelObject = _model.SelectModelObject(new Identifier(id));
                if (modelObject == null)
                {
                    return;
                }
                modelObjects.Add(modelObject);
            });

            var selector = new Tekla.Structures.Model.UI.ModelObjectSelector();

            selector.Select(modelObjects);
        }
        private static void assemblyManager(Assembly currentAssembly, Tekla.Technology.Akit.IScript akit)
        {
            ArrayList currentSelection = new ArrayList();

            currentSelection.Add(currentAssembly);

            var ModelSelector = new TSM.UI.ModelObjectSelector();

            ModelSelector.Select(currentSelection);

            removeAssemblyPropertys(currentAssembly, akit);

            ArrayList subs = currentAssembly.GetSubAssemblies();

            foreach (Assembly sub in subs)
            {
                assemblyManager(sub, akit);
            }
        }
            private static void exportCurrentAssembly(Assembly assembly)
            {
                ArrayList currentAssemblySelect = new ArrayList();

                currentAssemblySelect.Add(assembly);

                var selector = new TSM.UI.ModelObjectSelector();

                selector.Select(currentAssemblySelect);

                try
                {
                    string name = getFileName(assembly);
                    exportIFC(name);
                }
                catch
                {
                    MessageBox.Show("Element sisaldab keelatuid märke");
                }
            }
Esempio n. 11
0
        private void treeView2_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                _activeTree = treeView2;
                contextMenuStrip1.Show(new Point(e.X + this.Location.X + this.treeView2.Bounds.X + 50, e.Y + this.Location.Y + this.treeView2.Bounds.Y));
            }
            else
            {
                Identifier id   = new Identifier(Convert.ToInt32(e.Node.Name)); //e.Node.Tag as Identifier;
                Beam       beam = new Beam();
                beam.Identifier = id;

                ArrayList mObjects = new ArrayList();
                mObjects.Add(beam);
                UI.ModelObjectSelector selector = new UI.ModelObjectSelector();

                preventModelSelectionEvent = true;
                selector.Select(mObjects);
                preventModelSelectionEvent = false;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            #region connection to Tekla Structures and basic model path, version information

            Model  Model1        = new Model();
            string modelname     = Model1.GetInfo().ModelName;
            string modelpath     = Model1.GetInfo().ModelPath;
            string configuration = ModuleManager.Configuration.ToString();
            string TSversion     = TeklaStructuresInfo.GetCurrentProgramVersion();

            string tB = textBox1.Text;
            char   ch = '*';

            List <Beam>         ListBeamPlate = new List <Beam>();         // List Beam
            List <ContourPlate> ListPlate     = new List <ContourPlate>(); //List Plate
            List <PolyBeam>     ListPolyBeam  = new List <PolyBeam>();     //List Poly Beam

            ArrayList AllParts = new ArrayList();

            #endregion

            string CNC_Files = textBox2.Text;

            if (!Directory.Exists(modelpath + @"\" + CNC_Files))
            {
                Directory.CreateDirectory(modelpath + @"\" + CNC_Files);
            }

            //Выбор деталей
            Picker Picker = new Picker();

            try
            {   //Перечесляем выбранные детали
                ModelObjectEnumerator input = Picker.PickObjects(Picker.PickObjectsEnum.PICK_N_PARTS, "Выберите детали");

                IEnumerator enumerator = input.GetEnumerator();

                //добовляем в масив
                while (enumerator.MoveNext())
                {
                    Beam         beam         = enumerator.Current as Beam;
                    ContourPlate contourPlate = enumerator.Current as ContourPlate;
                    PolyBeam     polyBeam     = enumerator.Current as PolyBeam;

                    if (beam != null)
                    {
                        ListBeamPlate.Add(beam);
                    }
                    if (contourPlate != null)
                    {
                        ListPlate.Add(contourPlate);
                    }
                    if (polyBeam != null)
                    {
                        ListPolyBeam.Add(polyBeam);
                    }
                }

                #region
                //    ArrayList ObjectsToSelect = new ArrayList();

                //    Part part = enumerator.Current as Part;
                //    ObjectsToSelect.Add(part);

                // string partProfileF = part.Profile.ProfileString;
                //    char ch = '*';
                //int partProfileF2 = partProfileF.IndexOf(ch);

                //ArrayList pathPartA = new ArrayList();

                //try { string partProfileF3 = partProfileF.Remove(partProfileF.IndexOf('*'), partProfileF.Length - partProfileF.IndexOf('*')); pathPartA.Add(partProfileF3); }
                //catch { string partProfileF3 = partProfileF; pathPartA.Add(partProfileF3); }

                //    string partProfileF1 = pathPartA[0].ToString();

                //    int indexOf = partProfileF.IndexOf("PL");
                //    string partMaterial = part.Material.MaterialString;
                //    Tekla.Structures.Model.UI.ModelObjectSelector MS = new Tekla.Structures.Model.UI.ModelObjectSelector();
                //    MS.Select(ObjectsToSelect);


                //    if (indexOf == 0)
                //    {

                //        if (!Directory.Exists(modelpath + @"\" + CNC_Files + @"\" + partProfileF1 + "_" + partMaterial))
                //        {
                //            Directory.CreateDirectory(modelpath + @"\" + CNC_Files + @"\" + partProfileF1 + "_" + partMaterial);
                //        }


                //        string pathPart = modelpath + @"\" + CNC_Files + @"\" + partProfileF1 + "_" + partMaterial + @"\";


                //        Operation.CreateNCFilesFromSelected("DSTV for plates", pathPart);

                //        Operation.DisplayPrompt("ok");
                //    }

                // }
                #endregion
            }
            catch { Operation.DisplayPrompt("что то пошло не так..."); }
            // находим в пластины замоделенной балке
            int countPlateBeamT = 0;

            List <MyPlate> PlateBeamT = new List <MyPlate>();

            foreach (Beam beam in ListBeamPlate)
            {
                string PB = beam.Profile.ProfileString;

                if (PB.StartsWith(tB))
                {
                    string  PP1     = PB.Substring(0, PB.LastIndexOf(ch));
                    string  PP2     = beam.Material.MaterialString;
                    MyPlate myPlate = new MyPlate
                    {
                        PlateProfile  = PP1,
                        PlateMaterial = PP2
                    };
                    PlateBeamT.Add(myPlate);
                    countPlateBeamT++;
                }
            }

            foreach (PolyBeam beam in ListPolyBeam)
            {
                string PB = beam.Profile.ProfileString;

                if (PB.StartsWith(tB))
                {
                    string  PP1     = PB.Substring(0, PB.LastIndexOf(ch));
                    string  PP2     = beam.Material.MaterialString;
                    MyPlate myPlate = new MyPlate
                    {
                        PlateProfile  = PP1,
                        PlateMaterial = PP2
                    };
                    PlateBeamT.Add(myPlate);

                    countPlateBeamT++;
                }
            }

            int countPlatePlate = 0;

            foreach (ContourPlate contourPlate in ListPlate)
            {
                string PP1 = contourPlate.Profile.ProfileString;
                string PP2 = contourPlate.Material.MaterialString;

                MyPlate myPlate = new MyPlate
                {
                    PlateProfile  = PP1,
                    PlateMaterial = PP2
                };

                PlateBeamT.Add(myPlate);
                countPlatePlate++;
            }


            //Объединение list<>
            List <MyPlate> filterMP        = new List <MyPlate>();
            List <MyPlate> filterMP2       = new List <MyPlate>();
            List <MyPlate> filterMP2Sorted = new List <MyPlate>(); // итоговый список

            var dist = PlateBeamT.Distinct(new MyPlateComparer());

            foreach (MyPlate s in dist)
            {
                try
                {
                    string  PP      = s.PlateProfile.Substring(0, s.PlateProfile.LastIndexOf("."));
                    string  PM      = s.PlateMaterial;
                    MyPlate myPlate = new MyPlate
                    {
                        PlateProfile  = PP,
                        PlateMaterial = PM,
                    };
                    filterMP.Add(myPlate);
                }
                catch
                {
                    string  PP      = s.PlateProfile;
                    string  PM      = s.PlateMaterial;
                    MyPlate myPlate = new MyPlate
                    {
                        PlateProfile  = PP,
                        PlateMaterial = PM,
                    };
                    filterMP.Add(myPlate);
                }
            }


            var dist2 = filterMP.Distinct(new MyPlateComparer());

            foreach (MyPlate d in dist2)
            {
                filterMP2.Add(d);
            }

            var SortedfMP2 = from u in filterMP2
                             orderby u.PlateMaterial, u.PlateProfile
            select u;

            foreach (MyPlate u in SortedfMP2)
            {
                filterMP2Sorted.Add(u);
            }
            //выбор деталей по толщине и марке стали
            for (int i = 0; i < filterMP2Sorted.Count; i++)
            {
                try
                {
                    ArrayList y1 = new ArrayList();

                    var x1 = from plate in ListPlate
                             where plate.Profile.ProfileString == filterMP2Sorted[i].PlateProfile
                             where plate.Material.MaterialString == filterMP2Sorted[i].PlateMaterial
                             select plate;

                    var x2 = from plateB in ListBeamPlate
                             where plateB.Profile.ProfileString.StartsWith(filterMP2Sorted[i].PlateProfile)
                             where plateB.Material.MaterialString == filterMP2Sorted[i].PlateMaterial
                             select plateB;

                    var x3 = from plateB in ListPolyBeam
                             where plateB.Profile.ProfileString.StartsWith(filterMP2Sorted[i].PlateProfile)
                             where plateB.Material.MaterialString == filterMP2Sorted[i].PlateMaterial
                             select plateB;

                    foreach (ContourPlate plate in x1)
                    {
                        y1.Add(plate);
                    }

                    foreach (Beam beam in x2)
                    {
                        y1.Add(beam);
                    }

                    foreach (PolyBeam polyBeam in x3)
                    {
                        y1.Add(polyBeam);
                    }


                    Tekla.Structures.Model.UI.ModelObjectSelector MS = new Tekla.Structures.Model.UI.ModelObjectSelector();
                    MS.Select(y1);

                    if (!Directory.Exists(modelpath + @"\" + CNC_Files + @"\" + filterMP2Sorted[i].PlateProfile + "_" + filterMP2Sorted[i].PlateMaterial))
                    {
                        Directory.CreateDirectory(modelpath + @"\" + CNC_Files + @"\" + filterMP2Sorted[i].PlateProfile + "_" + filterMP2Sorted[i].PlateMaterial);
                    }

                    string pathPart = modelpath + @"\" + CNC_Files + @"\" + filterMP2Sorted[i].PlateProfile + "_" + filterMP2Sorted[i].PlateMaterial + @"\";

                    Operation.CreateNCFilesFromSelected("DSTV for plates", pathPart);
                }

                catch { Operation.DisplayPrompt("что то пошло не так...."); }
            }

            Tekla.Structures.Model.UI.ModelObjectSelector MS1 = new Tekla.Structures.Model.UI.ModelObjectSelector();
            MS1.Select(AllParts);
            Operation.DisplayPrompt("Готово... //work by Wiz//");
        }
Esempio n. 13
0
        private void btn_Get_Assembly_Click(object sender, EventArgs e)
        {
            TSMUI.Picker thisPicker = new TSMUI.Picker();
            Part         pickedPart = null;

            try
            {
                pickedPart = thisPicker.PickObject(TSMUI.Picker.PickObjectEnum.PICK_ONE_PART) as Part;
            }
            catch
            {
                pickedPart = null;
            }

            if (pickedPart != null)
            {
                Assembly    thisAssembly = pickedPart.GetAssembly();
                ModelObject mainObject   = thisAssembly.GetMainPart();
                Part        mainPart     = mainObject as Part;

                if (mainPart != null)
                {
                    mainPart.Class = "2";
                    mainPart.Modify();
                    // Don't grab from assembly because it doesn't have one...
                    mainPart.GetCoordinateSystem();

                    // Set the mainPart of the assembly.
                    // thisAssembly.setMainPart(pickedPart);
                }
                else
                {
                    Assembly mainAssembly = mainObject as Assembly;
                    if (mainAssembly != null)
                    {
                        // You got an assembly...
                    }
                }

                // This doesn't do anything, don't use it
                ModelObjectEnumerator partsOnAssembly = thisAssembly.GetChildren();
                int childrenObjects = partsOnAssembly.GetSize();

                // Gets Parts
                ArrayList partsList = thisAssembly.GetSecondaries();

                foreach (Part thisPart in partsList)
                {
                    thisPart.Class = "6";
                    thisPart.Modify();
                }

                // Neat way to highlight / select objects in the model.
                TSMUI.ModelObjectSelector selector = new TSMUI.ModelObjectSelector();
                selector.Select(partsList);

                // Gets Sub Assemblies
                int subAssemblies = thisAssembly.GetSubAssemblies().Count;
                Tekla.Structures.Model.Operations.Operation.DisplayPrompt(childrenObjects + " Children Objects");

                currentModel.CommitChanges();
            }
        }
            private static void selectInitialObjects(List<Assembly> selectedAssemblys)
            {
                ArrayList initialSelectedAssemblys = new ArrayList(selectedAssemblys);

                var selector = new TSM.UI.ModelObjectSelector();
                selector.Select(initialSelectedAssemblys);
            }
Esempio n. 15
0
 public void SelectRebars(ArrayList rebarsToSelect)
 {
     selector.Select(rebarsToSelect);
 }