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"); }
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(); } } }