public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            Model model = new Model();
            ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetAllObjectsWithType(Tekla.Structures.Model.ModelObject.ModelObjectEnum.BOLT_ARRAY);

            while (modelObjectEnum.MoveNext())
            {
                if (modelObjectEnum.Current is BoltGroup)
                {
                    BoltGroup bolt = (BoltGroup)modelObjectEnum.Current;
                    if (bolt.BoltStandard == "7990")
                    {
                        bolt.BoltStandard = "8.8XOX";
                        bolt.Modify();
                    }
                }
            }
            model.CommitChanges();
            MessageBox.Show("Operation Finished");
        }
Example #2
0
        public void Modify(PropertyValueChangedEventArgs e)
        {
            string label = e.ChangedItem.Label;

            ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();

            while (modelObjectEnum.MoveNext())
            {
                if (modelObjectEnum.Current is BoltGroup)
                {
                    BoltGroup bolt = (BoltGroup)modelObjectEnum.Current;

                    if (label == "BoltSize")
                    {
                        bolt.BoltSize = double.Parse(boltSize);
                    }
                    if (label == "BoltStandard")
                    {
                        bolt.BoltStandard = boltStandard;                          // list to sort
                    }
                    if (label == "BoltType")
                    {
                        if (boltType == BoltTypeEnum.Site)
                        {
                            bolt.BoltType = BoltGroup.BoltTypeEnum.BOLT_TYPE_SITE;
                        }
                        if (boltType == BoltTypeEnum.Workshop)
                        {
                            bolt.BoltType = BoltGroup.BoltTypeEnum.BOLT_TYPE_WORKSHOP;
                        }
                    }

                    if (label == "ThreadMaterial")
                    {
                        if (threadMaterial == ThreadMaterialEnum.No)
                        {
                            bolt.ThreadInMaterial = BoltGroup.BoltThreadInMaterialEnum.THREAD_IN_MATERIAL_NO;
                        }
                        if (threadMaterial == ThreadMaterialEnum.Yes)
                        {
                            bolt.ThreadInMaterial = BoltGroup.BoltThreadInMaterialEnum.THREAD_IN_MATERIAL_YES;
                        }
                    }

                    if (label == "CutLength")
                    {
                        bolt.CutLength = double.Parse(cutLength);
                    }
                    if (label == "ExtraLength")
                    {
                        bolt.ExtraLength = double.Parse(extraLength);
                    }
                    if (label == "BoltShaft")
                    {
                        bolt.Bolt = bool.Parse(boltShaft.ToString());
                    }
                    if (label == "Washer1")
                    {
                        bolt.Washer1 = bool.Parse(washer1.ToString());
                    }
                    if (label == "Washer2")
                    {
                        bolt.Washer2 = bool.Parse(washer2.ToString());
                    }
                    if (label == "Washer3")
                    {
                        bolt.Washer3 = bool.Parse(washer3.ToString());
                    }
                    if (label == "Nut1")
                    {
                        bolt.Nut1 = bool.Parse(nut1.ToString());
                    }
                    if (label == "Nut2")
                    {
                        bolt.Nut2 = bool.Parse(nut2.ToString());
                    }

                    if (label == "BoltDistX")
                    {
                        if (bolt is BoltArray)
                        {
                            BoltArray boltArray      = (BoltArray)bolt;
                            int       boltArrayCount = boltArray.GetBoltDistXCount();
                            for (int i = boltArrayCount - 1; i >= 0; i--)
                            {
                                boltArray.RemoveBoltDistX(i);
                                boltArray.Modify();
                            }
                            if (boltDistX != "")
                            {
                                string[] splitSpaces             = boltDistX.Split(new Char[] { ' ' });
                                System.Collections.ArrayList arr = new System.Collections.ArrayList();
                                foreach (string stringText in splitSpaces)
                                {
                                    if (stringText.Contains("*"))
                                    {
                                        string[] splitMultiplier = stringText.Split(new Char[] { '*' });
                                        for (int i = 0; i < int.Parse(splitMultiplier[0]); i++)
                                        {
                                            arr.Add(double.Parse(splitMultiplier[1].ToString()));
                                        }
                                    }
                                    else
                                    {
                                        arr.Add(double.Parse(stringText));
                                    }
                                }
                                for (int i = 0; i < arr.Count; i++)
                                {
                                    boltArray.SetBoltDistX(i, double.Parse(arr[i].ToString()));
                                }
                            }
                        }
                        else if (bolt is BoltXYList)
                        {
                            MessageBox.Show("Buggered");
                        }
                        else if (bolt is BoltCircle)
                        {
                            BoltCircle boltCircle = (BoltCircle)bolt;
                            boltCircle.NumberOfBolts = double.Parse(boltDistX);
                        }
                    }

                    if (label == "BoltDistY")
                    {
                        if (bolt is BoltArray)
                        {
                            BoltArray boltArray      = (BoltArray)bolt;
                            int       boltArrayCount = boltArray.GetBoltDistYCount();
                            for (int i = boltArrayCount - 1; i >= 0; i--)
                            {
                                boltArray.RemoveBoltDistY(i);
                                boltArray.Modify();
                            }
                            if (boltDistY != "")
                            {
                                string[] splitSpaces             = boltDistY.Split(new Char[] { ' ' });
                                System.Collections.ArrayList arr = new System.Collections.ArrayList();
                                foreach (string stringText in splitSpaces)
                                {
                                    if (stringText.Contains("*"))
                                    {
                                        string[] splitMultiplier = stringText.Split(new Char[] { '*' });
                                        for (int i = 0; i < int.Parse(splitMultiplier[0]); i++)
                                        {
                                            arr.Add(double.Parse(splitMultiplier[1].ToString()));
                                        }
                                    }
                                    else
                                    {
                                        arr.Add(double.Parse(stringText));
                                    }
                                }
                                for (int i = 0; i < arr.Count; i++)
                                {
                                    boltArray.SetBoltDistY(i, double.Parse(arr[i].ToString()));
                                }
                            }
                        }
                        else if (bolt is BoltXYList)
                        {
                            MessageBox.Show("Buggered");
                        }
                        else if (bolt is BoltCircle)
                        {
                            BoltCircle boltCircle = (BoltCircle)bolt;
                            boltCircle.Diameter = double.Parse(boltDistY);
                        }
                    }

                    if (label == "Tolerance")
                    {
                        bolt.Tolerance = double.Parse(tolerance);
                    }
                    if (label == "HoleType")
                    {
                        if (holeType == HoleTypeEnum.Slotted)
                        {
                            bolt.HoleType = BoltGroup.BoltHoleTypeEnum.HOLE_TYPE_SLOTTED;
                        }
                        if (holeType == HoleTypeEnum.Oversized)
                        {
                            bolt.HoleType = BoltGroup.BoltHoleTypeEnum.HOLE_TYPE_OVERSIZED;
                        }
                    }

                    if (label == "SlottedHoleX")
                    {
                        bolt.SlottedHoleX = double.Parse(slottedHoleX);
                    }
                    if (label == "SlottedHoleY")
                    {
                        bolt.SlottedHoleY = double.Parse(slottedHoleY);
                    }
                    if (label == "RotateSlots")
                    {
                        if (rotateSlots == RotateSlotEnum.Even)
                        {
                            bolt.RotateSlots = BoltGroup.BoltRotateSlotsEnum.ROTATE_SLOTS_EVEN;
                        }
                        if (rotateSlots == RotateSlotEnum.Odd)
                        {
                            bolt.RotateSlots = BoltGroup.BoltRotateSlotsEnum.ROTATE_SLOTS_ODD;
                        }
                        if (rotateSlots == RotateSlotEnum.Parallel)
                        {
                            bolt.RotateSlots = BoltGroup.BoltRotateSlotsEnum.ROTATE_SLOTS_PARALLEL;
                        }
                    }

                    if (label == "Hole1")
                    {
                        bolt.Hole1 = bool.Parse(hole1.ToString());
                    }
                    if (label == "Hole2")
                    {
                        bolt.Hole2 = bool.Parse(hole2.ToString());
                    }
                    if (label == "Hole3")
                    {
                        bolt.Hole3 = bool.Parse(hole3.ToString());
                    }
                    if (label == "Hole4")
                    {
                        bolt.Hole4 = bool.Parse(hole4.ToString());
                    }
                    if (label == "Hole5")
                    {
                        bolt.Hole5 = bool.Parse(hole5.ToString());
                    }
                    if (label == "OffsetFromStartX")
                    {
                        bolt.StartPointOffset.Dx = double.Parse(offsetFromStartX);
                    }
                    if (label == "OffsetFromStartY")
                    {
                        bolt.StartPointOffset.Dy = double.Parse(offsetFromStartY);
                    }
                    if (label == "OffsetFromStartZ")
                    {
                        bolt.StartPointOffset.Dz = double.Parse(offsetFromStartZ);
                    }
                    if (label == "OffsetFromEndX")
                    {
                        bolt.EndPointOffset.Dx = double.Parse(offsetFromEndX);
                    }
                    if (label == "OffsetFromEndY")
                    {
                        bolt.EndPointOffset.Dy = double.Parse(offsetFromEndY);
                    }
                    if (label == "OffsetFromEndZ")
                    {
                        bolt.EndPointOffset.Dz = double.Parse(offsetFromEndZ);
                    }
                    if (label == "PositionOnPlaneOffset")
                    {
                        bolt.Position.PlaneOffset = double.Parse(positionOnPlaneOffset);
                    }
                    if (label == "PositionRotation")
                    {
                        if (positionRotation == PositionRotationEnum.Back)
                        {
                            bolt.Position.Rotation = Position.RotationEnum.BACK;
                        }
                        if (positionRotation == PositionRotationEnum.Below)
                        {
                            bolt.Position.Rotation = Position.RotationEnum.BELOW;
                        }
                        if (positionRotation == PositionRotationEnum.Front)
                        {
                            bolt.Position.Rotation = Position.RotationEnum.FRONT;
                        }
                        if (positionRotation == PositionRotationEnum.Top)
                        {
                            bolt.Position.Rotation = Position.RotationEnum.TOP;
                        }
                    }

                    if (label == "PositionRotationOffset")
                    {
                        bolt.Position.RotationOffset = double.Parse(positionRotationOffset);
                    }
                    if (label == "At Depth Offset")
                    {
                        bolt.Position.DepthOffset = double.Parse(positionAtDepthOffset);
                    }

                    bolt.Modify();
                }
            }
        }