public PDLength()
        {
            System.Type[] selectionType = new System.Type[1];
            selectionType.SetValue(typeof(TSM.CustomPart), 0);

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

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

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

                        string newName = "PD" + curWidth.ToString() + " L=" + curLength.ToString();
                        currentComponent.SetUserProperty("P1a", newName);
                        currentComponent.Modify();
                    }
                }
            }
            myModel.CommitChanges();
        }
 private List<ModelObjectEnumerator> GetObjectsToCheck(bool checkAll)
 {
     Model model = new Model();
     List<ModelObjectEnumerator> list = new List<ModelObjectEnumerator>();
     if (checkAll)
     {
         list.Add(model.GetModelObjectSelector().GetAllObjectsWithType(ModelObject.ModelObjectEnum.BEAM));
         list.Add(model.GetModelObjectSelector().GetAllObjectsWithType(ModelObject.ModelObjectEnum.CONTOURPLATE));
         list.Add(model.GetModelObjectSelector().GetAllObjectsWithType(ModelObject.ModelObjectEnum.POLYBEAM));
     }
     else
     {
         Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
         ModelObjectEnumerator selectedObjects = modelObjectSelector.GetSelectedObjects();
         list.Add(selectedObjects);
     }
     return list;
 }
示例#3
0
        internal static void Run()
        {
            try
            {
                Operation.DisplayPrompt("Обработка…");
                PleaseWaitForm pleaseWait = new PleaseWaitForm();
                pleaseWait.Show();
                Application.DoEvents();

                Model model = new Model();
                Tekla.Structures.Model.UI.ModelObjectSelector selector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                ModelObjectEnumerator selectedObjects = selector.GetSelectedObjects();
                ModelObjectEnumerator objects;
                if (selectedObjects.GetSize() > 0)
                {
                    objects = selectedObjects;
                }
                else
                {
                    objects = model.GetModelObjectSelector().GetAllObjectsWithType(new Type[] { typeof(Assembly) });
                }

                List <Detail> details        = new List <Detail>();
                List <Detail> unknownDetails = new List <Detail>();

                if (objects.GetSize() > 0)
                {
                    string ru_shifr = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_shifr", ref ru_shifr);
                    model.GetProjectInfo().GetUserProperty("grafa_1", ref ru_shifr);
                    string ru_object_stroit_1 = string.Empty;
                    string ru_object_stroit_2 = string.Empty;
                    string ru_object_stroit_3 = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_objekt_stroit_1", ref ru_object_stroit_1);
                    //model.GetProjectInfo().GetUserProperty("ru_objekt_stroit_2", ref ru_object_stroit_2);
                    //model.GetProjectInfo().GetUserProperty("ru_objekt_stroit_3", ref ru_object_stroit_3);
                    model.GetProjectInfo().GetUserProperty("grafa_2", ref ru_object_stroit_1);
                    string ru_naimen_stroit_1 = string.Empty;
                    string ru_naimen_stroit_2 = string.Empty;
                    string ru_naimen_stroit_3 = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_naimen_stroit_1", ref ru_naimen_stroit_1);
                    //model.GetProjectInfo().GetUserProperty("ru_naimen_stroit_2", ref ru_naimen_stroit_2);
                    //model.GetProjectInfo().GetUserProperty("ru_naimen_stroit_3", ref ru_naimen_stroit_3);
                    model.GetProjectInfo().GetUserProperty("grafa_3", ref ru_naimen_stroit_1);
                    string ru_6  = string.Empty;
                    string ru_7  = string.Empty;
                    string ru_8  = string.Empty;
                    string ru_9  = string.Empty;
                    string ru_10 = string.Empty;
                    string ru_11 = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_6", ref ru_6);
                    //model.GetProjectInfo().GetUserProperty("ru_7", ref ru_7);
                    //model.GetProjectInfo().GetUserProperty("ru_8", ref ru_8);
                    //model.GetProjectInfo().GetUserProperty("ru_9", ref ru_9);
                    //model.GetProjectInfo().GetUserProperty("ru_10", ref ru_10);
                    //model.GetProjectInfo().GetUserProperty("ru_11", ref ru_11);
                    string ru_6_fam  = string.Empty;
                    string ru_7_fam  = string.Empty;
                    string ru_8_fam  = string.Empty;
                    string ru_9_fam  = string.Empty;
                    string ru_10_fam = string.Empty;
                    string ru_11_fam = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_6_fam", ref ru_6_fam);
                    //model.GetProjectInfo().GetUserProperty("ru_7_fam", ref ru_7_fam);
                    //model.GetProjectInfo().GetUserProperty("ru_8_fam", ref ru_8_fam);
                    //model.GetProjectInfo().GetUserProperty("ru_9_fam", ref ru_9_fam);
                    //model.GetProjectInfo().GetUserProperty("ru_10_fam", ref ru_10_fam);
                    //model.GetProjectInfo().GetUserProperty("ru_11_fam", ref ru_11_fam);
                    model.GetProjectInfo().GetUserProperty("razrabotal", ref ru_6_fam);
                    model.GetProjectInfo().GetUserProperty("proveril", ref ru_7_fam);
                    model.GetProjectInfo().GetUserProperty("nach_gruppy", ref ru_8_fam);
                    model.GetProjectInfo().GetUserProperty("n_control", ref ru_9_fam);
                    model.GetProjectInfo().GetUserProperty("nach_otdela", ref ru_10_fam);
                    model.GetProjectInfo().GetUserProperty("glav_eng", ref ru_11_fam);
                    string ru_stadiya = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_stadiya", ref ru_stadiya);
                    model.GetProjectInfo().GetUserProperty("grafa_6", ref ru_stadiya);
                    string ru_listov = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_listov", ref ru_listov);
                    model.GetProjectInfo().GetUserProperty("grafa_8", ref ru_listov);
                    int ru_listov_int = 0;
                    int.TryParse(ru_listov, out ru_listov_int);
                    string ru_nazvanie_org_1 = string.Empty;
                    string ru_nazvanie_org_2 = string.Empty;
                    string ru_nazvanie_org_3 = string.Empty;
                    //model.GetProjectInfo().GetUserProperty("ru_nazvanie_org_1", ref ru_nazvanie_org_1);
                    //model.GetProjectInfo().GetUserProperty("ru_nazvanie_org_2", ref ru_nazvanie_org_2);
                    //model.GetProjectInfo().GetUserProperty("ru_nazvanie_org_3", ref ru_nazvanie_org_3);
                    model.GetProjectInfo().GetUserProperty("grafa_9", ref ru_nazvanie_org_1);
                    string[] categories = new string[14];
                    model.GetProjectInfo().GetUserProperty("cm_kat_5", ref categories[0]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_6", ref categories[1]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_7", ref categories[2]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_8", ref categories[3]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_9", ref categories[4]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_10", ref categories[5]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_11", ref categories[6]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_12", ref categories[7]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_13", ref categories[8]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_14", ref categories[9]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_15", ref categories[10]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_16", ref categories[11]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_17", ref categories[12]);
                    model.GetProjectInfo().GetUserProperty("cm_kat_18", ref categories[13]);

                    bool isNonAssemblyExist = false;

                    while (objects.MoveNext())
                    {
                        ModelObject obj = objects.Current as ModelObject;
                        if (obj != null)
                        {
                            if (obj is Assembly)
                            {
                                Assembly assy = obj as Assembly;
                                if (assy.GetAssemblyType() == Assembly.AssemblyTypeEnum.STEEL_ASSEMBLY)
                                {
                                    int  assyCategory = 0;
                                    bool result       = assy.GetUserProperty("cm_kat", ref assyCategory);
                                    if (result)
                                    {
                                        assyCategory += 5;
                                    }

                                    List <Part> descendants = new List <Part>();
                                    TeklaUtils.GetDescendants(assy, ref descendants);

                                    foreach (Part part in descendants)
                                    {
                                        string standard = string.Empty;
                                        string profile  = part.Profile.ProfileString;
                                        string material = string.Empty;
                                        part.GetReportProperty("MATERIAL", ref material);
                                        double weight = 0.0;
                                        part.GetReportProperty("WEIGHT", ref weight);
                                        weight /= 1000;
                                        double length = 0.0;
                                        part.GetReportProperty("LENGTH", ref length);
                                        int    sortOrder  = 0;
                                        string fireResist = string.Empty;
                                        part.GetUserProperty("FIRE_RESIST_VNP", ref fireResist);

                                        if ((part is Beam) || (part is PolyBeam))
                                        {
                                            string temp = part.Profile.ProfileString.ToUpper();

                                            if (temp.StartsWith("—") || (temp.StartsWith("PL")) || (temp.StartsWith("BL")) || (temp.StartsWith("FL")) ||
                                                (temp.StartsWith("BPL")) || (temp.StartsWith("FLT")) || (temp.StartsWith("FPL")) || (temp.StartsWith("PLT")) ||
                                                (temp.StartsWith("PLATE")) || (temp.StartsWith("TANKO")) || (temp.StartsWith("ПОЛОСА")))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 19903-74", $"Лист {temp.Substring(temp.IndexOf("*") + 1)}", material, weight, 4, fireResist));
                                            }
                                            else if (temp.StartsWith("ПВ"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 8706-78", $"Лист {temp.Substring(temp.IndexOf("*") + 1)}", "C235", weight, 13, fireResist));
                                            }
                                            else if (temp.StartsWith("РИФ"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 8568-77", $"Лист {temp.Substring(temp.IndexOf("*") + 1)}", "C235", weight, 14, fireResist));
                                            }
                                            else if (temp.StartsWith("ЧРИФ"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 8568-77", $"Лист {temp.Substring(temp.IndexOf("*") + 1)}", "C235", weight, 15, fireResist));
                                            }
                                            else
                                            {
                                                LibraryProfileItem profileItem = new LibraryProfileItem();
                                                profileItem.ProfileName = part.Profile.ProfileString;
                                                profileItem.Select();
                                                ArrayList parameters = profileItem.aProfileItemUserParameters;
                                                if (parameters.Count > 0)
                                                {
                                                    foreach (ProfileItemParameter parameter in parameters)
                                                    {
                                                        if (parameter.Property == "GOST_NAME")
                                                        {
                                                            standard = parameter.StringValue;
                                                        }
                                                        if (parameter.Property == "TPL_SORT")
                                                        {
                                                            int.TryParse(parameter.StringValue, out sortOrder);
                                                        }
                                                    }

                                                    details.Add(new Detail(part, assyCategory, standard, profile, material, weight, sortOrder, fireResist));
                                                }
                                                else
                                                {
                                                    unknownDetails.Add(new Detail(part, assyCategory, "???", profile, material, weight, 999, fireResist));
                                                }
                                            }
                                        }
                                        else if (part is ContourPlate)
                                        {
                                            string temp = part.Profile.ProfileString.ToUpper();

                                            if (temp.StartsWith("—"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 19903-74", $"Лист {temp.Substring(1)}", material, weight, 4, fireResist));
                                            }
                                            else if ((temp.StartsWith("PL")) || (temp.StartsWith("BL")) || (temp.StartsWith("FL")))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 19903-74", $"Лист {temp.Substring(2)}", material, weight, 4, fireResist));
                                            }
                                            else if ((temp.StartsWith("BPL")) || (temp.StartsWith("FLT")) || (temp.StartsWith("FPL")) || (temp.StartsWith("PLT")))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 19903-74", $"Лист {temp.Substring(3)}", material, weight, 4, fireResist));
                                            }
                                            else if ((temp.StartsWith("PLATE")) || (temp.StartsWith("TANKO")))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 19903-74", $"Лист {temp.Substring(5)}", material, weight, 4, fireResist));
                                            }
                                            else if (temp.StartsWith("ПОЛОСА"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 19903-74", $"Лист {temp.Substring(6)}", material, weight, 4, fireResist));
                                            }
                                            else if (temp.StartsWith("ПВ"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 8706-78", $"Лист {temp.Substring(2)}", "C235", weight, 13, fireResist));
                                            }
                                            else if (temp.StartsWith("РИФ"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 8568-77", $"Лист {temp.Substring(3)}", "C235", weight, 14, fireResist));
                                            }
                                            else if (temp.StartsWith("ЧРИФ"))
                                            {
                                                details.Add(new Detail(part, assyCategory, "ГОСТ 8568-77", $"Лист {temp.Substring(4)}", "C235", weight, 15, fireResist));
                                            }
                                            else
                                            {
                                                unknownDetails.Add(new Detail(part, assyCategory, "???", $"{part.Profile.ProfileString}", material, weight, 999, fireResist));
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (!(obj is Grid))
                                {
                                    isNonAssemblyExist = true;
                                }
                            }
                        }
                    }

                    if (isNonAssemblyExist == true)
                    {
                        MessageBox.Show("Среди выбранных объектов есть объекты не являющиеся сборками.\r\nВыберите только сборки или не выбирайте ничего и запустите программу снова.",
                                        "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                        pleaseWait.Close();
                        pleaseWait.Dispose();
                        Operation.DisplayPrompt("Ошибка.");

                        return;
                    }

                    IEnumerable <StandardGroup> groups =
                        from d in details
                        orderby d.SortOrder
                        group d by d.StandardFull into g
                        select new StandardGroup()
                    {
                        Key       = g.Key,
                        materials = from d in g
                                    orderby d.MaterialFull
                                    group d by d.MaterialFull into g2
                                    select new MaterialGroup()
                        {
                            Key      = g2.Key,
                            profiles = from d in g2
                                       orderby d.Profile
                                       group d by d.Profile into g3
                                       select new ProfileGroup()
                            {
                                Key        = g3.Key,
                                categories = from d in g3
                                             orderby d.Category
                                             group d by d.Category into g4
                                             select new CategoryGroup()
                                {
                                    Key         = g4.Key,
                                    fireResists = from d in g4
                                                  group d by d.FireResist into g5
                                                  select g5
                                }
                            }
                        }
                    };

                    JObject json =
                        new JObject(
                            new JProperty("ID", 0),
                            new JProperty("Name", null),
                            new JProperty("Profiles", null),
                            new JProperty("Revision", 0),
                            new JProperty("AntiCor", false),
                            new JProperty("Cipher", ru_shifr),
                            new JProperty("BuildingObject1", ru_object_stroit_1),
                            new JProperty("BuildingObject2", ru_object_stroit_2),
                            new JProperty("BuildingObject3", ru_object_stroit_3),
                            new JProperty("BuildingName1", ru_naimen_stroit_1),
                            new JProperty("BuildingName2", ru_naimen_stroit_2),
                            new JProperty("BuildingName3", ru_naimen_stroit_3),
                            new JProperty("AttName6", ru_6),
                            new JProperty("AttName7", ru_7),
                            new JProperty("AttName8", ru_8),
                            new JProperty("AttName9", ru_9),
                            new JProperty("AttName10", ru_10),
                            new JProperty("AttName11", ru_11),
                            new JProperty("AttValue6", ru_6_fam),
                            new JProperty("AttValue7", ru_7_fam),
                            new JProperty("AttValue8", ru_8_fam),
                            new JProperty("AttValue9", ru_9_fam),
                            new JProperty("AttValue10", ru_10_fam),
                            new JProperty("AttValue11", ru_11_fam),
                            new JProperty("Stage", ru_stadiya),
                            new JProperty("Sheets", ru_listov_int),
                            new JProperty("OrganzitaionName1", ru_nazvanie_org_1),
                            new JProperty("OrganzitaionName2", ru_nazvanie_org_2),
                            new JProperty("OrganzitaionName3", ru_nazvanie_org_3),
                            new JProperty("Headers", new JArray(categories)),
                            new JProperty("Documents",
                                          new JArray(
                                              from p in groups
                                              select new JObject(
                                                  new JProperty("ID", 0),
                                                  new JProperty("Name", p.Key),
                                                  new JProperty("ProfilesTotal", new JArray()),
                                                  new JProperty("ProfilesCount", 0),
                                                  new JProperty("TotalWeight", 0),
                                                  new JProperty("IsSelected", false),
                                                  new JProperty("IsModified", false),
                                                  new JProperty("Materials",
                                                                new JArray(
                                                                    from q in p.materials
                                                                    select new JObject(
                                                                        new JProperty("ID", 0),
                                                                        new JProperty("Name", q.Key),
                                                                        new JProperty("TotalConstructionsWeight", new JArray()),
                                                                        new JProperty("TotalWeight", 0),
                                                                        new JProperty("IsSelected", false),
                                                                        new JProperty("IsModified", false),
                                                                        new JProperty("Profiles",
                                                                                      new JArray(
                                                                                          from r in q.profiles
                                                                                          select new JObject(
                                                                                              new JProperty("ID", 0),
                                                                                              new JProperty("Name", r.Key),
                                                                                              new JProperty("Tag", null),
                                                                                              new JProperty("ProfileItems", new JArray()),
                                                                                              new JProperty("Weight", 0),
                                                                                              new JProperty("IsModified", false),
                                                                                              new JProperty("ConstructionTypes",
                                                                                                            new JArray(
                                                                                                                new JObject(
                                                                                                                    new JProperty("Name", ""),
                                                                                                                    new JProperty("Constructions",
                                                                                                                                  new JArray(
                                                                                                                                      from s in r.categories
                                                                                                                                      select new JObject(
                                                                                                                                          new JProperty("ID", s.Key),
                                                                                                                                          new JProperty("Name", ""),
                                                                                                                                          new JProperty("Count", GetConstructionWeight(s)),
                                                                                                                                          new JProperty("Profiles", null),
                                                                                                                                          new JProperty("IsModified", false),
                                                                                                                                          new JProperty("FireResists",
                                                                                                                                                        new JArray(
                                                                                                                                                            from t in s.fireResists
                                                                                                                                                            select new JObject(
                                                                                                                                                                new JProperty("Name", t.Key),
                                                                                                                                                                new JProperty("Count", GetFireResistWeight(t))
                                                                                                                                                                )))))))))))))))))));

                    string jsonFilePath = $"{Environment.GetEnvironmentVariable("USERPROFILE")}\\TeklaMetalSpec.json";
                    using (StreamWriter writer = new StreamWriter(jsonFilePath, false, Encoding.UTF8))
                    {
                        writer.Write(json.ToString());
                    }
                }

                pleaseWait.Close();
                pleaseWait.Dispose();
                Operation.DisplayPrompt("Завершено.");
            }
            catch (Exception ex)
            {
                MessageBox.Show($"{ex.StackTrace}\r\n\r\n{ex.Message}");
            }
        }
示例#4
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)
                {
                    ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().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;
                    }
                }
            }
        }
示例#5
0
        // to work in Visual Studio uncomment next line:
        public static void Main()
        // to use this code as Tekla macro uncomment next line:
        //public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Settings

            // <profile list>.csv - file location and name
            string csvLocation = "J:/Tekla/SKA_Macro files/stock list.csv";

            // <profile list>.csv - delimeter
            string delimiterString = ";";

            // list of part names for FL-PL profile check
            string[] partNamesToCheckArray = { "Afstivning", "Vind-X-Plade", "Løsdele", "Plade", "Fladstål", "Flange", };

            // list of part names to include in name AND prefix swaping (should be Plade and Fladstal)
            string[] partNamesToSwapArray = { "Plade", "Fladstål" };

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // stock list.csv
            //
            // Instructions for preparation:
            // 1. you need original DS stock list,
            // 2. in excel delete all columns but 'Dimension', 'Reserveret' and 'Kvalitet'. This columns should be placed in A, B and C column positions,
            // 3. go through the rows and:
            //       - delete the rows with missing material,
            //       - repair the rows with corrupt material ('275' -> 'S275')
            //       - delete or repair rows with corrupt profile values (look for stuff like: '12x150', '100*5', '15'). Correct formatting is: 'width thickness'.
            // 4. save the file as 'stock list.csv' (default delimeter is semicolon. You can change the delimiter in 'delimiterString' variable)
            // 5. save the file in the location set with 'csvLocation' variable.
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Ideas for improvements
            // - add refresh selection button to message box 'Selected objects will be modified
            // - add 'working' icon to mouse
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // v1.2, 30.1.2016
            // - more elaborate errors: added error catching for FileNotFoundException and DirectoryNotFoundException,
            // - now works also with files, that are currently open (have to check if this is tru also for in multiuser environments),
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            // preparation of variables
            char delimeter = delimiterString[0];

            List <string> partNamesToCheck = new List <string>();

            partNamesToCheck.AddRange(partNamesToCheckArray);

            List <string> partNamesToSwap = new List <string>();

            partNamesToSwap.AddRange(partNamesToSwapArray);

            // Profile list - profiles with attributes (width, thickness, material)
            // if profile is reserved it does not go in this list
            List <List <string> > profileList = new List <List <string> >();

            profileList = csvReader(csvLocation, delimeter);

            // if clause to exit if csvReader didn't succeed
            if (profileList.Count == 0)
            {
                return;
            }

            Model Model = new Model();

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

            // select object types for selector
            System.Type[] Types = new System.Type[2];
            Types.SetValue(typeof(Beam), 0);
            Types.SetValue(typeof(ContourPlate), 1);

            // instantiate model object enumerator before if clauses
            Tekla.Structures.Model.ModelObjectEnumerator SelectedObjects = Model.GetModelObjectSelector().GetAllObjectsWithType(ModelObject.ModelObjectEnum.UNKNOWN);
            // =======================================================================================
            // dialog for object selection
            DialogResult dr   = new DialogResult();
            mainForm     form = new mainForm();

            dr = form.ShowDialog();

            if (dr == DialogResult.Yes)     // 'Yes' is used for all objects
            {
                SelectedObjects = Model.GetModelObjectSelector().GetAllObjectsWithType(Types);
            }
            else if (dr == DialogResult.No) // 'No' is used to get selected objects
            {
                SelectedObjects = new Tekla.Structures.Model.UI.ModelObjectSelector().GetSelectedObjects();
            }
            else
            {
                return;
            }
            // =======================================================================================

            // list of changed objects
            ArrayList partList = new ArrayList();

            while (SelectedObjects.MoveNext())
            {
                var  currentObject          = SelectedObjects.Current;
                var  nameOfObject           = "";
                var  profileOfObject        = "";
                var  prefixAssemblyOfObject = "";
                var  prefixPartOfObject     = "";
                bool isFlatProfile          = false;

                // get name of the object
                currentObject.GetReportProperty("NAME", ref nameOfObject);
                // strip the name of brackets
                nameOfObject = nameOfObject.Replace("(", "").Replace(")", "");

                // get the profile of the object
                currentObject.GetReportProperty("PROFILE", ref profileOfObject);

                // get the prefix of the object
                currentObject.GetReportProperty("ASSEMBLY_DEFAULT_PREFIX", ref prefixAssemblyOfObject);
                currentObject.GetReportProperty("PART_PREFIX", ref prefixPartOfObject);

                // check if profile is flat profile
                if (profileOfObject.StartsWith("FL") || profileOfObject.StartsWith("PL"))
                {
                    isFlatProfile = true;
                }

                // if name is contained in the list of parts to check and profile is a flat profile go in
                if (partNamesToCheck.Contains(nameOfObject) && isFlatProfile)
                {
                    // variables
                    string objectMaterial = "";
                    double objectWidth    = -1.0;
                    double objectHeight   = -1.0;
                    double objectLength   = -1.0;

                    currentObject.GetReportProperty("MATERIAL", ref objectMaterial);
                    currentObject.GetReportProperty("WIDTH", ref objectWidth);
                    currentObject.GetReportProperty("HEIGHT", ref objectHeight);
                    currentObject.GetReportProperty("LENGTH", ref objectLength);

                    // check if profile is in stock list
                    bool inStock = false;
                    inStock = FLCheck(profileList, objectMaterial, objectWidth, objectHeight, objectLength);

                    // check how profile should be changed
                    bool changeToFL = false;
                    bool changeToPL = false;
                    if (inStock && profileOfObject.StartsWith("PL"))
                    {
                        changeToFL = true;
                    }
                    if (!inStock && profileOfObject.StartsWith("FL"))
                    {
                        changeToPL = true;
                    }


                    // check how name should be changed
                    bool changeToFladstal = false;
                    bool changeToPlade    = false;

                    // this is used to change prefixes
                    bool changeToF = false;
                    bool changeToC = false;
                    if (partNamesToSwap.Contains(nameOfObject))
                    {
                        if (inStock && nameOfObject.Replace("(", "").Replace(")", "") == "Plade")
                        {
                            changeToFladstal = true;
                        }
                        if (!inStock && nameOfObject.Replace("(", "").Replace(")", "") == "Fladstål")
                        {
                            changeToPlade = true;
                        }
                        if (inStock && (prefixPartOfObject != "F" || prefixAssemblyOfObject != "f"))
                        {
                            changeToF = true;
                        }
                        if (!inStock && (prefixPartOfObject != "C" || prefixAssemblyOfObject != "c"))
                        {
                            changeToC = true;
                        }
                    }

                    // Functionality for changing the atributes is doubled for beams and plates.
                    // Could this be done in one clause?
                    Beam beam = SelectedObjects.Current as Beam;
                    if (beam != null)
                    {
                        if (changeToFL)
                        {
                            beam.Profile.ProfileString = "FL" + beam.Profile.ProfileString.ToString().Remove(0, 2);
                        }
                        if (changeToPL)
                        {
                            beam.Profile.ProfileString = "PL" + beam.Profile.ProfileString.ToString().Remove(0, 2);
                        }
                        if (changeToFladstal)
                        {
                            beam.Name = "Fladstål";
                        }
                        if (changeToF)
                        {
                            beam.AssemblyNumber.Prefix = "f";
                            beam.PartNumber.Prefix     = "F";
                        }
                        if (changeToPlade)
                        {
                            beam.Name = "Plade";
                        }
                        if (changeToC)
                        {
                            beam.AssemblyNumber.Prefix = "c";
                            beam.PartNumber.Prefix     = "C";
                        }

                        // add parts to the list of modified parts
                        if (changeToFL || changeToPL || changeToFladstal || changeToPlade || changeToC || changeToF)
                        {
                            partList.Add(beam);
                        }
                    }

                    ContourPlate plate = SelectedObjects.Current as ContourPlate;
                    if (plate != null)
                    {
                        if (changeToFL)
                        {
                            plate.Profile.ProfileString = "FL" + plate.Profile.ProfileString.ToString().Remove(0, 2);
                        }
                        if (changeToPL)
                        {
                            plate.Profile.ProfileString = "PL" + plate.Profile.ProfileString.ToString().Remove(0, 2);
                        }
                        if (changeToFladstal)
                        {
                            plate.Name = "Fladstål";
                        }
                        if (changeToF)
                        {
                            plate.AssemblyNumber.Prefix = "f";
                            plate.PartNumber.Prefix     = "F";
                        }
                        if (changeToPlade)
                        {
                            plate.Name = "Plade";
                        }
                        if (changeToC)
                        {
                            plate.AssemblyNumber.Prefix = "c";
                            plate.PartNumber.Prefix     = "C";
                        }

                        // add parts to the list of modified parts
                        if (changeToFL || changeToPL || changeToFladstal || changeToPlade)
                        {
                            partList.Add(plate);
                        }
                    }
                }
            }

            // select objects that are in list for modification
            Tekla.Structures.Model.UI.ModelObjectSelector mos = new Tekla.Structures.Model.UI.ModelObjectSelector();
            mos.Select(partList);

            // modified object count
            var modCount = 0;
            var errCount = 0;

            // exit if there is no parts to modify
            if (partList.Count != 0)
            {
                // confirm modification
                DialogResult dialogResult = MessageBox.Show(new Form {
                    TopMost = true
                }, "Selected objects will be modified.", Variables.caption, MessageBoxButtons.OKCancel);
                if (dialogResult == DialogResult.OK)
                {
                    // if OK, then go through list and modify each part
                    Tekla.Structures.Model.ModelObjectEnumerator selObjEnum = Model.GetModelObjectSelector().GetAllObjectsWithType(ModelObject.ModelObjectEnum.CONTOURPLATE);
                    selObjEnum = new Tekla.Structures.Model.UI.ModelObjectSelector().GetSelectedObjects();

                    // modify only objects that are in part list for modification and in current selection
                    while (selObjEnum.MoveNext())
                    {
                        foreach (var part in partList)
                        {
                            Beam beam = part as Beam;
                            if (beam != null && selObjEnum.Current.Identifier.ToString() == beam.Identifier.ToString())
                            {
                                if (!beam.Modify())
                                {
                                    errCount++;
                                }
                                else
                                {
                                    modCount++;
                                }
                            }

                            ContourPlate plate = part as ContourPlate;
                            if (plate != null && selObjEnum.Current.Identifier.ToString() == plate.Identifier.ToString())
                            {
                                if (!plate.Modify())
                                {
                                    errCount++;
                                }
                                else
                                {
                                    modCount++;
                                }
                            }
                        }
                    }
                    if (errCount != 0)
                    {
                        MessageBox.Show("Warning\n# of objects which didn't modify:\n" + errCount + "\n\n# of changed objects:\n" + modCount, Variables.caption);
                    }
                    else
                    {
                        MessageBox.Show("# of changed objects:\n" + modCount, Variables.caption);
                    }
                }
                else if (dialogResult == DialogResult.Cancel)
                {
                    return;
                }
            }
            else
            {
                MessageBox.Show("No parts to modifiy found.", Variables.caption);
            }
        }
示例#6
0
        public void GetProperties()
        {
            ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();

            if (modelObjectEnum.GetSize() == 1)
            {
                while (modelObjectEnum.MoveNext())
                {
                    if (modelObjectEnum.Current is Tekla.Structures.Model.BoltGroup)
                    {
                        BoltGroup boltGroup = (BoltGroup)modelObjectEnum.Current;
                        boltSize     = boltGroup.BoltSize.ToString();
                        boltStandard = boltGroup.BoltStandard.ToString();
                        if (boltGroup.BoltType == BoltGroup.BoltTypeEnum.BOLT_TYPE_SITE)
                        {
                            boltType = BoltTypeEnum.Site;
                        }
                        else if (boltGroup.BoltType == BoltGroup.BoltTypeEnum.BOLT_TYPE_WORKSHOP)
                        {
                            boltType = BoltTypeEnum.Workshop;
                        }

                        if (boltGroup.ThreadInMaterial == BoltGroup.BoltThreadInMaterialEnum.THREAD_IN_MATERIAL_YES)
                        {
                            threadMaterial = ThreadMaterialEnum.Yes;
                        }
                        else if (boltGroup.ThreadInMaterial == BoltGroup.BoltThreadInMaterialEnum.THREAD_IN_MATERIAL_NO)
                        {
                            threadMaterial = ThreadMaterialEnum.No;
                        }

                        cutLength      = boltGroup.CutLength.ToString();
                        extraLength    = boltGroup.ExtraLength.ToString();
                        boltGroupShape = boltGroup.GetType().Name;

                        if (boltGroup is BoltArray)
                        {
                            BoltArray boltArray = (BoltArray)boltGroup;

                            string boltPositionX = "";
                            for (int i = 0; i < boltArray.GetBoltDistXCount(); i++)
                            {
                                boltPositionX = boltPositionX + boltArray.GetBoltDistX(i).ToString() + " ";
                            }
                            boltDistX = boltPositionX.Trim();

                            string boltPositionY = "";
                            for (int i = 0; i < boltArray.GetBoltDistYCount(); i++)
                            {
                                boltPositionY = boltPositionY + boltArray.GetBoltDistY(i).ToString() + " ";
                            }
                            boltDistY = boltPositionY.Trim();
                        }
                        else if (boltGroup is BoltXYList)
                        {
                            BoltXYList boltXYList = (BoltXYList)boltGroup;

                            string boltPositionX = "";
                            for (int i = 0; i < boltXYList.GetBoltDistXCount(); i++)
                            {
                                boltPositionX = boltPositionX + boltXYList.GetBoltDistX(i).ToString() + " ";
                            }
                            boltDistX = boltPositionX.Trim();

                            string boltPositionY = "";
                            for (int i = 0; i < boltXYList.GetBoltDistYCount(); i++)
                            {
                                boltPositionY = boltPositionY + boltXYList.GetBoltDistY(i).ToString() + " ";
                            }
                            boltDistY = boltPositionY.Trim();
                        }
                        else if (boltGroup is BoltCircle)
                        {
                            BoltCircle boltCircle = (BoltCircle)boltGroup;
                            boltDistX = boltCircle.NumberOfBolts.ToString();
                            boltDistY = boltCircle.Diameter.ToString();
                        }

                        tolerance = boltGroup.Tolerance.ToString();

                        if (boltGroup.HoleType == BoltGroup.BoltHoleTypeEnum.HOLE_TYPE_SLOTTED)
                        {
                            holeType = HoleTypeEnum.Slotted;
                        }
                        else if (boltGroup.HoleType == BoltGroup.BoltHoleTypeEnum.HOLE_TYPE_OVERSIZED)
                        {
                            holeType = HoleTypeEnum.Oversized;
                        }

                        slottedHoleX = boltGroup.SlottedHoleX.ToString();
                        slottedHoleY = boltGroup.SlottedHoleY.ToString();

                        if (boltGroup.RotateSlots == BoltGroup.BoltRotateSlotsEnum.ROTATE_SLOTS_ODD)
                        {
                            rotateSlots = RotateSlotEnum.Odd;
                        }
                        else if (boltGroup.RotateSlots == BoltGroup.BoltRotateSlotsEnum.ROTATE_SLOTS_EVEN)
                        {
                            rotateSlots = RotateSlotEnum.Even;
                        }
                        else if (boltGroup.RotateSlots == BoltGroup.BoltRotateSlotsEnum.ROTATE_SLOTS_PARALLEL)
                        {
                            rotateSlots = RotateSlotEnum.Parallel;
                        }

                        if (boltGroup.Position.Plane == Position.PlaneEnum.LEFT)
                        {
                            positionOnPlane = PositionPlaneEnum.Left;
                        }
                        else if (boltGroup.Position.Plane == Position.PlaneEnum.MIDDLE)
                        {
                            positionOnPlane = PositionPlaneEnum.Middle;
                        }
                        else if (boltGroup.Position.Plane == Position.PlaneEnum.RIGHT)
                        {
                            positionOnPlane = PositionPlaneEnum.Right;
                        }
                        positionOnPlaneOffset = boltGroup.Position.PlaneOffset.ToString("F02");

                        if (boltGroup.Position.Rotation == Position.RotationEnum.FRONT)
                        {
                            positionRotation = PositionRotationEnum.Front;
                        }
                        else if (boltGroup.Position.Rotation == Position.RotationEnum.TOP)
                        {
                            positionRotation = PositionRotationEnum.Top;
                        }
                        else if (boltGroup.Position.Rotation == Position.RotationEnum.BACK)
                        {
                            positionRotation = PositionRotationEnum.Back;
                        }
                        else if (boltGroup.Position.Rotation == Position.RotationEnum.BELOW)
                        {
                            positionRotation = PositionRotationEnum.Below;
                        }
                        positionRotationOffset = boltGroup.Position.RotationOffset.ToString("F02");

                        if (boltGroup.Position.Depth == Position.DepthEnum.BEHIND)
                        {
                            positionAtDepth = PositionDepthEnum.Behind;
                        }
                        else if (boltGroup.Position.Depth == Position.DepthEnum.FRONT)
                        {
                            positionAtDepth = PositionDepthEnum.Front;
                        }
                        else if (boltGroup.Position.Depth == Position.DepthEnum.MIDDLE)
                        {
                            positionAtDepth = PositionDepthEnum.Middle;
                        }
                        positionAtDepthOffset = boltGroup.Position.DepthOffset.ToString("F02");
                        offsetFromStartX      = boltGroup.StartPointOffset.Dx.ToString("F02");
                        offsetFromStartY      = boltGroup.StartPointOffset.Dy.ToString("F02");
                        offsetFromStartZ      = boltGroup.StartPointOffset.Dz.ToString("F02");
                        offsetFromEndX        = boltGroup.EndPointOffset.Dx.ToString("F02");
                        offsetFromEndY        = boltGroup.EndPointOffset.Dy.ToString("F02");
                        offsetFromEndZ        = boltGroup.EndPointOffset.Dz.ToString("F02");

                        if (boltGroup.Hole1)
                        {
                            hole1 = Bool.True;
                        }
                        else
                        {
                            hole1 = Bool.False;
                        }
                        if (boltGroup.Hole2)
                        {
                            hole2 = Bool.True;
                        }
                        else
                        {
                            hole2 = Bool.False;
                        }
                        if (boltGroup.Hole3)
                        {
                            hole3 = Bool.True;
                        }
                        else
                        {
                            hole3 = Bool.False;
                        }
                        if (boltGroup.Hole4)
                        {
                            hole4 = Bool.True;
                        }
                        else
                        {
                            hole4 = Bool.False;
                        }
                        if (boltGroup.Hole5)
                        {
                            hole5 = Bool.True;
                        }
                        else
                        {
                            hole5 = Bool.False;
                        }

                        if (boltGroup.Washer1)
                        {
                            washer1 = Bool.True;
                        }
                        else
                        {
                            washer1 = Bool.False;
                        }
                        if (boltGroup.Washer2)
                        {
                            washer2 = Bool.True;
                        }
                        else
                        {
                            washer2 = Bool.False;
                        }
                        if (boltGroup.Washer3)
                        {
                            washer3 = Bool.True;
                        }
                        else
                        {
                            washer3 = Bool.False;
                        }

                        if (boltGroup.Nut1)
                        {
                            nut1 = Bool.True;
                        }
                        else
                        {
                            nut1 = Bool.False;
                        }
                        if (boltGroup.Nut2)
                        {
                            nut2 = Bool.True;
                        }
                        else
                        {
                            nut2 = Bool.False;
                        }

                        if (boltGroup.Bolt)
                        {
                            boltShaft = Bool.True;
                        }
                        else
                        {
                            boltShaft = Bool.False;
                        }
                    }
                }
            }
            if (modelObjectEnum.GetSize() > 1)
            {
                boltSize               = "";
                boltStandard           = "";
                boltType               = new BoltTypeEnum();
                threadMaterial         = new ThreadMaterialEnum();
                cutLength              = "";
                extraLength            = "";
                boltGroupShape         = "";
                boltDistX              = "";
                boltDistY              = "";
                tolerance              = "";
                slottedHoleX           = "";
                slottedHoleY           = "";
                rotateSlots            = new RotateSlotEnum();
                holeType               = new HoleTypeEnum();
                positionOnPlane        = new PositionPlaneEnum();
                positionOnPlaneOffset  = "";
                positionRotation       = new PositionRotationEnum();
                positionRotationOffset = "";
                positionAtDepth        = new PositionDepthEnum();
                positionAtDepthOffset  = "";
                offsetFromStartX       = "";
                offsetFromStartY       = "";
                offsetFromStartZ       = "";
                offsetFromEndX         = "";
                offsetFromEndY         = "";
                offsetFromEndZ         = "";
                hole1     = new Bool();
                hole2     = new Bool();
                hole3     = new Bool();
                hole4     = new Bool();
                hole5     = new Bool();
                boltShaft = new Bool();
                washer1   = new Bool();
                washer2   = new Bool();
                washer3   = new Bool();
                nut1      = new Bool();
                nut2      = new Bool();
            }
        }
 public static List <Beam> GetAllBeams(this Model model)
 {
     return(model.GetModelObjectSelector()
            .GetAllObjectsWithType(ModelObject.ModelObjectEnum.BEAM)
            .ToAList <Beam>());
 }
        public MainWindow()
        {
            InitializeComponent();

            Model model = new Model();

            if (model.GetConnectionStatus() == false)
            {
                MessageBox.Show("Failed");
                this.Close();

                return;
            }

            else
            {
                ModelObjectEnumerator.AutoFetch = true;

                var allObjects = model.GetModelObjectSelector().GetAllObjects();

                IList <ModelObject> modelObjects = Methods.ToList(allObjects);

                foreach (ModelObject obj in modelObjects)
                {
                    if (obj.GetType().ToString() == "Tekla.Structures.Model.Assembly")
                    {
                        Hashtable nameValue = new Hashtable();

                        ArrayList nameObject = new ArrayList {
                            "MAINPART.NAME"
                        };

                        obj.GetStringReportProperties(nameObject, ref nameValue);

                        string assemblyName = nameValue[nameObject[0]].ToString();

                        string assemblyCategory = assemblyName.ToLower().Split('_')[0];

                        if (assemblyCategory == "slab")
                        {
                            Hashtable values = new Hashtable();
                            obj.GetAllReportProperties(SlabTemplate.stringProperties, SlabTemplate.doubleProperties, SlabTemplate.intProperties, ref values);

                            string name = values[SlabTemplate.stringProperties[0]].ToString();

                            string material;
                            try
                            {
                                material = values[SlabTemplate.stringProperties[1]].ToString();
                            }
                            catch
                            {
                                material = "Undefined";
                            }

                            double volumeGross;
                            try
                            {
                                volumeGross = Convert.ToDouble(values[SlabTemplate.doubleProperties[0]].ToString());
                            }
                            catch
                            {
                                volumeGross = 0;
                            }

                            double volumeNet;
                            try
                            {
                                volumeNet = Convert.ToDouble(values[SlabTemplate.doubleProperties[1]].ToString());
                            }
                            catch
                            {
                                volumeNet = 0;
                            }

                            double area;
                            try
                            {
                                area = Convert.ToDouble(values[SlabTemplate.doubleProperties[2]].ToString());
                            }
                            catch
                            {
                                area = 0;
                            }

                            double areaTop;
                            try
                            {
                                areaTop = Convert.ToDouble(values[SlabTemplate.doubleProperties[3]].ToString());
                            }
                            catch
                            {
                                areaTop = 0;
                            }

                            double areaBott;
                            try
                            {
                                areaBott = Convert.ToDouble(values[SlabTemplate.doubleProperties[4]].ToString());
                            }
                            catch
                            {
                                areaBott = 0;
                            }

                            double areaEdge = area - (areaTop + areaBott);

                            double perimeter = 0;
                            try
                            {
                                perimeter = Convert.ToDouble(values[SlabTemplate.doubleProperties[5]].ToString());
                            }
                            catch
                            {
                                MessageBox.Show(name);
                            }

                            if (slabData.ContainsKey(name))
                            {
                                slabData[name].volumeGross += Math.Round((volumeGross * 0.000000001307950619), 2);
                                slabData[name].volumeNet   += Math.Round((volumeNet * 0.000000001307950619), 2);
                                slabData[name].areaTop     += Math.Round((areaTop * 0.0000107639), 2);
                                slabData[name].areaBott    += Math.Round((areaBott * 0.0000107639), 2);
                                slabData[name].areaEdge    += Math.Round((areaEdge * 0.0000107639), 2);;
                                slabData[name].perimeter   += Math.Round((perimeter * 0.00328084), 2);
                                slabData[name].quantity    += 1;
                            }

                            else
                            {
                                Slab slab = new Slab(name, material, volumeGross, volumeNet, areaEdge, areaTop, areaBott, perimeter, 1);

                                slabData.Add(name, slab);
                            }
                        }

                        else if (assemblyCategory == "wall" || assemblyCategory == "curb")
                        {
                            Hashtable values = new Hashtable();
                            obj.GetAllReportProperties(WallTemplate.stringProperties, WallTemplate.doubleProperties, WallTemplate.intProperties, ref values);

                            string name = values[WallTemplate.stringProperties[0]].ToString();

                            string material;
                            try
                            {
                                material = values[WallTemplate.stringProperties[1]].ToString();
                            }
                            catch
                            {
                                material = "Undefined";
                            }

                            double volumeGross;
                            try
                            {
                                volumeGross = Convert.ToDouble(values[WallTemplate.doubleProperties[0]].ToString());
                            }
                            catch
                            {
                                volumeGross = 0;
                            }

                            double volumeNet;
                            try
                            {
                                volumeNet = Convert.ToDouble(values[WallTemplate.doubleProperties[1]].ToString());
                            }
                            catch
                            {
                                volumeNet = 0;
                            }

                            double length;
                            try
                            {
                                length = Convert.ToDouble(values[WallTemplate.doubleProperties[2]].ToString());
                            }
                            catch
                            {
                                length = 0;
                            }

                            double areaTop;
                            try
                            {
                                areaTop = Convert.ToDouble(values[WallTemplate.doubleProperties[3]].ToString());
                            }
                            catch
                            {
                                areaTop = 0;
                            }

                            double areaEnd1;
                            try
                            {
                                areaEnd1 = Convert.ToDouble(values[WallTemplate.doubleProperties[4]].ToString());
                            }
                            catch
                            {
                                areaEnd1 = 0;
                            }

                            double areaEnd2;
                            try
                            {
                                areaEnd2 = Convert.ToDouble(values[WallTemplate.doubleProperties[5]].ToString());
                            }
                            catch
                            {
                                areaEnd2 = 0;
                            }

                            double areaSide1;
                            try
                            {
                                areaSide1 = Convert.ToDouble(values[WallTemplate.doubleProperties[6]].ToString());
                            }
                            catch
                            {
                                areaSide1 = 0;
                            }

                            double areaSide2;
                            try
                            {
                                areaSide2 = Convert.ToDouble(values[WallTemplate.doubleProperties[7]].ToString());
                            }
                            catch
                            {
                                areaSide2 = 0;
                            }

                            double areaSideGross;
                            try
                            {
                                areaSideGross = Convert.ToDouble(values[WallTemplate.doubleProperties[8]].ToString());
                            }
                            catch
                            {
                                areaSideGross = 0;
                            }

                            double areaSideNet;
                            try
                            {
                                areaSideNet = Convert.ToDouble(values[WallTemplate.doubleProperties[9]].ToString());
                            }
                            catch
                            {
                                areaSideNet = 0;
                            }

                            double areaOpening = areaSideGross - areaSideNet;

                            if (wallData.ContainsKey(name))
                            {
                                wallData[name].volumeGross   += Math.Round((volumeGross * 0.000000001307950619), 2);
                                wallData[name].volumeNet     += Math.Round((volumeNet * 0.000000001307950619), 2);
                                wallData[name].length        += Math.Round((length * 0.00328084), 2);
                                wallData[name].areaTop       += Math.Round((areaTop * 0.0000107639), 2);
                                wallData[name].areaEnd1      += Math.Round((areaEnd1 * 0.0000107639), 2);
                                wallData[name].areaEnd2      += Math.Round((areaEnd2 * 0.0000107639), 2);
                                wallData[name].areaSide1     += Math.Round((areaSide1 * 0.0000107639), 2);
                                wallData[name].areaSide2     += Math.Round((areaSide2 * 0.0000107639), 2);
                                wallData[name].areaSideGross += Math.Round((areaSideGross * 0.0000107639), 2);
                                wallData[name].areaOpening   += Math.Round((areaOpening * 0.0000107639), 2);
                                wallData[name].quantity      += 1;
                            }

                            else
                            {
                                Wall wall = new Wall(name, material, volumeGross, volumeNet, length, areaTop, areaEnd1, areaEnd2, areaSide1,
                                                     areaSide2, areaSideGross, areaOpening, 1);

                                wallData.Add(name, wall);
                            }
                        }

                        else if (assemblyCategory == "column")
                        {
                            Hashtable values = new Hashtable();
                            obj.GetAllReportProperties(ColumnTemplate.stringProperties, ColumnTemplate.doubleProperties, ColumnTemplate.intProperties, ref values);

                            string name = values[ColumnTemplate.stringProperties[0]].ToString();

                            string material;
                            try
                            {
                                material = values[ColumnTemplate.stringProperties[1]].ToString();
                            }
                            catch
                            {
                                material = "Undefined";
                            }

                            double volumeGross;
                            try
                            {
                                volumeGross = Convert.ToDouble(values[ColumnTemplate.doubleProperties[0]].ToString());
                            }
                            catch
                            {
                                volumeGross = 0;
                            }

                            double height;
                            try
                            {
                                height = Convert.ToDouble(values[ColumnTemplate.doubleProperties[1]].ToString());
                            }
                            catch
                            {
                                height = 0;
                            }

                            double area;
                            try
                            {
                                area = Convert.ToDouble(values[ColumnTemplate.doubleProperties[2]].ToString());
                            }
                            catch
                            {
                                area = 0;
                            }

                            double areaTop;
                            try
                            {
                                areaTop = Convert.ToDouble(values[ColumnTemplate.doubleProperties[3]].ToString());
                            }
                            catch
                            {
                                areaTop = 0;
                            }

                            double areaBott;
                            try
                            {
                                areaBott = Convert.ToDouble(values[ColumnTemplate.doubleProperties[4]].ToString());
                            }
                            catch
                            {
                                areaBott = 0;
                            }

                            double areaSide = area - (areaBott + areaTop);

                            if (columnData.ContainsKey(name))
                            {
                                columnData[name].volumeGross += Math.Round((volumeGross * 0.000000001307950619), 2);
                                columnData[name].height      += Math.Round((height * 0.00328084), 2);
                                columnData[name].areaSide    += Math.Round((areaSide * 0.0000107639), 2);
                                columnData[name].quantity    += 1;
                            }

                            else
                            {
                                Column column = new Column(name, material, volumeGross, height, areaSide, 1);

                                columnData.Add(name, column);
                            }
                        }

                        else if (assemblyCategory == "beam")
                        {
                            Hashtable values = new Hashtable();
                            obj.GetAllReportProperties(BeamTemplate.stringProperties, BeamTemplate.doubleProperties, BeamTemplate.intProperties, ref values);

                            string name = values[BeamTemplate.stringProperties[0]].ToString();

                            string material;
                            try
                            {
                                material = values[BeamTemplate.stringProperties[1]].ToString();
                            }
                            catch
                            {
                                material = "Undefined";
                            }

                            double volumeGross;
                            try
                            {
                                volumeGross = Convert.ToDouble(values[BeamTemplate.doubleProperties[0]].ToString());
                            }
                            catch
                            {
                                volumeGross = 0;
                            }

                            double length;
                            try
                            {
                                length = Convert.ToDouble(values[BeamTemplate.doubleProperties[1]].ToString());
                            }
                            catch
                            {
                                length = 0;
                            }

                            double width;
                            try
                            {
                                width = Convert.ToDouble(values[BeamTemplate.doubleProperties[2]].ToString());
                            }
                            catch
                            {
                                width = 0;
                            }

                            double areaBott;
                            try
                            {
                                areaBott = Convert.ToDouble(values[BeamTemplate.doubleProperties[3]].ToString());
                            }
                            catch
                            {
                                areaBott = 0;
                            }

                            // Converted to SQR-FOOT from the start
                            double areaSide = Math.Round((length * 0.00328084), 2) * Math.Round((width * 0.00328084), 2) * 2;

                            if (beamData.ContainsKey(name))
                            {
                                beamData[name].volumeGross += Math.Round((volumeGross * 0.000000001307950619), 2);
                                beamData[name].length      += Math.Round((length * 0.00328084), 2);
                                beamData[name].areaBott    += Math.Round((areaBott * 0.0000107639), 2);
                                beamData[name].areaSide    += areaSide;
                                beamData[name].quantity    += 1;
                            }

                            else
                            {
                                Beam beam = new Beam(name, material, volumeGross, length, areaBott, areaSide, 1);

                                beamData.Add(name, beam);
                            }
                        }

                        else if (assemblyCategory == "footing")
                        {
                            Hashtable values = new Hashtable();
                            obj.GetAllReportProperties(FootingTemplate.stringProperties, FootingTemplate.doubleProperties, FootingTemplate.intProperties, ref values);

                            string name = values[FootingTemplate.stringProperties[0]].ToString();

                            string material;
                            try
                            {
                                material = values[FootingTemplate.stringProperties[1]].ToString();
                            }
                            catch
                            {
                                material = "Undefined";
                            }

                            double volumeGross;
                            try
                            {
                                volumeGross = Convert.ToDouble(values[FootingTemplate.doubleProperties[0]].ToString());
                            }
                            catch
                            {
                                volumeGross = 0;
                            }

                            double area;
                            try
                            {
                                area = Convert.ToDouble(values[FootingTemplate.doubleProperties[1]].ToString());
                            }
                            catch
                            {
                                area = 0;
                            }

                            double areaTop;
                            try
                            {
                                areaTop = Convert.ToDouble(values[FootingTemplate.doubleProperties[2]].ToString());
                            }
                            catch
                            {
                                areaTop = 0;
                            }

                            double areaBott;
                            try
                            {
                                areaBott = Convert.ToDouble(values[FootingTemplate.doubleProperties[3]].ToString());
                            }
                            catch
                            {
                                areaBott = 0;
                            }

                            double areaEdge = area - (areaTop + areaBott);

                            if (footingData.ContainsKey(name))
                            {
                                footingData[name].volumeGross += Math.Round((volumeGross * 0.000000001307950619), 2);
                                footingData[name].areaTop     += Math.Round((areaTop * 0.0000107639), 2);
                                footingData[name].areaBott    += Math.Round((areaBott * 0.0000107639), 2);
                                footingData[name].areaEdge    += Math.Round((areaEdge * 0.0000107639), 2);;
                                footingData[name].quantity    += 1;
                            }

                            else
                            {
                                Footing footing = new Footing(name, material, volumeGross, areaEdge, areaTop, areaBott, 1);

                                footingData.Add(name, footing);
                            }
                        }

                        else if (assemblyCategory == "continuous")
                        {
                            Hashtable values = new Hashtable();
                            obj.GetAllReportProperties(ContinuousFootingTemplate.stringProperties, ContinuousFootingTemplate.doubleProperties,
                                                       ContinuousFootingTemplate.intProperties, ref values);

                            string name = values[ContinuousFootingTemplate.stringProperties[0]].ToString();

                            string material;
                            try
                            {
                                material = values[ContinuousFootingTemplate.stringProperties[1]].ToString();
                            }
                            catch
                            {
                                material = "Undefined";
                            }

                            double volumeGross;
                            try
                            {
                                volumeGross = Convert.ToDouble(values[ContinuousFootingTemplate.doubleProperties[0]].ToString());
                            }
                            catch
                            {
                                volumeGross = 0;
                            }

                            double length;
                            try
                            {
                                length = Convert.ToDouble(values[ContinuousFootingTemplate.doubleProperties[1]].ToString());
                            }
                            catch
                            {
                                length = 0;
                            }

                            double areaTop;
                            try
                            {
                                areaTop = Convert.ToDouble(values[ContinuousFootingTemplate.doubleProperties[2]].ToString());
                            }
                            catch
                            {
                                areaTop = 0;
                            }

                            double areaEnd1;
                            try
                            {
                                areaEnd1 = Convert.ToDouble(values[ContinuousFootingTemplate.doubleProperties[3]].ToString());
                            }
                            catch
                            {
                                areaEnd1 = 0;
                            }

                            double areaEnd2;
                            try
                            {
                                areaEnd2 = Convert.ToDouble(values[ContinuousFootingTemplate.doubleProperties[4]].ToString());
                            }
                            catch
                            {
                                areaEnd2 = 0;
                            }

                            double areaSide1;
                            try
                            {
                                areaSide1 = Convert.ToDouble(values[ContinuousFootingTemplate.doubleProperties[5]].ToString());
                            }
                            catch
                            {
                                areaSide1 = 0;
                            }

                            double areaSide2;
                            try
                            {
                                areaSide2 = Convert.ToDouble(values[ContinuousFootingTemplate.doubleProperties[6]].ToString());
                            }
                            catch
                            {
                                areaSide2 = 0;
                            }

                            if (continuousFootingData.ContainsKey(name))
                            {
                                continuousFootingData[name].volumeGross += Math.Round((volumeGross * 0.000000001307950619), 2);
                                continuousFootingData[name].length      += Math.Round((length * 0.00328084), 2);
                                continuousFootingData[name].areaTop     += Math.Round((areaTop * 0.0000107639), 2);
                                continuousFootingData[name].areaEnd1    += Math.Round((areaEnd1 * 0.0000107639), 2);
                                continuousFootingData[name].areaEnd2    += Math.Round((areaEnd2 * 0.0000107639), 2);
                                continuousFootingData[name].areaSide1   += Math.Round((areaSide1 * 0.0000107639), 2);
                                continuousFootingData[name].areaSide2   += Math.Round((areaSide2 * 0.0000107639), 2);
                                continuousFootingData[name].quantity    += 1;
                            }

                            else
                            {
                                ContinuousFooting continuousFooting = new ContinuousFooting(name, material, volumeGross, length, areaTop, areaEnd1, areaEnd2, areaSide1, areaSide2, 1);

                                continuousFootingData.Add(name, continuousFooting);
                            }
                        }

                        else if (assemblyCategory == "styrofoam")
                        {
                            Hashtable values = new Hashtable();
                            obj.GetAllReportProperties(StyrofoamTemplate.stringProperties, StyrofoamTemplate.doubleProperties, StyrofoamTemplate.intProperties, ref values);

                            string name = values[StyrofoamTemplate.stringProperties[0]].ToString();

                            string material = "Styrofoam";

                            double volumeGross;
                            try
                            {
                                volumeGross = Convert.ToDouble(values[StyrofoamTemplate.doubleProperties[0]].ToString());
                            }
                            catch
                            {
                                volumeGross = 0;
                            }

                            if (styrofoamData.ContainsKey(name))
                            {
                                styrofoamData[name].volumeGross += Math.Round((volumeGross * 0.000000001307950619), 2);
                                styrofoamData[name].quantity    += 1;
                            }

                            else
                            {
                                Styrofoam styrofoam = new Styrofoam(name, material, volumeGross, 1);
                                styrofoamData.Add(name, styrofoam);
                            }
                        }
                    }
                }

                // Export Model Data To Excel
                try
                {
                    Methods.exportToExcel(slabData, beamData, columnData, footingData, wallData, continuousFootingData, styrofoamData);
                }
                catch (Exception err)
                {
                    this.label.Content = "FAILED!";
                }
            }
        }
示例#9
0
        // to work in Visual Studio uncomment next line:
        public static void Main()
        // to use this code as Tekla macro uncomment next line:
        //public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Settings

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            Model Model = new Model();

            // select object types for selector
            System.Type[] Types = new System.Type[2];
            Types.SetValue(typeof(Beam), 0);
            Types.SetValue(typeof(ContourPlate), 1);

            // instantiate model object enumerator before if clauses
            Tekla.Structures.Model.ModelObjectEnumerator SelectedObjects = Model.GetModelObjectSelector().GetAllObjectsWithType(ModelObject.ModelObjectEnum.UNKNOWN);
            // =======================================================================================
            // dialog for object selection
            DialogResult dr   = new DialogResult();
            mainForm     form = new mainForm("Set user phase for:", "All", "Selected");

            dr = form.ShowDialog();
            if (dr == DialogResult.Yes)     // 'Yes' is used for all objects
            {
                SelectedObjects = Model.GetModelObjectSelector().GetAllObjectsWithType(Types);
            }
            else if (dr == DialogResult.No) // 'No' is used to get selected objects
            {
                SelectedObjects = new Tekla.Structures.Model.UI.ModelObjectSelector().GetSelectedObjects();
            }
            else
            {
                return;
            }
            // =======================================================================================

            // list of changed objects
            ArrayList partList = new ArrayList();

            while (SelectedObjects.MoveNext())
            {
                var currentObject       = SelectedObjects.Current;
                var currObjPhaseComment = "";
                var currObjUserPhase    = "";

                Phase currObjPhase = new Phase();

                currentObject.GetPhase(out currObjPhase);
                // phase comment gets copied to user phase
                currObjPhaseComment = currObjPhase.PhaseComment;
                currentObject.GetUserProperty("USER_PHASE", ref currObjUserPhase);

                if (currObjUserPhase != currObjPhaseComment)
                {
                    //currentObject.SetUserProperty("USER_PHASE", currObjPhaseComment);
                    partList.Add(currentObject);
                }
            }

            // select objects that are in list for modification
            Tekla.Structures.Model.UI.ModelObjectSelector mos = new Tekla.Structures.Model.UI.ModelObjectSelector();
            mos.Select(partList);

            // modified object count
            var modCount = 0;
            var errCount = 0;

            // exit if there is no parts to modify
            if (partList.Count != 0)
            {
                // confirm modification
                DialogResult drConfirmation   = new DialogResult();
                mainForm     formConfirmation = new mainForm("Selected objects will be modified", "Refresh", "Ok");
                drConfirmation = formConfirmation.ShowDialog();
                if (drConfirmation == DialogResult.Yes)     // 'Yes' is used to refresh selection
                {
                    mos.Select(partList);
                }
                else if (drConfirmation == DialogResult.No) // 'No' is used to confirm
                {
                    // if OK, then go through list and modify each part
                    Tekla.Structures.Model.ModelObjectEnumerator selObjEnum = Model.GetModelObjectSelector().GetAllObjectsWithType(ModelObject.ModelObjectEnum.CONTOURPLATE);
                    selObjEnum = new Tekla.Structures.Model.UI.ModelObjectSelector().GetSelectedObjects();

                    // modify only objects that are in part list for modification and in current selection
                    while (selObjEnum.MoveNext())
                    {
                        foreach (var part in partList)
                        {
                            Beam         beam  = part as Beam;
                            ContourPlate plate = part as ContourPlate;
                            if (beam != null && selObjEnum.Current.Identifier.ToString() == beam.Identifier.ToString() || plate != null && selObjEnum.Current.Identifier.ToString() == plate.Identifier.ToString())
                            {
                                try
                                {
                                    var   currentObject       = selObjEnum.Current;
                                    var   currObjPhaseComment = "";
                                    var   currObjUserPhase    = "";
                                    Phase currObjPhase        = new Phase();

                                    currentObject.GetPhase(out currObjPhase);
                                    // phase comment gets copied to user phase
                                    currObjPhaseComment = currObjPhase.PhaseComment;
                                    currentObject.GetUserProperty("USER_PHASE", ref currObjUserPhase);

                                    if (currObjUserPhase != currObjPhaseComment)
                                    {
                                        currentObject.SetUserProperty("USER_PHASE", currObjPhaseComment);
                                    }
                                    modCount++;
                                }
                                catch
                                {
                                    errCount++;
                                }
                            }
                        }
                    }
                    if (errCount != 0)
                    {
                        MessageBox.Show("Warning\n# of objects which didn't modify:\n" + errCount + "\n\n# of changed objects:\n" + modCount, "FLPL checker");
                    }
                    else
                    {
                        MessageBox.Show("# of changed objects:\n" + modCount, "FLPL checker");
                    }
                }
                else
                {
                    return;
                }
            }
            else
            {
                MessageBox.Show("No parts to modifiy found.", Globals.appName);
            }
        }
示例#10
0
        public void Modify(PropertyValueChangedEventArgs e)
        {
            string label = e.ChangedItem.Label;
            ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().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();
                }
            }
        }
示例#11
0
        public void GetProperties()
        {
            Model model = new Model();
            ModelObjectEnumerator modelobjenum = model.GetModelObjectSelector().GetSelectedObjects();

            if (modelobjenum.GetSize() == 1)
            {
                while (modelobjenum.MoveNext())
                {
                    if (modelobjenum.Current is Tekla.Structures.Model.BaseWeld)
                    {
                        BaseWeld weld = (BaseWeld)modelobjenum.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();
            }
        }