public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            TSM.UI.ModelViewEnumerator views = TSM.UI.ViewHandler.GetSelectedViews();

            if (views.Count > 0)
            {
                while (views.MoveNext())
                {
                    TSM.UI.View activeView = views.Current;
                    TSM.UI.ModelObjectSelector selector = new Tekla.Structures.Model.UI.ModelObjectSelector();

                    ArrayList visibleParts = ItemSelector.getParts(activeView);
                    selector.Select(visibleParts);

                    akit.Callback("acmdViewTopInFormFace", "", "View_01 window_1");

                    ArrayList empty = new ArrayList();
                    selector.Select(empty);
                }
            }
            else
            {
                MessageBox.Show("Vaate aken peab olema aktiivne");
            }
        }
예제 #2
0
        public void GetProperties()
        {
            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator modelObjectEnum = modelObjectSelector.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 = "";
            }
        }
        private static ModelObjectEnumerator getSelectedObjects()
        {
            var selector = new TSM.UI.ModelObjectSelector();
            ModelObjectEnumerator selectionEnum = selector.GetSelectedObjects();

            return selectionEnum;
        }
        public List <Assembly> GetPartsAssemblies()
        {
            var modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            var selectedObjects     = modelObjectSelector.GetSelectedObjects();
            var assemblies          = new List <Assembly>();

            while (selectedObjects.MoveNext())
            {
                var currentObject = selectedObjects.Current;
                if (currentObject is Part currentPart)
                {
                    var assembly = currentPart.GetAssembly();
                    if (IsPartAssembly(assembly) && !IsListContainsAssembly(assemblies, assembly))
                    {
                        assemblies.Add(assembly);
                    }
                }
                if (currentObject is Assembly currentAssembly)
                {
                    var partAssemblies = GetPartAssemblies(currentAssembly);

                    foreach (var partAssembly in partAssemblies)
                    {
                        if (!IsListContainsAssembly(assemblies, partAssembly))
                        {
                            assemblies.Add(partAssembly);
                        }
                    }
                }
            }

            return(assemblies);
        }
예제 #5
0
        static private ModelObjectEnumerator getSelectedObjects()
        {
            var selector = new TSM.UI.ModelObjectSelector();
            ModelObjectEnumerator selectionEnum = selector.GetSelectedObjects();

            return(selectionEnum);
        }
예제 #6
0
        void Events_SelectionChangeEvent()
        {
            /* Make sure that the inner code block is running synchronously */
            lock (_selectionEventHandlerLock)
            {
                System.Console.WriteLine("Selection changed event received.");

                var selection = new Tekla.Structures.Model.UI.ModelObjectSelector()
                                .GetSelectedObjects()
                                .ToAList <Part>();
                if (!selection.Any())
                {
                    return;
                }
                var rawRows = dataGridView1.Rows.OfType <DataGridViewRow>().ToList();

                var assemblies = selection.Select(p => p.GetAssembly());

                var rows = rawRows.AsParallel().Where(r =>
                {
                    dynamic item = r.DataBoundItem;
                    if (item.Id == null)
                    {
                        return(false);
                    }
                    var id = (int)item.Id;
                    return(assemblies.FirstOrDefault(p => p.Identifier.ID == id) != null);
                }).ToList();

                CreateBom(rows);
            }
        }
        public List <Part> GetSelectedParts()
        {
            var modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            var selectedObjects     = modelObjectSelector.GetSelectedObjects();
            var parts = new List <Part>();

            while (selectedObjects.MoveNext())
            {
                var currentObject = selectedObjects.Current;
                if (currentObject is Part currentPart)
                {
                    parts.Add(currentPart);
                }
                if (currentObject is Assembly currentAssembly)
                {
                    var assemblyParts = GetAssemblyParts(currentAssembly);

                    foreach (var part in assemblyParts)
                    {
                        parts.Add(part);
                    }
                }
            }

            return(parts);
        }
        private void Events_SelectionChange()
        {
            lock (_tsTeklaSelectionChangeLock)
            {
                string newText         = "";
                var    selectedObjects = new Tekla.Structures.Model.UI.ModelObjectSelector().GetSelectedObjects();

                if (selectedObjects.MoveNext())
                {
                    newText = TeklaObjects.TeklaObject.GetInfo(selectedObjects.Current);
                }
                if (newText.Equals(""))
                {
                    return;
                }

                BeginInvoke(new MethodInvoker(() =>
                {
                    this.objectInfo_label.Text      = newText;
                    this.objectInfo_label.ForeColor = SystemColors.ControlText;

                    if (FTSettings.Settings.ShowShowObjectInfoInTheBottomOfTeklaWindow & string.IsNullOrWhiteSpace(newText) == false)
                    {
                        Tekla.Structures.Model.Operations.Operation.DisplayPrompt("Filtering Tool info:     " + newText);
                    }
                }));
            }
        }
예제 #9
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 { }
        }
예제 #10
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();
                    if (drawingObjectEnum.GetSize() > 0)
                    {
                        while (drawingObjectEnum.MoveNext())
                        {
                            Tekla.Structures.Drawing.ModelObject dModelObject = (Tekla.Structures.Drawing.ModelObject)drawingObjectEnum.Current;
                            ModelObjectArray.Add(model.SelectModelObject(dModelObject.ModelIdentifier));
                        }
                    }

                    Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                    modelObjectSelector.Select(ModelObjectArray);
                }

                akit.Callback("acmdZoomToSelected", "", "main_frame");
            }
            catch { }
        }
예제 #11
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);
        }
예제 #12
0
        public void GetProperties()
        {
            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator modelObjectEnum = modelObjectSelector.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)
        {
            TSM.UI.ModelViewEnumerator views = TSM.UI.ViewHandler.GetSelectedViews();

            if (views.Count > 0)
            {
                while (views.MoveNext())
                {
                    TSM.UI.View activeView = views.Current;
                    TSM.UI.ModelObjectSelector selector = new Tekla.Structures.Model.UI.ModelObjectSelector();

                    ArrayList visibleParts = ItemSelector.getParts(activeView);
                    selector.Select(visibleParts);

                    akit.Callback("acmdViewTopInFormFace", "", "View_01 window_1");

                    ArrayList empty = new ArrayList();
                    selector.Select(empty);
                }
            }
            else
            {
                MessageBox.Show("Vaate aken peab olema aktiivne");
            }
        }
예제 #14
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            try
            {
                Model                   model             = new Model();
                DrawingHandler          drawingHandler    = new DrawingHandler();
                DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected();
                ArrayList               ModelObjectArray  = new ArrayList();

                if (drawingObjectEnum.GetSize() > 0)
                {
                    while (drawingObjectEnum.MoveNext())
                    {
                        if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Part)
                        {
                            Tekla.Structures.Drawing.Part part = drawingObjectEnum.Current as Tekla.Structures.Drawing.Part;
                            ModelObjectArray.Add(model.SelectModelObject(new Identifier(part.ModelIdentifier.ID)));
                        }
                        if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Bolt)
                        {
                            Tekla.Structures.Drawing.Bolt bolt = drawingObjectEnum.Current as Tekla.Structures.Drawing.Bolt;
                            ModelObjectArray.Add(model.SelectModelObject(new Identifier(bolt.ModelIdentifier.ID)));
                        }
                    }
                }

                Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                modelObjectSelector.Select(ModelObjectArray);
                akit.Callback("acmd_display_selected_object_dialog", "", "main_frame");
            }
            catch { }
        }
예제 #15
0
        public SwapHandles()
        {
            var selector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            var myEnum   = selector.GetSelectedObjects();

            while (myEnum.MoveNext())
            {
                if (myEnum.Current is Tekla.Structures.Model.ContourPlate)
                {
                    ContourPlate cPlate = myEnum.Current as ContourPlate;
                    cPlate.Position.Depth = SwapEndForces(cPlate.Position.Depth);
                    cPlate.Modify();
                }
                else if (myEnum.Current is Tekla.Structures.Model.BooleanPart)
                {
                    BooleanPart  boolPart        = myEnum.Current as Tekla.Structures.Model.BooleanPart;
                    ContourPlate boolConturPlate = boolPart.OperativePart as Tekla.Structures.Model.ContourPlate;

                    if (boolConturPlate != null)
                    {
                        boolConturPlate.Position.Depth = SwapEndForces(boolConturPlate.Position.Depth);
                        boolConturPlate.Modify();
                    }
                }
            }

            new Model().CommitChanges();
        }
예제 #16
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());
        }
        /// <summary>Iterates through selected object in the model and move its to this phase</summary>
        /// <returns>The number of moved objects</returns>
        public int MoveSelectedObjectsToPhase()
        {
            var selectedObjects = new Tekla.Structures.Model.UI.ModelObjectSelector().GetSelectedObjects();

            while (selectedObjects.MoveNext())
            {
                selectedObjects.Current.SetPhase(this.phase);
            }
            return(selectedObjects.GetSize());
        }
예제 #18
0
        /// <summary>Selects all objects which are on the phase</summary>
        /// <param name="phaseNumber">Number of the phase</param>
        /// <exception cref="Exceptions.FilteringToolTeklaSettingsException">When macro directory not exsists</exception>
        public static void SelectObjects(int phaseNumber)
        {
            var assemblyPhase = new TemplateFilterExpressions.CustomString("ASSEMBLY.PHASE");
            var phase         = new StringConstantFilterExpression(phaseNumber.ToString());
            var expresion1    = new BinaryFilterExpression(assemblyPhase, StringOperatorType.IS_EQUAL, phase);

            var objectType = new ObjectFilterExpressions.Type();
            var partF      = new NumericConstantFilterExpression(Tekla.Structures.TeklaStructuresDatabaseTypeEnum.PART);
            var expresion2 = new BinaryFilterExpression(objectType, NumericOperatorType.IS_EQUAL, partF);

            var expresion = new BinaryFilterExpressionCollection();

            expresion.Add(new BinaryFilterExpressionItem(expresion1, BinaryFilterOperatorType.BOOLEAN_AND));
            expresion.Add(new BinaryFilterExpressionItem(expresion2, BinaryFilterOperatorType.BOOLEAN_AND));

            var filter = new Filter(expresion);

            var objects = new Tekla.Structures.Model.Model().GetModelObjectSelector().GetObjectsByFilter(expresion);

            objects.SelectInstances = false;

            var ar = new System.Collections.ArrayList();

            while (objects.MoveNext())
            {
                var part = objects.Current as Tekla.Structures.Model.Part;
                if (part != null)
                {
                    var assembly = part.GetAssembly();
                    ar.Add(assembly);
                    break;
                }
            }

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

            mos.Select(new System.Collections.ArrayList());
            mos.Select(ar);

            if (Tekla.Structures.TeklaStructures.Connect())
            {
                TeklaMacroDirectory.CheckIfExists();
                var akit = new Tekla.Structures.MacroBuilder();

                akit.PushButton("butCancel", "diaPhaseManager");
                akit.Callback("acmd_display_active_system_dialog", "", "main_frame");
                akit.PushButton("butSelectPhases", "diaPhaseManager");
                akit.PushButton("butSelectObjects", "diaPhaseManager");
                akit.PushButton("butCancel", "diaPhaseManager");

                akit.Run();
                akit = null;
            }
        }
예제 #19
0
        public static bool InsertWindows(double lenght, double height, double heightFloor)
        {
            var objects = new ModelObjectSelector().GetSelectedObjects();

            while (objects.MoveNext())
            {
                var obj = objects.Current;
                try
                {
                    var midWallPoint = obj.GetCoordinateSystem().Origin;
                    var wallLenght   = obj.GetCoordinateSystem().AxisX;
                    if (wallLenght.X == 0)
                    {
                        int numberOfWindows = Convert.ToInt32(Math.Floor(wallLenght.Y / (lenght + windowsDistance)));
                        midWallPoint.Y += wallLenght.Y / numberOfWindows / 2;
                        for (int i = 0; i < numberOfWindows; ++i)
                        {
                            ArrayList list = new ArrayList
                            {
                                new Point(midWallPoint.X, midWallPoint.Y - lenght / 2, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X, midWallPoint.Y + lenght / 2, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X, midWallPoint.Y + lenght / 2, midWallPoint.Z + heightFloor + height),
                                new Point(midWallPoint.X, midWallPoint.Y - lenght / 2, midWallPoint.Z + heightFloor + height)
                            };
                            InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36");
                            midWallPoint.Y += wallLenght.Y / numberOfWindows;
                        }
                    }
                    else
                    {
                        int numberOfWindows = Convert.ToInt32(Math.Floor(wallLenght.X / (lenght + windowsDistance)));
                        midWallPoint.X += wallLenght.X / numberOfWindows / 2;
                        for (int i = 0; i < numberOfWindows; ++i)
                        {
                            ArrayList list = new ArrayList
                            {
                                new Point(midWallPoint.X - lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X + lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor),
                                new Point(midWallPoint.X + lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor + height),
                                new Point(midWallPoint.X - lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor + height)
                            };
                            InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36");
                            midWallPoint.X += wallLenght.X / numberOfWindows;
                        }
                    }
                }
                catch
                {
                    return(true);
                }
            }
            return(false);
        }
예제 #20
0
        public static void selectAssemblys(List <_Assembly> filtered)
        {
            ArrayList selection = new ArrayList();

            foreach (_Assembly current in filtered)
            {
                selection.Add(current._assembly);
            }

            TSM.UI.ModelObjectSelector modelSelector = new TSM.UI.ModelObjectSelector();
            modelSelector.Select(selection);
        }
예제 #21
0
        private void GetIdNumbers_Click(object sender, EventArgs e)
        {
            Model model = new Model();

            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            Drawing drawing = drawingHandler.GetActiveDrawing();
            DrawingObjectEnumerator drawingObjectEnumerator = drawingHandler.GetDrawingObjectSelector().GetSelected();
            ArrayList SelectedObjectArray = new ArrayList();
            ArrayList MarkArray           = new ArrayList();

            while (drawingObjectEnumerator.MoveNext())
            {
                if (drawingObjectEnumerator.Current is Tekla.Structures.Drawing.Part)
                {
                    Tekla.Structures.Drawing.Part part = drawingObjectEnumerator.Current as Tekla.Structures.Drawing.Part;
                    SelectedObjectArray.Add(model.SelectModelObject(new Identifier(part.ModelIdentifier.ID)));
                    DrawingObjectArray.Add(part);
                }
                if (drawingObjectEnumerator.Current is Tekla.Structures.Drawing.Bolt)
                {
                    Tekla.Structures.Drawing.Bolt bolt = drawingObjectEnumerator.Current as Tekla.Structures.Drawing.Bolt;
                    SelectedObjectArray.Add(model.SelectModelObject(new Identifier(bolt.ModelIdentifier.ID)));
                    DrawingObjectArray.Add(bolt);
                }
            }
            modelObjectSelector.Select(SelectedObjectArray);
            Tekla.Structures.Model.ModelObjectEnumerator modelObjectEnumerator = model.GetModelObjectSelector().GetSelectedObjects();
            while (modelObjectEnumerator.MoveNext())
            {
                if (modelObjectEnumerator.Current is Tekla.Structures.Model.Part)
                {
                    Tekla.Structures.Model.Part modelPart = modelObjectEnumerator.Current as Tekla.Structures.Model.Part;
                    MarkArray.Add(modelPart.Identifier.ID.ToString());
                }
                if (modelObjectEnumerator.Current is Tekla.Structures.Model.BoltGroup)
                {
                    Tekla.Structures.Model.BoltGroup modelBolt = modelObjectEnumerator.Current as Tekla.Structures.Model.BoltGroup;
                    MarkArray.Add(modelBolt.Identifier.ID.ToString());
                }
            }
            MarkArray.Sort();
            string MarkList = "";

            foreach (string strMark in MarkArray)
            {
                MarkList = strMark + " " + MarkList;
            }
            Clipboard.SetDataObject(MarkList); richTextBox1.Text = MarkList;
            drawingHandler.GetDrawingObjectSelector().SelectObjects(DrawingObjectArray, false);
        }
예제 #22
0
        ArrayList GetModelObjectsByType(string ObjectType)
        {
            ArrayList ObjectsToBeSelected = new ArrayList();

            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            foreach (Tekla.Structures.Model.ModelObject modelObject in modelObjectSelector.GetSelectedObjects())
            {
                if (modelObject.GetType().ToString() == ObjectType)
                {
                    ObjectsToBeSelected.Add(modelObject);
                }
            }
            return(ObjectsToBeSelected);
        }
예제 #23
0
        private void button2_Click(object sender, EventArgs e)
        {
            Model _model = new Model();

            Tekla.Structures.Model.UI.ModelObjectSelector mos = new Tekla.Structures.Model.UI.ModelObjectSelector();

            ModelObjectEnumerator moe = mos.GetSelectedObjects();


            while (moe.MoveNext())
            {
                ModelObject mo = moe.Current as ModelObject;
                //  mo.
            }
        }
        public List <Assembly> GetSelectedSubAssemblies()
        {
            var modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            var selectedObjects     = modelObjectSelector.GetSelectedObjects();
            var subAssemblies       = new List <Assembly>();

            while (selectedObjects.MoveNext())
            {
                if (selectedObjects.Current is Assembly assembly && assembly.AssemblyNumber.Prefix.StartsWith("SA"))
                {
                    subAssemblies.Add(assembly);
                }
            }
            return(subAssemblies);
        }
예제 #25
0
        private void GetMarks(string MarkType)
        {
            Model model = new Model();

            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            Drawing drawing = drawingHandler.GetActiveDrawing();
            DrawingObjectEnumerator drawingObjectEnumerator = drawingHandler.GetDrawingObjectSelector().GetSelected();
            ArrayList SelectedObjectArray = new ArrayList();
            ArrayList MarkArray           = new ArrayList();

            while (drawingObjectEnumerator.MoveNext())
            {
                if (drawingObjectEnumerator.Current is Tekla.Structures.Drawing.Part)
                {
                    Tekla.Structures.Drawing.Part part = drawingObjectEnumerator.Current as Tekla.Structures.Drawing.Part;
                    SelectedObjectArray.Add(model.SelectModelObject(new Identifier(part.ModelIdentifier.ID)));
                    DrawingObjectArray.Add(part);
                }
            }
            modelObjectSelector.Select(SelectedObjectArray);
            Tekla.Structures.Model.ModelObjectEnumerator modelObjectEnumerator = model.GetModelObjectSelector().GetSelectedObjects();
            while (modelObjectEnumerator.MoveNext())
            {
                if (modelObjectEnumerator.Current is Tekla.Structures.Model.Part)
                {
                    Tekla.Structures.Model.Part modelPart = modelObjectEnumerator.Current as Tekla.Structures.Model.Part;
                    string mark = "";
                    try
                    {
                        modelPart.GetReportProperty(MarkType, ref mark);
                        if (!MarkArray.Contains(mark))
                        {
                            MarkArray.Add(mark);
                        }
                    }
                    catch { }
                }
            }
            MarkArray.Sort();
            string MarkList = "";

            foreach (string strMark in MarkArray)
            {
                MarkList = strMark + " " + MarkList;
            }
            Clipboard.SetDataObject(MarkList); richTextBox1.Text = MarkList;
            drawingHandler.GetDrawingObjectSelector().SelectObjects(DrawingObjectArray, false);
        }
예제 #26
0
        public static void selectFoundObject(ArrayList selectId)
        {
            ArrayList select = new ArrayList();

            Model myModel = new Model();

            foreach (Identifier id in selectId)
            {
                ModelObject foundPart = myModel.SelectModelObject(id) as ModelObject;
                select.Add(foundPart);
            }

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

            ModelSelector.Select(select);
        }
        /// <summary>Move all selected model bojects to the phase with phaseNumber</summary>
        /// <param name="phaseNumber">Number of phase</param>
        /// <returns>Numbers of moved objects</returns>
        public int MoveSelectedObjectsToPhase(int phaseNumber)
        {
            var selectedObjects = new Tekla.Structures.Model.UI.ModelObjectSelector().GetSelectedObjects();

            if (selectedObjects.GetSize() == 0)
            {
                return(0);
            }

            var phase = GetPhaseByNumber(phaseNumber);

            while (selectedObjects.MoveNext())
            {
                selectedObjects.Current.SetPhase(phase);
            }
            return(selectedObjects.GetSize());
        }
예제 #28
0
        private static List <BaseWeld> GetSelectesWelds()
        {
            var selector        = new Tekla.Structures.Model.UI.ModelObjectSelector();
            var selectedObjects = selector.GetSelectedObjects();
            var result          = new List <BaseWeld>();

            while (selectedObjects.MoveNext())
            {
                var currentObject = selectedObjects.Current;
                if (currentObject is BaseWeld currentWeld)
                {
                    result.Add(currentWeld);
                }
            }

            return(result);
        }
예제 #29
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            Model             model          = new Model();
            DrawingHandler    drawingHandler = new DrawingHandler();
            DrawingEnumerator drawingEnum    = drawingHandler.GetDrawingSelector().GetSelected();

            if (drawingHandler.GetActiveDrawing() == null)
            {
                while (drawingEnum.MoveNext())
                {
                    if (drawingEnum.Current is AssemblyDrawing)
                    {
                        AssemblyDrawing assemblyDrawing = drawingEnum.Current as AssemblyDrawing;
                        drawingHandler.SetActiveDrawing(assemblyDrawing, false);
                        DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetActiveDrawing().GetSheet().GetAllObjects();
                        while (drawingObjectEnum.MoveNext())
                        {
                            if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Part)
                            {
                                Tekla.Structures.Drawing.Part part = drawingObjectEnum.Current as Tekla.Structures.Drawing.Part;
                                ArrayList array = new ArrayList();
                                array.Add(model.SelectModelObject(new Tekla.Structures.Identifier(part.ModelIdentifier.ID)));
                                Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                                modelObjectSelector.Select(array);
                                ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();
                                while (modelObjectEnum.MoveNext())
                                {
                                    if (modelObjectEnum.Current is Tekla.Structures.Model.Part)
                                    {
                                        Tekla.Structures.Model.Part     mpart    = modelObjectEnum.Current as Tekla.Structures.Model.Part;
                                        Tekla.Structures.Model.Assembly assembly = mpart.GetAssembly();
                                        Tekla.Structures.Model.Part     mainPart = (Tekla.Structures.Model.Part)assembly.GetMainPart();
                                        assemblyDrawing.Name = mainPart.Name;
                                        assemblyDrawing.Modify();
                                        assemblyDrawing.CommitChanges();
                                    }
                                }
                                modelObjectSelector.Select(new ArrayList());
                            }
                        }
                        drawingHandler.CloseActiveDrawing();
                    }
                }
            }
        }
예제 #30
0
        public void Modify(PropertyValueChangedEventArgs e)
        {
            string label = e.ChangedItem.Label;

            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
            while (modelObjectEnum.MoveNext())
            {
                if (modelObjectEnum.Current is Connection)
                {
                    Connection connection = (Connection)modelObjectEnum.Current;

                    if (label == "Code") connection.Code = code;

                    connection.Modify();
                }
            }
        }
예제 #31
0
        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);
        }
예제 #32
0
        public Magic()
        {
            var selector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            var myEnum   = selector.GetSelectedObjects();

            while (myEnum.MoveNext())
            {
                if (myEnum.Current is Tekla.Structures.Model.Beam)
                {
                    var    myBeam = myEnum.Current as Beam;
                    double dX     = Math.Abs(myBeam.StartPoint.X - myBeam.EndPoint.X);
                    double dY     = Math.Abs(myBeam.StartPoint.Y - myBeam.EndPoint.Y);
                    double dZ     = Math.Abs(myBeam.StartPoint.Z - myBeam.EndPoint.Z);
                    //MessageBox.Show(dX.ToString() + ", " + dY.ToString() + ", " + dZ.ToString());

                    if (dX > 0.006 && dX < 0.70)
                    {
                        MessageBox.Show(dX.ToString());
                        myBeam.EndPoint.X = myBeam.StartPoint.X;
                        myBeam.Modify();
                        //MessageBox.Show("fixed X");
                    }

                    if (dY > 0.006 && dY < 0.70)
                    {
                        MessageBox.Show(dY.ToString());
                        myBeam.EndPoint.Y = myBeam.StartPoint.Y;
                        myBeam.Modify();
                        //MessageBox.Show("fixed Y");
                    }

                    if (dZ > 0.006 && dZ < 0.70)
                    {
                        MessageBox.Show(dZ.ToString());
                        myBeam.EndPoint.Z = myBeam.StartPoint.Z;
                        myBeam.Modify();
                        //MessageBox.Show("fixed Z");
                    }
                }
            }

            //Update model with changes
            new Model().CommitChanges();
        }
예제 #33
0
        public Magic()
        {
            var selector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            var myEnum = selector.GetSelectedObjects();

            while (myEnum.MoveNext())
            {
                if (myEnum.Current is Tekla.Structures.Model.Beam)
                {
                    var myBeam = myEnum.Current as Beam;
                    double dX = Math.Abs(myBeam.StartPoint.X - myBeam.EndPoint.X);
                    double dY = Math.Abs(myBeam.StartPoint.Y - myBeam.EndPoint.Y);
                    double dZ = Math.Abs(myBeam.StartPoint.Z - myBeam.EndPoint.Z);
                    //MessageBox.Show(dX.ToString() + ", " + dY.ToString() + ", " + dZ.ToString());

                    if (dX > 0.006 && dX < 0.70)
                    {
                        MessageBox.Show(dX.ToString());
                        myBeam.EndPoint.X = myBeam.StartPoint.X;
                        myBeam.Modify();
                        //MessageBox.Show("fixed X");
                    }

                    if (dY > 0.006 && dY < 0.70)
                    {
                        MessageBox.Show(dY.ToString());
                        myBeam.EndPoint.Y = myBeam.StartPoint.Y;
                        myBeam.Modify();
                        //MessageBox.Show("fixed Y");
                    }

                    if (dZ > 0.006 && dZ < 0.70)
                    {
                        MessageBox.Show(dZ.ToString());
                        myBeam.EndPoint.Z = myBeam.StartPoint.Z;
                        myBeam.Modify();
                        //MessageBox.Show("fixed Z");
                    }
                }
            }

            //Update model with changes
            new Model().CommitChanges();
        }
예제 #34
0
        private void button2_Click(object sender, EventArgs e)
        {
            Model _model = new Model();

            Tekla.Structures.Model.UI.ModelObjectSelector mos = new Tekla.Structures.Model.UI.ModelObjectSelector();

            ModelObjectEnumerator moe = mos.GetSelectedObjects();


            while (moe.MoveNext())
            {
                Part angle = moe.Current as Part;
                if (angle != null)
                {
                    ModelObjectEnumerator cuts = angle.GetBooleans();

                    while (cuts.MoveNext())
                    {
                        BooleanPart cutpart = cuts.Current as BooleanPart;
                        if (cutpart != null)
                        {
                            Part cutpt = cutpart.OperativePart;

                            if (cutpt.Profile.ProfileString.StartsWith("SPD"))
                            {
                                string prof = cutpt.Profile.ProfileString;

                                prof = prof.Replace("SPD", "PIPE");
                                cutpt.Profile.ProfileString = prof;
                                cutpt.Modify();
                            }

                            //string prof = cutpart.OperativePar .Profile.ProfileString;

                            //prof.Replace("SPD", "PIPE");
                            //cutpart.Profile.ProfileString = prof;
                            //cutpart.Modify();
                        }
                    }
                }
            }

            _model.CommitChanges();
        }
        private static void changePartToSubAssembly(TSM.Assembly assembly, ArrayList wrongParts, Tekla.Technology.Akit.IScript akit)
        {
            TSM.UI.ModelObjectSelector selector = new TSM.UI.ModelObjectSelector();

            selector.Select(wrongParts);
            akit.Callback("acmdRemoveFromAssemblyActionCB", "", "View_01 window_1");

            //assembly.Modify();

            selector = new TSM.UI.ModelObjectSelector();
            TSM.ModelObjectEnumerator selectionEnum = selector.GetSelectedObjects();

            while (selectionEnum.MoveNext())
            {
                if (selectionEnum.Current is TSM.Part)
                {
                    TSM.Part newPart = selectionEnum.Current as TSM.Part;
                    TSM.Assembly partNewAssembly = newPart.GetAssembly() as TSM.Assembly;

                    ArrayList currentSelection = new ArrayList();
                    currentSelection.Add(assembly);
                    selector.Select(currentSelection);
                    TSM.ModelObjectEnumerator selectionEnum2 = selector.GetSelectedObjects();

                    while (selectionEnum2.MoveNext())
                    {
                        if (selectionEnum2.Current is TSM.Assembly)
                        {
                            TSM.Assembly newAssembly = selectionEnum2.Current as TSM.Assembly;
                            newAssembly.Add(partNewAssembly);
                            newAssembly.Modify();
                        }
                    }
                }
            }

            foreach (TSM.Part part in wrongParts)
            {
                TSM.Assembly newAssembly = part.GetAssembly() as TSM.Assembly;
                removeAssemblyPropertys(newAssembly, akit);
            }
        }
 public void GetProperties()
 {
     Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
     ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
     if (modelObjectEnum.GetSize() == 1)
     {
         while (modelObjectEnum.MoveNext())
         {
             if (modelObjectEnum.Current is Tekla.Structures.Model.Connection)
             {
                 Connection connection = (Connection)modelObjectEnum.Current;
                 code = connection.Code;
                 name = connection.Name;
                 number = connection.Number.ToString();
                 //connection.SetAttribute
             }
         }
     }
     if (modelObjectEnum.GetSize() > 1)
     {
     }
 }
        public static ArrayList getParts(Tekla.Structures.Model.UI.View view)
        {
            ArrayList visibleParts = new ArrayList();

            Point min = new Point(-999999, -999999, -999999);
            Point max = new Point(999999, 999999, 999999);

            TSM.UI.ModelObjectSelector selector = new TSM.UI.ModelObjectSelector();
            TSM.ModelObjectEnumerator allObjects = selector.GetObjectsByBoundingBox(min, max, view);

            while (allObjects.MoveNext())
            {
                if (allObjects.Current is TSM.Part)
                {
                    if ((allObjects.Current as TSM.Part).Material.MaterialString.StartsWith("C"))
                    {
                        visibleParts.Add(allObjects.Current);
                    }

                }
            }

            return visibleParts;
        }
예제 #38
0
            public void Modify(PropertyValueChangedEventArgs e)
            {
                string label = e.ChangedItem.Label;
                Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
                while (modelObjectEnum.MoveNext())
                {
                    if (modelObjectEnum.Current is Tekla.Structures.Model.ContourPlate)
                    {
                        Tekla.Structures.Model.ContourPlate contourPlate = (Tekla.Structures.Model.ContourPlate)modelObjectEnum.Current;
                        if (label == "Name") contourPlate.Name = name;
                        if (label == "Profile") contourPlate.Profile.ProfileString = profile;
                        if (label == "Material") contourPlate.Material.MaterialString = material;
                        if (label == "Finish") contourPlate.Finish = finish;
                        if (label == "Class") contourPlate.Class = classValue;
                        if (label == "PartPrefix") contourPlate.PartNumber.Prefix = partPrefix;
                        if (label == "PartStartNo") contourPlate.PartNumber.StartNumber = int.Parse(partStartNo);
                        if (label == "AssemblyPrefix") contourPlate.AssemblyNumber.Prefix = assemblyPrefix;
                        if (label == "AssemblyStartNo") contourPlate.AssemblyNumber.StartNumber = int.Parse(assemblyStartNo);
                        if (label == "Phase") contourPlate.SetPhase(new Phase(int.Parse(phase)));

                        if (label == "PositionOnPlane")
                        {
                            if (positionOnPlane == PositionPlaneEnum.Left) contourPlate.Position.Plane = Position.PlaneEnum.LEFT;
                            if (positionOnPlane == PositionPlaneEnum.Middle) contourPlate.Position.Plane = Position.PlaneEnum.MIDDLE;
                            if (positionOnPlane == PositionPlaneEnum.Right) contourPlate.Position.Plane = Position.PlaneEnum.RIGHT;
                        }

                        if (label == "PositionOnPlaneOffset") contourPlate.Position.PlaneOffset = double.Parse(positionOnPlaneOffset);

                        if (label == "PositionRotation")
                        {
                            if (positionRotation == PositionRotationEnum.Top) contourPlate.Position.Rotation = Position.RotationEnum.TOP;
                            if (positionRotation == PositionRotationEnum.Front) contourPlate.Position.Rotation = Position.RotationEnum.FRONT;
                            if (positionRotation == PositionRotationEnum.Back) contourPlate.Position.Rotation = Position.RotationEnum.BACK;
                            if (positionRotation == PositionRotationEnum.Below) contourPlate.Position.Rotation = Position.RotationEnum.BELOW;
                        }

                        if (label == "PositionRotationOffset") contourPlate.Position.RotationOffset = double.Parse(positionRotationOffset);

                        if (label == "PositionAtDepth")
                        {
                            if (positionAtDepth == PositionDepthEnum.Behind) contourPlate.Position.Depth = Position.DepthEnum.BEHIND;
                            if (positionAtDepth == PositionDepthEnum.Front) contourPlate.Position.Depth = Position.DepthEnum.FRONT;
                            if (positionAtDepth == PositionDepthEnum.Middle) contourPlate.Position.Depth = Position.DepthEnum.MIDDLE;
                        }
                        if (label == "AtDepthOffset") contourPlate.Position.DepthOffset = double.Parse(positionAtDepthOffset);
                        //if (label == "Userfield1") contourPlate.SetUserProperty("USER_FIELD_1", userfield1);
                        //if (label == "Userfield2") contourPlate.SetUserProperty("USER_FIELD_2", userfield2);
                        //if (label == "Userfield3") contourPlate.SetUserProperty("USER_FIELD_3", userfield3);
                        //if (label == "Userfield4") contourPlate.SetUserProperty("USER_FIELD_4", userfield4);
                        //if (label == "NotesComments") contourPlate.SetUserProperty("comment", notesComments);
                        //if (label == "FittingNotes") contourPlate.SetUserProperty("FIT_NOTES", fittingNotes);
                        //if (label == "FittingNotes2") contourPlate.SetUserProperty("FIT_NOTES2", fittingNotes2);
                        //if (label == "Cambering") contourPlate.SetUserProperty("cambering", cambering);
                        //if (label == "Paint") contourPlate.SetUserProperty("PAINT", paint);
                        //if (label == "PreliminaryMark") contourPlate.SetUserProperty("PRELIM_MARK", preliminaryMark);
                        //if (label == "PaintWFT") contourPlate.SetUserProperty("PAINT_WFT", paintWFT);
                        //if (label == "PaintDFT") contourPlate.SetUserProperty("PAINT_DFT", paintDFT);
                        //if (label == "ShearStart") contourPlate.SetUserProperty("shear1", double.Parse(shearStart) * 1000);
                        //if (label == "ShearEnd") contourPlate.SetUserProperty("shear2", double.Parse(shearEnd) * 1000);
                        //if (label == "AxialStart") contourPlate.SetUserProperty("axial1", double.Parse(axialStart) * 1000);
                        //if (label == "AxialEnd") contourPlate.SetUserProperty("axial2", double.Parse(axialEnd) * 1000);
                        //if (label == "MomentStart") contourPlate.SetUserProperty("moment1", double.Parse(momentStart) * 1000);
                        //if (label == "MomentEnd") contourPlate.SetUserProperty("moment2", double.Parse(momentEnd) * 1000);
                        //if (label == "ConnCodeStart") contourPlate.SetUserProperty("CONN_CODE_END1", connCodeStart);
                        //if (label == "ConnCodeEnd") contourPlate.SetUserProperty("CONN_CODE_END2", connCodeEnd);

                        contourPlate.Modify();
                        model.CommitChanges();
                    }
                }
            }
예제 #39
0
        public void Modify(PropertyValueChangedEventArgs e)
        {
            string label = e.ChangedItem.Label;

            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
            while (modelObjectEnum.MoveNext())
            {
                if (modelObjectEnum.Current is Grid)
                {
                    Grid Grid = (Grid)modelObjectEnum.Current;

                    if (label == "CoordinateX") Grid.CoordinateX = coordinateX;
                    if (label == "CoordinateY") Grid.CoordinateY = coordinateY;
                    if (label == "CoordinateZ") Grid.CoordinateZ = coordinateZ;
                    if (label == "LabelX") Grid.LabelX = labelX;
                    if (label == "LabelY") Grid.LabelY = labelY;
                    if (label == "LabelZ") Grid.LabelZ = labelZ;

                    Grid.Modify();
                }
            }
        }
예제 #40
0
        public void Modify(PropertyValueChangedEventArgs e)
        {
            string label = e.ChangedItem.Label;
            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
            while (modelObjectEnum.MoveNext())
            {
                if (modelObjectEnum.Current is BaseWeld)
                {
                    BaseWeld weld = (BaseWeld)modelObjectEnum.Current;
                    if (label == "SizeAbove") weld.SizeAbove = double.Parse(sizeAbove);

                    if (label == "WeldTypeAbove")
                    {
                        if (weldTypeAbove == WeldType.WELD_TYPE_NONE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_NONE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_FILLET) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_FILLET;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_J_GROOVE_J_BUTT) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_J_GROOVE_J_BUTT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_FLARE_V_GROOVE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_V_GROOVE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_FLARE_BEVEL_GROOVE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_BEVEL_GROOVE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_EDGE_FLANGE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE_FLANGE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_CORNER_FLANGE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_CORNER_FLANGE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_PLUG) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_PLUG;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_BEVEL_BACKING) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_BACKING;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_SPOT) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_SPOT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_SEAM) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_SEAM;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_SLOT) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_SLOT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_MELT_THROUGH) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_MELT_THROUGH;
                        else if (weldTypeAbove == WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT) weld.TypeAbove = BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weldTypeAbove == WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weld.TypeAbove = BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_EDGE) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_ISO_SURFACING) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_ISO_SURFACING;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_FOLD) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_FOLD;
                        else if (weldTypeAbove == WeldType.WELD_TYPE_INCLINED) weld.TypeAbove = BaseWeld.WeldTypeEnum.WELD_TYPE_INCLINED;
                    }
                    if (label == "ContourTypeAbove")
                    {
                        if (contourTypeAbove == ContourType.None) weld.ContourAbove = BaseWeld.WeldContourEnum.WELD_CONTOUR_NONE;
                        else if (contourTypeAbove == ContourType.Flush) weld.ContourAbove = BaseWeld.WeldContourEnum.WELD_CONTOUR_FLUSH;
                    }

                    if (label == "SizeBelow") weld.SizeBelow = double.Parse(sizeBelow);

                    if (label == "WeldTypeBelow")
                    {
                        if (weldTypeBelow == WeldType.WELD_TYPE_NONE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_NONE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_FILLET) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_FILLET;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_J_GROOVE_J_BUTT) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_J_GROOVE_J_BUTT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_FLARE_V_GROOVE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_V_GROOVE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_FLARE_BEVEL_GROOVE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_BEVEL_GROOVE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_EDGE_FLANGE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE_FLANGE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_CORNER_FLANGE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_CORNER_FLANGE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_PLUG) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_PLUG;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_BEVEL_BACKING) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_BACKING;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_SPOT) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_SPOT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_SEAM) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_SEAM;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_SLOT) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_SLOT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_MELT_THROUGH) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_MELT_THROUGH;
                        else if (weldTypeBelow == WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT) weld.TypeBelow = BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weldTypeBelow == WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weld.TypeBelow = BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_EDGE) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_ISO_SURFACING) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_ISO_SURFACING;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_FOLD) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_FOLD;
                        else if (weldTypeBelow == WeldType.WELD_TYPE_INCLINED) weld.TypeBelow = BaseWeld.WeldTypeEnum.WELD_TYPE_INCLINED;
                    }
                    if (label == "ContourTypeBelow")
                    {
                        if (contourTypeBelow == ContourType.None) weld.ContourBelow = BaseWeld.WeldContourEnum.WELD_CONTOUR_NONE;
                        else if (contourTypeBelow == ContourType.Flush) weld.ContourBelow = BaseWeld.WeldContourEnum.WELD_CONTOUR_FLUSH;
                    }

                    if (label == "RefText") weld.ReferenceText = refText;

                    if (label == "Around")
                    {
                        if (around == Bool.True) weld.AroundWeld = true; else weld.AroundWeld = false;
                    }

                    weld.Modify();
                }
            }
        }
예제 #41
0
        public void GetProperties()
        {
            Model model = new Model();
            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
            if (modelObjectEnum.GetSize() == 1)
            {
                while (modelObjectEnum.MoveNext())
                {
                    if (modelObjectEnum.Current is Tekla.Structures.Model.BaseWeld)
                    {
                        BaseWeld weld = (BaseWeld)modelObjectEnum.Current;

                        refText = weld.ReferenceText;
                        if (weld.AroundWeld) around = Bool.True; else around = Bool.False;

                        sizeAbove = weld.SizeAbove.ToString();

                        if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_NONE) weldTypeAbove = WeldType.WELD_TYPE_NONE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_FILLET) weldTypeAbove = WeldType.WELD_TYPE_FILLET;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT) weldTypeAbove = WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weldTypeAbove = WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT) weldTypeAbove = WeldType.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE) weldTypeAbove = WeldType.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE) weldTypeAbove = WeldType.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT) weldTypeAbove = WeldType.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_J_GROOVE_J_BUTT) weldTypeAbove = WeldType.WELD_TYPE_J_GROOVE_J_BUTT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_V_GROOVE) weldTypeAbove = WeldType.WELD_TYPE_FLARE_V_GROOVE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_BEVEL_GROOVE) weldTypeAbove = WeldType.WELD_TYPE_FLARE_BEVEL_GROOVE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE_FLANGE) weldTypeAbove = WeldType.WELD_TYPE_EDGE_FLANGE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_CORNER_FLANGE) weldTypeAbove = WeldType.WELD_TYPE_CORNER_FLANGE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_PLUG) weldTypeAbove = WeldType.WELD_TYPE_PLUG;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_BACKING) weldTypeAbove = WeldType.WELD_TYPE_BEVEL_BACKING;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_SPOT) weldTypeAbove = WeldType.WELD_TYPE_SPOT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_SEAM) weldTypeAbove = WeldType.WELD_TYPE_SEAM;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_SLOT) weldTypeAbove = WeldType.WELD_TYPE_SLOT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET) weldTypeAbove = WeldType.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET) weldTypeAbove = WeldType.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_MELT_THROUGH) weldTypeAbove = WeldType.WELD_TYPE_MELT_THROUGH;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT) weldTypeAbove = WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weldTypeAbove = WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE) weldTypeAbove = WeldType.WELD_TYPE_EDGE;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_ISO_SURFACING) weldTypeAbove = WeldType.WELD_TYPE_ISO_SURFACING;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_FOLD) weldTypeAbove = WeldType.WELD_TYPE_FOLD;
                        else if (weld.TypeAbove == BaseWeld.WeldTypeEnum.WELD_TYPE_INCLINED) weldTypeAbove = WeldType.WELD_TYPE_INCLINED;
                        else Console.WriteLine(weld.TypeAbove);

                        if (weld.ContourAbove == BaseWeld.WeldContourEnum.WELD_CONTOUR_NONE) contourTypeAbove = ContourType.None;
                        else if (weld.ContourAbove == BaseWeld.WeldContourEnum.WELD_CONTOUR_FLUSH) contourTypeAbove = ContourType.Flush;

                        sizeBelow = weld.SizeBelow.ToString();

                        if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_NONE) weldTypeBelow = WeldType.WELD_TYPE_NONE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_FILLET) weldTypeBelow = WeldType.WELD_TYPE_FILLET;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT) weldTypeBelow = WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weldTypeBelow = WeldType.WELD_TYPE_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT) weldTypeBelow = WeldType.WELD_TYPE_SQUARE_GROOVE_SQUARE_BUTT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE) weldTypeBelow = WeldType.WELD_TYPE_SINGLE_V_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE) weldTypeBelow = WeldType.WELD_TYPE_SINGLE_BEVEL_BUTT_WITH_BROAD_ROOT_FACE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT) weldTypeBelow = WeldType.WELD_TYPE_U_GROOVE_SINGLE_U_BUTT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_J_GROOVE_J_BUTT) weldTypeBelow = WeldType.WELD_TYPE_J_GROOVE_J_BUTT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_V_GROOVE) weldTypeBelow = WeldType.WELD_TYPE_FLARE_V_GROOVE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_FLARE_BEVEL_GROOVE) weldTypeBelow = WeldType.WELD_TYPE_FLARE_BEVEL_GROOVE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE_FLANGE) weldTypeBelow = WeldType.WELD_TYPE_EDGE_FLANGE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_CORNER_FLANGE) weldTypeBelow = WeldType.WELD_TYPE_CORNER_FLANGE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_PLUG) weldTypeBelow = WeldType.WELD_TYPE_PLUG;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_BEVEL_BACKING) weldTypeBelow = WeldType.WELD_TYPE_BEVEL_BACKING;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_SPOT) weldTypeBelow = WeldType.WELD_TYPE_SPOT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_SEAM) weldTypeBelow = WeldType.WELD_TYPE_SEAM;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_SLOT) weldTypeBelow = WeldType.WELD_TYPE_SLOT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET) weldTypeBelow = WeldType.WELD_TYPE_PARTIAL_PENETRATION_SINGLE_BEVEL_BUTT_PLUS_FILLET;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET) weldTypeBelow = WeldType.WELD_TYPE_PARTIAL_PENETRATION_SQUARE_GROOVE_PLUS_FILLET;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_MELT_THROUGH) weldTypeBelow = WeldType.WELD_TYPE_MELT_THROUGH;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT) weldTypeBelow = WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_V_BUTT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT) weldTypeBelow = WeldType.STEEP_FLANKED_BEVEL_GROOVE_SINGLE_BEVEL_BUTT;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_EDGE) weldTypeBelow = WeldType.WELD_TYPE_EDGE;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_ISO_SURFACING) weldTypeBelow = WeldType.WELD_TYPE_ISO_SURFACING;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_FOLD) weldTypeBelow = WeldType.WELD_TYPE_FOLD;
                        else if (weld.TypeBelow == BaseWeld.WeldTypeEnum.WELD_TYPE_INCLINED) weldTypeBelow = WeldType.WELD_TYPE_INCLINED;
                        else Console.WriteLine(weld.TypeBelow);

                        if (weld.ContourBelow == BaseWeld.WeldContourEnum.WELD_CONTOUR_NONE) contourTypeBelow = ContourType.None;
                        else if (weld.ContourBelow == BaseWeld.WeldContourEnum.WELD_CONTOUR_FLUSH) contourTypeBelow = ContourType.Flush;
                    }
                }
            }
            else
            {
                sizeAbove = "";
                weldTypeAbove = new WeldType();
                contourTypeAbove = new ContourType();
                sizeBelow = "";
                weldTypeBelow = new WeldType();
                contourTypeBelow = new ContourType();
                refText = "";
                around = new Bool();
            }
        }
        public void Modify(PropertyValueChangedEventArgs e)
        {
            string label = e.ChangedItem.Label;

            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
            while (modelObjectEnum.MoveNext())
            {
                if (modelObjectEnum.Current is Connection)
                {
                    Connection connection = (Connection)modelObjectEnum.Current;

                    if (label == "Code") connection.Code = code;

                    connection.Modify();
                }
            }
        }
예제 #43
0
        ArrayList GetModelObjectsByType(string ObjectType)
        {
            ArrayList ObjectsToBeSelected = new ArrayList();

            Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            foreach (Tekla.Structures.Model.ModelObject modelObject in modelObjectSelector.GetSelectedObjects())
            {
                if (modelObject.GetType().ToString() == ObjectType)
                    ObjectsToBeSelected.Add(modelObject);
            }
            return ObjectsToBeSelected;
        }
예제 #44
0
            public void GetProperties()
            {
                Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
                if (modelObjectEnum.GetSize() == 1)
                {
                    while (modelObjectEnum.MoveNext())
                    {
                        if (modelObjectEnum.Current is Tekla.Structures.Model.ContourPlate)
                        {
                            Tekla.Structures.Model.ContourPlate contourPlate = (Tekla.Structures.Model.ContourPlate)modelObjectEnum.Current;

                            TransformationPlane currentTP = new TransformationPlane();
                            currentTP = model.GetWorkPlaneHandler().GetCurrentTransformationPlane();

                            model.GetWorkPlaneHandler().SetCurrentTransformationPlane(new TransformationPlane());

                            contourPlate.Select();

                            Assembly assembly = contourPlate.GetAssembly() as Tekla.Structures.Model.Assembly;
                            assembly.GetReportProperty("ASSEMBLY_POSITION_CODE", ref gridLocation);
                            partType = contourPlate.GetType().Name;
                            partID = contourPlate.Identifier.ID.ToString();
                            contourPlate.GetReportProperty("OWNER", ref owner);
                            partPrefix = contourPlate.PartNumber.Prefix;
                            partStartNo = contourPlate.PartNumber.StartNumber.ToString();
                            assemblyPrefix = contourPlate.AssemblyNumber.Prefix;
                            assemblyStartNo = contourPlate.AssemblyNumber.StartNumber.ToString();
                            Phase CurrentPhase = new Phase();
                            contourPlate.GetPhase(out CurrentPhase);
                            phase = CurrentPhase.PhaseNumber.ToString();
                            name = contourPlate.Name;
                            profile = contourPlate.Profile.ProfileString;
                            material = contourPlate.Material.MaterialString;
                            finish = contourPlate.Finish;
                            classValue = contourPlate.Class;

                            if (contourPlate.Position.Plane == Position.PlaneEnum.LEFT) positionOnPlane = PositionPlaneEnum.Left;
                            else if (contourPlate.Position.Plane == Position.PlaneEnum.MIDDLE) positionOnPlane = PositionPlaneEnum.Middle;
                            else if (contourPlate.Position.Plane == Position.PlaneEnum.RIGHT) positionOnPlane = PositionPlaneEnum.Right;

                            positionOnPlaneOffset = contourPlate.Position.PlaneOffset.ToString("F02");

                            if (contourPlate.Position.Rotation == Position.RotationEnum.BACK) positionRotation = PositionRotationEnum.Back;
                            else if (contourPlate.Position.Rotation == Position.RotationEnum.BELOW) positionRotation = PositionRotationEnum.Below;
                            else if (contourPlate.Position.Rotation == Position.RotationEnum.FRONT) positionRotation = PositionRotationEnum.Front;
                            else if (contourPlate.Position.Rotation == Position.RotationEnum.TOP) positionRotation = PositionRotationEnum.Top;

                            positionRotationOffset = contourPlate.Position.RotationOffset.ToString("F02");

                            if (contourPlate.Position.Depth == Position.DepthEnum.BEHIND) positionAtDepth = PositionDepthEnum.Behind;
                            else if (contourPlate.Position.Depth == Position.DepthEnum.FRONT) positionAtDepth = PositionDepthEnum.Front;
                            else if (contourPlate.Position.Depth == Position.DepthEnum.MIDDLE) positionAtDepth = PositionDepthEnum.Middle;

                            positionAtDepthOffset = contourPlate.Position.DepthOffset.ToString("F02");
                            //contourPlate.GetUserProperty("USER_FIELD_1", ref userfield1);
                            //contourPlate.GetUserProperty("USER_FIELD_2", ref userfield2);
                            //contourPlate.GetUserProperty("USER_FIELD_3", ref userfield3);
                            //contourPlate.GetUserProperty("USER_FIELD_4", ref userfield4);
                            //contourPlate.GetUserProperty("comment", ref notesComments);
                            //contourPlate.GetUserProperty("FIT_NOTES", ref fittingNotes);
                            //contourPlate.GetUserProperty("FIT_NOTES2", ref fittingNotes2);
                            //contourPlate.GetUserProperty("cambering", ref cambering);
                            //contourPlate.GetUserProperty("PAINT", ref paint);
                            //contourPlate.GetUserProperty("PRELIM_MARK", ref preliminaryMark);
                            //contourPlate.GetUserProperty("PAINT_WFT", ref paintWFT);
                            //contourPlate.GetUserProperty("PAINT_DFT", ref paintDFT);
                            //double dblshear1 = 0; contourPlate.GetUserProperty("shear1", ref dblshear1); dblshear1 = dblshear1 * 0.001; shearStart = dblshear1.ToString();
                            //double dblshear2 = 0; contourPlate.GetUserProperty("shear2", ref dblshear2); dblshear2 = dblshear2 * 0.001; shearEnd = dblshear2.ToString();
                            //double dblaxial1 = 0; contourPlate.GetUserProperty("axial1", ref dblaxial1); dblaxial1 = dblaxial1 * 0.001; axialStart = dblaxial1.ToString();
                            //double dblaxial2 = 0; contourPlate.GetUserProperty("axial2", ref dblaxial2); dblaxial2 = dblaxial2 * 0.001; axialEnd = dblaxial2.ToString();
                            //double dblmoment1 = 0; contourPlate.GetUserProperty("moment1", ref dblmoment1); dblmoment1 = dblmoment1 * 0.001; momentStart = dblmoment1.ToString();
                            //double dblmoment2 = 0; contourPlate.GetUserProperty("moment2", ref dblmoment2); dblmoment2 = dblmoment2 * 0.001; momentEnd = dblmoment2.ToString();

                            //contourPlate.GetUserProperty("CONN_CODE_END1", ref connCodeStart);
                            //contourPlate.GetUserProperty("CONN_CODE_END2", ref connCodeEnd);
                            model.GetWorkPlaneHandler().SetCurrentTransformationPlane(currentTP);
                        }
                    }
                }
                if (modelObjectEnum.GetSize() > 1)
                {
                    partType = "";
                    partID = "";
                    owner = "";
                    gridLocation = "";
                    partPrefix = "";
                    partStartNo = "";
                    assemblyPrefix = "";
                    assemblyStartNo = "";
                    phase = "";
                    name = "";
                    profile = "";
                    material = "";
                    finish = "";
                    classValue = "";
                    //userfield1 = "";
                    //userfield2 = "";
                    //userfield3 = "";
                    //userfield4 = "";
                    //notesComments = "";
                    //fittingNotes = "";
                    //fittingNotes2 = "";
                    //cambering = "";
                    //paint = "";
                    //preliminaryMark = "";
                    //paintWFT = "";
                    //paintDFT = "";
                    //shearStart = "";
                    //shearEnd = "";
                    //axialStart = "";
                    //axialEnd = "";
                    //momentStart = "";
                    //momentEnd = "";
                    //connCodeStart = "";
                    //connCodeEnd = "";
                    positionOnPlane = new PositionPlaneEnum();
                    positionOnPlaneOffset = "";
                    positionRotation = new PositionRotationEnum();
                    positionRotationOffset = "";
                    positionAtDepth = new PositionDepthEnum();
                    positionAtDepthOffset = "";
                }
            }
예제 #45
0
        private void UpdateProperties()
        {
            if (this.propertyGrid1.InvokeRequired)
            {
                UpdatePropertiesCallback d = new UpdatePropertiesCallback(UpdateProperties);
                this.Invoke(d);
            }
            else
            {
                Drawing drawing = drawingHandler.GetActiveDrawing();
                if (drawing != null)
                {
                    DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected();
                    statusLabel.Text = drawingObjectEnum.GetSize().ToString() + " objects selected";
                    ArrayList arraySelectedObjects = new ArrayList();
                    if (drawingObjectEnum.GetSize() == 0)
                    {
                        activeDrawing.GetProperties();
                        propertyGrid1.SelectedObject = activeDrawing;
                    }

                    while (drawingObjectEnum.MoveNext())
                    {
                        string objectType = drawingObjectEnum.Current.GetType().ToString();
                        if (!arraySelectedObjects.Contains(objectType)) arraySelectedObjects.Add(objectType);
                    }

                    comboBox1.Text = "";
                    comboBox1.Items.Clear();

                    arraySelectedObjects.Sort();
                    foreach (string objectName in arraySelectedObjects)
                        comboBox1.Items.Add(objectName);

                    if (arraySelectedObjects.Count == 1)
                    {

                        if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Part")
                        {
                            drawingPart.GetProperties();
                            propertyGrid1.SelectedObject = drawingPart;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Weld")
                        {
                            drawingWeld.GetProperties();
                            propertyGrid1.SelectedObject = drawingWeld;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.View")
                        {
                            view.GetProperties();
                            propertyGrid1.SelectedObject = view;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Bolt")
                        {
                            drawingBolt.GetProperties();
                            propertyGrid1.SelectedObject = drawingBolt;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.StraightDimensionSet")
                        {
                            straightDim.GetProperties();
                            propertyGrid1.SelectedObject = straightDim;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.RadiusDimension")
                        {
                            radiusDim.GetProperties();
                            propertyGrid1.SelectedObject = radiusDim;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.CurvedDimensionSetRadial")
                        {
                            radialDim.GetProperties();
                            propertyGrid1.SelectedObject = radialDim;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.AngleDimension")
                        {
                            angleDim.GetProperties();
                            propertyGrid1.SelectedObject = angleDim;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.GridLine")
                        {
                            drawingGrid.GetProperties();
                            propertyGrid1.SelectedObject = drawingGrid;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Line")
                        {
                            line.GetProperties();
                            propertyGrid1.SelectedObject = line;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Arc")
                        {
                            arc.GetProperties();
                            propertyGrid1.SelectedObject = arc;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Polyline")
                        {
                            polyline.GetProperties();
                            propertyGrid1.SelectedObject = polyline;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Rectangle")
                        {
                            rectangle.GetProperties();
                            propertyGrid1.SelectedObject = rectangle;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Circle")
                        {
                            circle.GetProperties();
                            propertyGrid1.SelectedObject = circle;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Polygon")
                        {
                            polygon.GetProperties();
                            propertyGrid1.SelectedObject = polygon;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Text")
                        {
                            text.GetProperties();
                            propertyGrid1.SelectedObject = text;
                        }
                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Symbol")
                        {
                            symbol.GetProperties();
                            propertyGrid1.SelectedObject = symbol;
                        }
                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Drawing.Mark")
                        {
                            mark.GetProperties();
                            propertyGrid1.SelectedObject = mark;
                        }

                        else
                        {
                            activeDrawing.GetProperties();
                            propertyGrid1.SelectedObject = activeDrawing;
                        }

                        comboBox1.SelectedText = arraySelectedObjects[0].ToString();
                        propertyGrid1.Focus();
                    }

                    if (arraySelectedObjects.Count > 1) propertyGrid1.SelectedObject = null;

                }

                if (drawing == null)
                {
                    Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                    ModelObjectEnumerator modelObjectEnum = modelObjectSelector.GetSelectedObjects();
                    statusLabel.Text = modelObjectEnum.GetSize().ToString() + " objects selected";
                    ArrayList arraySelectedObjects = new ArrayList();

                    if (modelObjectEnum.GetSize() == 0)
                        propertyGrid1.SelectedObject = null;

                    while (modelObjectEnum.MoveNext())
                    {
                        string objectType = modelObjectEnum.Current.GetType().ToString();
                        if (!arraySelectedObjects.Contains(objectType)) arraySelectedObjects.Add(objectType);
                    }

                    comboBox1.Text = "";
                    comboBox1.Items.Clear();

                    arraySelectedObjects.Sort();
                    foreach (string objectName in arraySelectedObjects)
                        comboBox1.Items.Add(objectName);

                    if (arraySelectedObjects.Count == 0)
                    {
                        Tekla.Structures.Model.UI.ModelViewEnumerator modelViewEnum = Tekla.Structures.Model.UI.ViewHandler.GetSelectedViews();
                        if (modelViewEnum.Count == 1)
                        {
                            modelView.GetProperties();
                            propertyGrid1.SelectedObject = modelView;

                            comboBox1.SelectedText = "Tekla.Structures.Model.UI.View";
                            propertyGrid1.Focus();
                        }
                    }

                    if (arraySelectedObjects.Count == 1)
                    {
                        if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Model.Beam")
                        {
                            beam.GetProperties();
                            propertyGrid1.SelectedObject = beam;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Model.ContourPlate")
                        {
                            contourPlate.GetProperties();
                            propertyGrid1.SelectedObject = contourPlate;
                        }

                        else if (arraySelectedObjects[0].ToString().Contains("Tekla.Structures.Model.Weld"))
                        {
                            modelWeld.GetProperties();
                            propertyGrid1.SelectedObject = modelWeld;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Model.PolygonWeld")
                        {
                            modelWeld.GetProperties();
                            propertyGrid1.SelectedObject = modelWeld;
                        }

                        else if (arraySelectedObjects[0].ToString().Contains("Tekla.Structures.Model.Bolt"))
                        {
                            modelBolt.GetProperties();
                            propertyGrid1.SelectedObject = modelBolt;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Model.Grid")
                        {
                            modelGrid.GetProperties();
                            propertyGrid1.SelectedObject = modelGrid;
                        }

                        else if (arraySelectedObjects[0].ToString() == "Tekla.Structures.Model.Connection")
                        {
                            modelConnection.GetProperties();
                            propertyGrid1.SelectedObject = modelConnection;
                        }

                        comboBox1.SelectedText = arraySelectedObjects[0].ToString();
                        propertyGrid1.Focus();
                    }

                    if (arraySelectedObjects.Count > 1) propertyGrid1.SelectedObject = null;
                }
            }
        }
        // This application assumes that users have already opened a drawing - an assembly drawing.
        // The goal is for the user to see that particular assembly
        // in the model, and to see ONLY that assembly in the model.
        // Therefore all parts which are not associated with this assembly need to be hidden.
        // All the clutter needs to be removed from view.
        // And all parts associated with this assembly need to be visible.
        // Summary: our goals is for users to see, given the particular assembly drawing that they are in,
        // just that ONE assembly within the model, and to have all other parts hidden.
        // Methodology:
        // 1. We obtain the assembly drawing and go through all the drawing objects within the assembly drawing. We get the identifiers of these
        ////  drawing objects and place them in a list (assemblyPartIdentifierList)
        // 2. We obtain the identifiers of all the objects in the model and place them on this list too.
        ///3. We want to hide all objects which are not associated with the assembly drawing which is currently open.
        ///4. Consequently, we obtain a List of identifiers which contains all the objects in the model APART from the assembly parts of the current assembly
        ///// we are working on.
        ///5. We convert this list of identifiers into a TSM.Model Object list, and then again convert this list into an ArrayList.
        ///6. The array list should contain all the objects we need to hide.
        ///7. We use the array list to select all the objects which need to be hidden, in the model.
        ///8. We want to call a macro which hides all the objects currently selected.
        // Two questions, (1) is the above approach a good and efficient wa to solve the above problem>
        // Given a drawing is open, how can one call a macro which hides all selected objects?
        // Your comemnts and criticism would be very much apprieciated.
        private void GetAssembly()
        {
            try
            {
            // creates model and drawing handle

                TSM.Model myModel = new TSM.Model();

                TSD.DrawingHandler dh = new TSD.DrawingHandler();

                if (dh.GetConnectionStatus() == false)
                {
                     System.Windows.Forms.MessageBox.Show("Could not connect drawing handler.");
                     return;
                }

            // users must have an Assembly drawing open. We want to see the assembly contained in the assembly drawing in the
            // UI. Hence we first obtain the identifiers of the drawing objects.

                TSD.Drawing currentDrawing = dh.GetActiveDrawing();

                if (currentDrawing == null)
                {
                    System.Windows.Forms.MessageBox.Show("Please ensure that an assembly drawing is open");
                    return;
                }

                TSD.AssemblyDrawing currentAssemblyDrawing = currentDrawing as TSD.AssemblyDrawing;

                if (currentAssemblyDrawing == null)
                {
                    System.Windows.Forms.MessageBox.Show("Please ensure that an assembly drawing is open");
                    return;
                }

                if (currentAssemblyDrawing != null)
                {
                    // in order to select in the model space we need to create an array list

                    ArrayList assemblyObjectToBeViewed = new ArrayList();

                    // we need to add a model object to the array list. We are adding the assembly as the model object for the model object selector to select
                    assemblyObjectToBeViewed.Add( myModel.SelectModelObject(currentAssemblyDrawing.AssemblyIdentifier) );

                    TSM.UI.ModelObjectSelector selector = new TSM.UI.ModelObjectSelector();
                    selector.Select(assemblyObjectToBeViewed);

                    TSM.Operations.Operation.RunMacro("ShowOnlySelected.cs");
                    TSM.Operations.Operation.RunMacro("FitToView.cs");
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("Please ensure you have an Assembly drawing open");
                }

            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }
        private static void removeAssemblyPropertys(TSM.Assembly currentAssembly, Tekla.Technology.Akit.IScript akit)
        {
            ArrayList currentSelection = new ArrayList();
            currentSelection.Add(currentAssembly);

            TSM.UI.ModelObjectSelector selector = new TSM.UI.ModelObjectSelector();
            selector.Select(currentSelection);

            akit.Callback("acmd_display_selected_object_dialog", "", "View_01 window_1");
            TSM.Part currentMainPart = currentAssembly.GetMainPart() as TSM.Part;

            if (!currentMainPart.Material.MaterialString.StartsWith("C"))
            {
                akit.ValueChange("steelassembly_1", "AssemblyPrefix", "");
                akit.ValueChange("steelassembly_1", "AssemblyStartNumber", "");
                akit.ValueChange("steelassembly_1", "AssemblyName", "");
                akit.PushButton("modify_button", "steelassembly_1");
                akit.PushButton("OK_button", "steelassembly_1");
            }
            else
            {
                if (currentMainPart.CastUnitType == 0)
                {
                    akit.ValueChange("precastassembly_1", "AssemblyPrefix", "");
                    akit.ValueChange("precastassembly_1", "AssemblyStartNumber", "");
                    akit.ValueChange("precastassembly_1", "AssemblyName", "");
                    akit.PushButton("modify_button", "precastassembly_1");
                    akit.PushButton("OK_button", "precastassembly_1");
                }
                else
                {
                    akit.ValueChange("insituassembly_1", "AssemblyPrefix", "");
                    akit.ValueChange("insituassembly_1", "AssemblyStartNumber", "");
                    akit.ValueChange("insituassembly_1", "AssemblyName", "");
                    akit.PushButton("modify_button", "insituassembly_1");
                    akit.PushButton("OK_button", "insituassembly_1");
                }
            }
        }
예제 #48
0
        /// <summary>
        /// select all parts that need to be renumbered
        /// </summary>
        /// <param name="model"></param>
        /// <returns>quantity of selected parts</returns>
        public static int SelectPartsToBeRenumbered(TSM.Model model)
        {
            ArrayList partsToBeSelected = new ArrayList();

            foreach (PartCustom part in partList)
            {
                if (part.NeedsToChange)
                {
                    partsToBeSelected.Add(model.SelectModelObject(part.Identifier));
                }
            }
            TSM.UI.ModelObjectSelector mos = new TSM.UI.ModelObjectSelector();
            mos.Select(partsToBeSelected);
            return mos.GetSelectedObjects().GetSize();
        }
예제 #49
0
        /// <summary>
        /// Renumbers part that need renumbering.
        /// </summary>
        /// <param name="model">Tekla.Structures.Model model</param>
        public static void RenumberParts(TSM.Model model)
        {
            // check if numberinghistory.txt exists and change its name
            RenameNumberingHistory(model);

            foreach (PartCustom part in partList)
            {
                if (part.NeedsToChange)
                {
                    string partCurrentPosition;
                    partCurrentPosition = part.prefix.ToString() + part.number.ToString();

                    int newNum;
                    string oppositePrefix = ChangeCapitalization(part.Prefix);

                    // checks if a part with same position has already been assigned a new number.
                    // If so, it skips it --> tekla applies the new number from the first part to all of the same parts
                    // all changes are collected in prefixChanges dictionary.
                    if (!prefixChanges.ContainsKey(partCurrentPosition))
                    {
                        bool firstGo = true;
                        string preNumber = string.Empty;
                        string postNumber = string.Empty;

                        do
                        {
                            int maxOppositeNumber = positionsDictionary[oppositePrefix].Max();
                            int maxNumber = positionsDictionary[part.Prefix].Max();

                            newNum = Math.Max(maxNumber, maxOppositeNumber) + 1;

                            // adds new number to prefixChanges dictionary
                            Tuple<string, int> tuple = new Tuple<string, int>(part.prefix, newNum);

                            if (firstGo)
                            {
                                prefixChanges.Add(partCurrentPosition, tuple);
                            }
                            else
                            {
                                prefixChanges.Remove(partCurrentPosition);
                                prefixChanges.Add(partCurrentPosition, tuple);
                            }

                            // select part - clumsy, could it be improved?
                            ArrayList aList = new ArrayList();
                            TSM.Object tPart = model.SelectModelObject(part.Identifier);
                            TSM.UI.ModelObjectSelector selector = new TSM.UI.ModelObjectSelector();
                            aList.Add(tPart);
                            selector.Select(aList);

                            TSM.Part myPart = tPart as TSM.Part;

                            // preNumber and postNumber strings are compared in the 'while' of the do-while loop, to determine if Macrobuilder
                            // macro was succesfully run.
                            // (sometimes Tekla doesn't want to apply certain numbers - e.g.: if they were in use in previous model stages, ... )
                            preNumber = myPart.GetPartMark();

                            // use Macrobuilder dll to change numbering
                            MacroBuilder macroBuilder = new MacroBuilder();
                            macroBuilder.Callback("acmdAssignPositionNumber", "part", "main_frame");
                            macroBuilder.ValueChange("assign_part_number", "Position", newNum.ToString());
                            macroBuilder.PushButton("AssignPB", "assign_part_number");
                            macroBuilder.PushButton("CancelPB", "assign_part_number");
                            macroBuilder.Run();

                            postNumber = myPart.GetPartMark();

                            bool ismacrounning = true;
                            while (ismacrounning)
                            {
                                ismacrounning = TSM.Operations.Operation.IsMacroRunning();
                            }

                            // add newly created part mark to positionsDict
                            positionsDictionary[part.Prefix].Add(newNum);

                            firstGo = false;

                        }
                        //while (!AssignmentSuccesCheck(model));
                        while (preNumber == postNumber);
                    }
                }
            }
        }
예제 #50
0
 private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
 {
     Drawing drawing = drawingHandler.GetActiveDrawing();
     if (drawing == null)
     {
         Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
         ArrayList arrayObjectsSelected = GetModelObjectsByType(comboBox1.Text);
         if (arrayObjectsSelected.Count > 0)
             modelObjectSelector.Select(arrayObjectsSelected);
     }
     if (drawing != null)
     {
         ArrayList arrayObjectsSelected = GetDrawingObjectsByType(comboBox1.Text);
         if (arrayObjectsSelected.Count > 0)
             drawingHandler.GetDrawingObjectSelector().SelectObjects(arrayObjectsSelected, false);
     }
 }