void BUILDING_Click(object sender, RoutedEventArgs args)
        {
            PartsPdmTable.ItemsSource = null;
            if (!Totals.RemPanWidthCheck(ШиринаСъемнойПанели2, 2)) return;
            if (!Totals.RemPanWidthCheck(ШиринаСъемнойПанели3, 3)) return;
            if (!Totals.RemPanWidthCheck(ШиринаСъемнойПанели1, 1)) return;       

            Логгер.Информация("Начато построение бескаркасной установки","",
                "Сохранение настроек программы",
                "FramelessUnitUc");

            try
            { 
                var modelSw = new ModelSw();

                #region PathToBlock

                if (onlySearch.IsChecked != true)
                {
                    var framelessBlockNewName = $"{SizeOfUnit.Text} {OrderTextBox.Text}B Section {SectionTextBox.Text}";
                    var orderFolder =
                        $@"{Settings.Default.DestinationFolder}\{ModelSw.UnitFramelessOreders}\{SizeOfUnit.Text}\{SizeOfUnit.Text} {OrderTextBox.Text}B";
                    var framelessBlockNewPath = new FileInfo($@"{orderFolder}\{framelessBlockNewName}.SLDASM").FullName;

                    if (ModelSw.OpenIfExist(framelessBlockNewPath, VaultSystem.VentsCadFile.Type.Assembly, null)) return;                    
                }

                #endregion

                var width = Convert.ToDouble(WidthU.Text);
                var height = Convert.ToDouble(HeightU.Text);
                var lenght = Convert.ToDouble(Lenght.Text);
                
                #region Панели

                var materialP1 = new[] {MaterialP1.SelectedValue.ToString(), ТолщинаВнешней.Text};
                var materialP2 = new[]
                {
                    MaterialP2.SelectedValue.ToString(), ТолщинаВннутренней.Text,
                    Шумоизоляция.SelectedValue.ToString(),
                    ПрименениеСкотча.SelectedValue.ToString()
                };

                string panelUp = null;
                string panelDown = null;
                string panelFixed = null;

               // var config = Левая.IsChecked == true ? "01" : "02";
                var configDown = Левая.IsChecked == true ? "02" : "01";
                var leftSide = Левая.IsChecked == true;
                
                
                var addingConstructParameters = new AddingConstructParameters();

                var typeOfDoubleКриша = (ComboBoxItem) КришаТипСдвоенойПанели.SelectedItem;
                var typeOfDoubleStrКриша = КришаТипСдвоенойПанели.Visibility == Visibility.Visible
                    ? typeOfDoubleКриша.Name.Replace("n", "") : "00";

                var typeOfDoubleОпорнаяЧасть = (ComboBoxItem) ОпорнаяЧастьТипСдвоенойПанели.SelectedItem;
                var typeOfDoubleStrОпорнаяЧасть = ОпорнаяЧастьТипСдвоенойПанели.Visibility == Visibility.Visible
                    ? typeOfDoubleОпорнаяЧасть.Name.Replace("n", "") : "00";

                var typeOfDoubleНесъемнаяПанель = (ComboBoxItem) НесъемнаяПанельСдвоенойПанели.SelectedItem;
                var typeOfDoubleStrНесъемнаяПанель = НесъемнаяПанельСдвоенойПанели.Visibility == Visibility.Visible
                    ? typeOfDoubleНесъемнаяПанель.Name.Replace("n", "") : "00";

               // MessageBox.Show($"Криша - {typeOfDoubleStrКриша}\nОпорнаяЧасть - {typeOfDoubleStrОпорнаяЧасть}\nНесъемнаяПанель - {typeOfDoubleStrНесъемнаяПанель}");

                var ironwares = new ModelSw.Ironwares
                {
                    Height = height, Width = width, Lenght = lenght,
                    TypeOfDownPanel = typeOfDoubleStrОпорнаяЧасть,
                    TypeOfUnremPanel = typeOfDoubleStrНесъемнаяПанель,
                    TypeOfUpPanel = typeOfDoubleStrКриша
                };

                modelSw.PartsToDeleteList = new List<KeyValuePair<string, string>>();

                #region Панели Торцевые

                string panelBack1 = null;string panelBack2 = null;

                List<string> partsToDeleteList;
                var existingAsmsAndParts2 = new List<ModelSw.ExistingAsmsAndParts>();

                const string noBrush = "Без покрытия";
                var покрытие = new[]
                {
                    Ral1.Text, Ral1.Text != noBrush ? CoatingType1.Text : "0",
                    Ral1.Text != noBrush ? CoatingClass1.Text : "0",
                    Ral2.Text, Ral2.Text != noBrush ? CoatingType2.Text : "0",
                    Ral2.Text != noBrush ? CoatingClass2.Text : "0",
                    Ral1.SelectedValue?.ToString() ?? noBrush,
                    Ral2.SelectedValue?.ToString() ?? noBrush
                };

                var screwsBackPanel =
                    new ModelSw.Screws
                    {
                        ByWidth = ironwares.ScrewsByHeight - 1000,
                        ByHeight = ironwares.ScrewsByWidth - 1000,

                        ByWidthInnerUp = ironwares.ScrewsByHeight,
                        ByHeightInnerUp = ironwares.ScrewsByWidth
                    };

                var typeOfBackPanel =
                    new[]
                    {
                        "35",
                        "Торцевая панель",
                        Convert.ToString(SqlBaseData.PanelsTypeId("35"))                      
                    };

                 

                if (НаличиеТорцевойПанели.SelectedIndex == 1 || НаличиеТорцевойПанели.SelectedIndex == 3)
                {
                    try
                    {
                        if (!(PartsGenerationChk.IsChecked == true & BackPanels.IsChecked != true))
                        {
                            //const string paneltype = "Панель торцевая первая";
                            List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                            panelBack1 = modelSw.PanelsFramelessStr(
                                typeOfPanel: typeOfBackPanel,
                                width: Convert.ToString(height - 40), height: Convert.ToString(width - 40),
                                materialP1: materialP1, materialP2: materialP2, 
                                скотч: ПрименениеСкотча.Text,
                                усиление: _panelBack,
                                isLeftSide: leftSide,
                                расположениеПанелей: "",
                                покрытие: покрытие,
                                расположениеВставок: "",
                                первыйТип: null,
                                типТорцевой: ParmsOfBackPanel1(),
                                типДвойной: "00",
                                screws: screwsBackPanel,
                                partsToDeleteList: out partsToDeleteList,
                                existingAsmsAndParts: out existingAsmsAndParts,
                                onlySearch: onlySearch.IsChecked == true);

                            existingAsmsAndParts2.AddRange(existingAsmsAndParts);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                        Логгер.Ошибка(ex.Message, ex.StackTrace, ex.TargetSite.ToString(),"FramelessUnitUc");
                    }
                }

                if (НаличиеТорцевойПанели.SelectedIndex == 2 || НаличиеТорцевойПанели.SelectedIndex == 3)
                {
                    try
                    {
                        if (!(PartsGenerationChk.IsChecked == true & BackPanels.IsChecked != true))
                        {
                            List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                            panelBack2 = modelSw.PanelsFramelessStr(
                                typeOfPanel: typeOfBackPanel,
                                width: Convert.ToString(height - 40), height: Convert.ToString(width - 40),
                                materialP1: materialP1, materialP2: materialP2,
                                скотч: ПрименениеСкотча.Text,
                                усиление: _panelBack,
                                isLeftSide: leftSide,
                                расположениеПанелей: "",
                                покрытие: покрытие,
                                расположениеВставок: "",
                                первыйТип: null,
                                типТорцевой: ParmsOfBackPanel2(),
                                типДвойной: "00",
                                screws: screwsBackPanel,
                                partsToDeleteList: out partsToDeleteList,
                                existingAsmsAndParts: out existingAsmsAndParts,
                                onlySearch: onlySearch.IsChecked == true);

                            existingAsmsAndParts2.AddRange(existingAsmsAndParts);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                        Логгер.Ошибка(
                            ex.Message,
                            ex.StackTrace,
                            ex.TargetSite.ToString(),
                            "FramelessUnitUc");
                    }
                }
               
                #endregion
                
                var panelBack = new[] {panelBack1, panelBack2};

                try
                {
                    if (!(PartsGenerationChk.IsChecked == true & UpPanels.IsChecked != true))
                    {
                        List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                        panelUp = modelSw.PanelsFramelessStr(
                            typeOfPanel:
                                new[]
                                {
                                    ТипВерхнейПанели.Text, КришаТип.Text,
                                    Convert.ToString(SqlBaseData.PanelsTypeId(ТипВерхнейПанели.Text))
                                },
                            width: Convert.ToString(lenght), height: Convert.ToString(width),
                            materialP1: materialP1, materialP2: materialP2,
                            скотч: ПрименениеСкотча.Text,
                            усиление: PanelUpChk.IsChecked == true,
                            isLeftSide: leftSide,
                            расположениеПанелей: PanelsConfig(),
                            покрытие: покрытие,
                            расположениеВставок: ProfilsConfig(),
                            первыйТип: null,
                            типТорцевой: ParmsOfRoofPanelFlange(),
                            типДвойной: typeOfDoubleStrКриша,
                            screws: new ModelSw.Screws
                            {
                                ByWidth = ironwares.ScrewsByLenght,
                                ByHeight = ironwares.ScrewsByWidth,
                                ByWidthInner =
                                    typeOfDoubleStrНесъемнаяПанель.Contains("1")
                                        ? ironwares.ScrewsByLenght - 1000 > 2000
                                            ? ironwares.ScrewsByLenght - 2000
                                            : ironwares.ScrewsByLenght - 1000
                                        : ironwares.ScrewsByLenght - 1000,
                                ByHeightInner = ironwares.ScrewsByWidth - 1000
                            },
                            partsToDeleteList: out partsToDeleteList,
                            existingAsmsAndParts: out existingAsmsAndParts,
                            onlySearch: onlySearch.IsChecked == true);

                        existingAsmsAndParts2.AddRange(existingAsmsAndParts);

                        foreach (var partName in partsToDeleteList)
                        {
                            modelSw.PartsToDeleteList.Add(new KeyValuePair<string, string>(@panelUp, partName));
                        }
                        addingConstructParameters.PanelsToDelete = new List<string>();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());

                    Логгер.Ошибка(
                        ex.Message,
                        ex.StackTrace,
                        ex.TargetSite.ToString(),
                        "FramelessUnitUc");
                }

                #region Панель нижняя под монтажные ножки

                try
                {
                    if (!(PartsGenerationChk.IsChecked == true & DownPanels.IsChecked != true))
                    {
                        //const string paneltype = "Панель нижняя под монтажные ножки";
                        List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                        panelDown = modelSw.PanelsFramelessStr(
                            typeOfPanel:
                                new[]
                                {
                                    ТипПанелиНижней.Text, ОпорнаяЧастьТип.Text,
                                    Convert.ToString(SqlBaseData.PanelsTypeId(ТипПанелиНижней.Text))
                                },
                            width: Convert.ToString(lenght), height: Convert.ToString(width),
                            materialP1: materialP1, materialP2: materialP2,
                            скотч: ПрименениеСкотча.Text,
                            усиление: PanelDownChk.IsChecked == true,
                            isLeftSide: !leftSide,  // REVERSE
                            расположениеПанелей: PanelsConfig(),
                            покрытие: покрытие,
                            расположениеВставок: ProfilsConfig(),
                            первыйТип: null,
                            типТорцевой: ParmsOfMontagePanelFlange(),
                            типДвойной: typeOfDoubleStrОпорнаяЧасть,
                            screws: new ModelSw.Screws
                            {
                                ByWidth = ironwares.ScrewsByLenght,
                                ByHeight = ironwares.ScrewsByWidth,

                                ByWidthInner =
                                    typeOfDoubleStrНесъемнаяПанель.Contains("1")
                                        ? ironwares.ScrewsByLenght - 1000 > 2000
                                            ? ironwares.ScrewsByLenght - 2000
                                            : ironwares.ScrewsByLenght - 1000
                                        : ironwares.ScrewsByLenght - 1000,
                                ByHeightInner = ironwares.ScrewsByWidth - 1000
                            },
                            partsToDeleteList: out partsToDeleteList,
                            existingAsmsAndParts: out existingAsmsAndParts,
                            onlySearch: onlySearch.IsChecked == true);

                        existingAsmsAndParts2.AddRange(existingAsmsAndParts);

                        foreach (var partName in partsToDeleteList)
                        {
                            modelSw.PartsToDeleteList.Add(new KeyValuePair<string, string>(@panelDown, partName));
                        }
                    }
                }
                catch (Exception ex)
                {
                    Логгер.Ошибка(ex.Message,
                        ex.StackTrace,
                        ex.TargetSite.ToString(),
                        "FramelessUnitUc");
                }

                #endregion

                #region Съемная и усиливающие панели

                var panelRemovable = new[] {""};
                string panelRemovable1 = null;
                string panelRemovable2 = null;
                string panelRemovable3 = null;

                try
                {
                    //"Съемная";
                    try
                    {
                        if (!(PartsGenerationChk.IsChecked == true & RemPanels.IsChecked != true))
                        {
                            List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                            panelRemovable1 = modelSw.PanelsFramelessStr(
                                typeOfPanel: new[]
                                {
                                    ТипСъемнойПанели1.SelectedValue.ToString(),
                                    ТипСъемнойПанели1.Text,
                                    Convert.ToString(SqlBaseData.PanelsTypeId(ТипСъемнойПанели1.SelectedValue.ToString()))
                                },
                                width: Convert.ToString(ШиринаСъемнойПанели1.Text), height: Convert.ToString(height - 40),
                                materialP1: materialP1, materialP2: materialP2,
                                скотч: ПрименениеСкотча.Text,
                                усиление: УсилениеСъемнойПанели1.IsChecked == true,
                                isLeftSide: false,
                                расположениеПанелей: "",
                                покрытие: покрытие,
                                расположениеВставок: null,
                                первыйТип: null,
                                типТорцевой: null,
                                типДвойной: "00",
                                screws: null,
                                partsToDeleteList: out partsToDeleteList,
                                existingAsmsAndParts: out existingAsmsAndParts,
                                onlySearch: onlySearch.IsChecked == true);

                            existingAsmsAndParts2.AddRange(existingAsmsAndParts);
                        }
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.ToString());
                    }
                    try
                    {
                        if (!(PartsGenerationChk.IsChecked == true & RemPanels.IsChecked != true))
                        {
                            List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                            panelRemovable2 = modelSw.PanelsFramelessStr(
                                typeOfPanel: new[]
                                {
                                    ТипСъемнойПанели2.SelectedValue.ToString(),
                                    ТипСъемнойПанели2.Text,
                                    Convert.ToString(SqlBaseData.PanelsTypeId(ТипСъемнойПанели2.SelectedValue.ToString()))
                                },
                                width: Convert.ToString(ШиринаСъемнойПанели2.Text), height: Convert.ToString(height - 40),
                                materialP1: materialP1, materialP2: materialP2,
                                скотч: ПрименениеСкотча.Text,
                                усиление: УсилениеСъемнойПанели2.IsChecked == true,
                                isLeftSide: false,
                                расположениеПанелей: "",
                                покрытие: покрытие,
                                расположениеВставок: null,
                                первыйТип: null,
                                типТорцевой: null,
                                типДвойной: "00",
                                screws: null,
                                partsToDeleteList: out partsToDeleteList,
                                existingAsmsAndParts: out existingAsmsAndParts,
                                onlySearch: onlySearch.IsChecked == true);

                            existingAsmsAndParts2.AddRange(existingAsmsAndParts);
                        }
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.ToString());
                    }

                    try
                    {
                        if (!(PartsGenerationChk.IsChecked == true & RemPanels.IsChecked != true))
                        {
                            List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                            panelRemovable3 = modelSw.PanelsFramelessStr(
                                typeOfPanel: new[]
                                {
                                    ТипСъемнойПанели3.SelectedValue.ToString(),
                                    ТипСъемнойПанели3.Text,
                                    Convert.ToString(SqlBaseData.PanelsTypeId(ТипСъемнойПанели3.SelectedValue.ToString()))
                                },
                                width: Convert.ToString(ШиринаСъемнойПанели3.Text), height: Convert.ToString(height - 40),
                                materialP1: materialP1, materialP2: materialP2,
                                скотч: ПрименениеСкотча.Text,
                                усиление: УсилениеСъемнойПанели3.IsChecked == true,
                                isLeftSide: false,
                                расположениеПанелей: "",
                                покрытие: покрытие,
                                расположениеВставок: null,
                                первыйТип: null,
                                типТорцевой: null,
                                типДвойной: "00",
                                screws: null,
                                partsToDeleteList: out partsToDeleteList,
                                existingAsmsAndParts: out existingAsmsAndParts,
                                onlySearch: onlySearch.IsChecked == true);

                            existingAsmsAndParts2.AddRange(existingAsmsAndParts);
                        }
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.ToString());
                    }

                    #region Усиливющие панели

                    string panelReinforcing1 = null;
                    string panelReinforcing2 = null;

                    if (ТипУсилПанели1.Visibility == Visibility.Visible)
                    {
                        try
                        {
                            if (!(PartsGenerationChk.IsChecked == true & StrenghtPanels.IsChecked != true))
                            {
                                var typeOfPanel = ТипУсилПанели1.SelectedItem as ComboBoxItem;
                                List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                                panelReinforcing1 = modelSw.PanelsFramelessStr(
                                    typeOfPanel: new[]
                                    {
                                        ТипУсилПанели1.SelectedValue.ToString(),
                                        ТипУсилПанели1.Text,
                                        Convert.ToString(SqlBaseData.PanelsTypeId(ТипУсилПанели1.SelectedValue.ToString()))
                                    },

                                    width: Convert.ToString(130), height: Convert.ToString(height - 40),
                                    materialP1: materialP1, materialP2: materialP2,
                                    скотч: ПрименениеСкотча.Text,
                                    усиление: false,
                                    isLeftSide: false,
                                    расположениеПанелей: "",
                                    покрытие: покрытие,
                                    расположениеВставок: null,
                                    первыйТип: new[]
                                    {
                                        ТипНесъемнойПанели.SelectedValue.ToString(),
                                        ТипНесъемнойПанели.Text,
                                        Convert.ToString(SqlBaseData.PanelsTypeId(ТипНесъемнойПанели.SelectedValue.ToString()))
                                    }, 
                                    типТорцевой: null,
                                    типДвойной: "00",
                                    screws: null,
                                    partsToDeleteList: out partsToDeleteList,
                                    existingAsmsAndParts: out existingAsmsAndParts,
                                    onlySearch: onlySearch.IsChecked == true);

                                existingAsmsAndParts2.AddRange(existingAsmsAndParts);
                            }
                        }
                        catch (Exception e)
                        {
                            MessageBox.Show(e.ToString());
                        }
                    }

                    if (ТипУсилПанели2.Visibility == Visibility.Visible)
                    {
                        try
                        {
                            if (!(PartsGenerationChk.IsChecked == true & StrenghtPanels.IsChecked != true))
                            {
                                var typeOfPanel = ТипУсилПанели2.SelectedItem as ComboBoxItem;

                                List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                                panelReinforcing2 = modelSw.PanelsFramelessStr(
                                    typeOfPanel: new[]
                                    {
                                        ТипУсилПанели2.SelectedValue.ToString(),
                                        ТипУсилПанели2.Text,
                                        Convert.ToString(SqlBaseData.PanelsTypeId(ТипУсилПанели2.SelectedValue.ToString()))
                                    },

                                    width: Convert.ToString(130), height: Convert.ToString(height - 40),
                                    materialP1: materialP1, materialP2: materialP2,
                                    скотч: ПрименениеСкотча.Text,
                                    усиление: false,
                                    isLeftSide: false,
                                    расположениеПанелей: "",
                                    покрытие: покрытие,
                                    расположениеВставок: null,
                                    первыйТип: new[]
                                    {
                                        ТипНесъемнойПанели.SelectedValue.ToString(),
                                        ТипНесъемнойПанели.Text,
                                        Convert.ToString(SqlBaseData.PanelsTypeId(ТипНесъемнойПанели.SelectedValue.ToString()))
                                    },  
                                    типТорцевой: null,
                                    типДвойной: "00",
                                    screws: null,
                                    partsToDeleteList: out partsToDeleteList,
                                    existingAsmsAndParts: out existingAsmsAndParts,
                                    onlySearch: onlySearch.IsChecked == true);

                                existingAsmsAndParts2.AddRange(existingAsmsAndParts);
                            }
                        }
                        catch (Exception exception)
                        {
                            MessageBox.Show(exception.ToString());
                        }
                    }

                    #endregion

                    panelRemovable = new[]
                    {
                        panelRemovable1,
                        panelRemovable2,
                        panelRemovable3,
                        ПрименениеСкотча.Text,
                        panelReinforcing1,
                        panelReinforcing2
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());

                    Логгер.Ошибка(
                        logText: ex.Message,
                        код: ex.StackTrace,
                        функция: ex.TargetSite.ToString(),
                        className: "FramelessUnitUc");
                }
                #endregion

                try
                {
                    if (!(PartsGenerationChk.IsChecked == true & UnremPanels.IsChecked != true))
                    {
                        //"Несъемная";
                        List<ModelSw.ExistingAsmsAndParts> existingAsmsAndParts;
                        panelFixed = modelSw.PanelsFramelessStr(
                            typeOfPanel: new[]
                            {
                                ТипНесъемнойПанели.SelectedValue.ToString(),
                                ТипНесъемнойПанели.Text,
                                Convert.ToString(SqlBaseData.PanelsTypeId(ТипНесъемнойПанели.SelectedValue.ToString()))
                            },
                            width: Convert.ToString(lenght), height: Convert.ToString(height - 40),
                            materialP1: materialP1, materialP2: materialP2,
                            скотч: ПрименениеСкотча.Text,
                            усиление: PanelUnremChk.IsChecked == true,
                            isLeftSide: false,
                            расположениеПанелей: "",
                            покрытие: покрытие,
                            расположениеВставок: ProfilsConfig(),
                            первыйТип: null,
                            типТорцевой: ParmsOfUnRemPanelFlange(),
                            типДвойной: typeOfDoubleStrНесъемнаяПанель,
                            screws: new ModelSw.Screws
                            {
                                ByWidth =
                                    typeOfDoubleStrНесъемнаяПанель.Contains("1")
                                        ? ironwares.ScrewsByLenght - 1000 > 2000
                                            ? ironwares.ScrewsByLenght - 2000
                                            : ironwares.ScrewsByLenght - 1000
                                        : ironwares.ScrewsByLenght - 1000,
                                ByHeight = ironwares.ScrewsByHeight,

                                ByWidthInner = ironwares.ScrewsByLenght,
                                ByHeightInner = ironwares.ScrewsByHeight - 1000,
                                ByWidthInnerUp = ironwares.ScrewsByLenght
                            },
                            partsToDeleteList: out partsToDeleteList,
                            existingAsmsAndParts: out existingAsmsAndParts,
                            onlySearch: onlySearch.IsChecked == true);

                        existingAsmsAndParts2.AddRange(existingAsmsAndParts);

                        foreach (var partName in partsToDeleteList)
                        {
                            modelSw.PartsToDeleteList.Add(new KeyValuePair<string, string>(@panelFixed, partName));
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    Логгер.Ошибка(
                        ex.Message,
                        ex.StackTrace,
                        ex.TargetSite.ToString(),
                        "FramelessUnitUc");
                }

                #endregion

                if (ТипПроф1.Visibility != Visibility.Visible){ТипПроф1.Text = "-";}
                if (ТипПроф2.Visibility != Visibility.Visible){ТипПроф2.Text = "-";}
                if (ТипПроф3.Visibility != Visibility.Visible){ТипПроф3.Text = "-";}
                if (ТипПроф4.Visibility != Visibility.Visible){ТипПроф4.Text = "-";}

                string[] profils = null;
                {
                    try
                    {
                        profils = new[]
                        {
                            ТипПроф1.Text == "-"
                                ? "-"
                                : modelSw.Profil(Convert.ToDouble(HeightU.Text) - 80, ТипПроф1.Text, ironwares.ScrewsByHeight + 1000),
                            ТипПроф2.Text == "-"
                                ? "-"
                                : modelSw.Profil(Convert.ToDouble(HeightU.Text) - 80, ТипПроф2.Text, ironwares.ScrewsByHeight + 1000),
                            ТипПроф3.Text == "-"
                                ? "-"
                                : modelSw.Profil(Convert.ToDouble(HeightU.Text) - 80, ТипПроф3.Text, ironwares.ScrewsByHeight + 1000),
                            ТипПроф4.Text == "-"
                                ? "-"
                                : modelSw.Profil(Convert.ToDouble(HeightU.Text) - 80, ТипПроф4.Text, ironwares.ScrewsByHeight + 1000)
                        };
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
                    }
                }
                
                try
                {
                    if (OnlyFind)
                    {
                        PartsPdmTable.ItemsSource = existingAsmsAndParts2;
                        var asmsAndParts = new ModelSw.ExistingAsmsAndParts();
                        foreach (var existingAsmsAndPartse in existingAsmsAndParts2)
                        {
                            if (existingAsmsAndPartse == null) return;

                            existingAsmsAndPartse.PartPath = asmsAndParts.GetPath(existingAsmsAndPartse?.PartName, Settings.Default.PdmBaseName);
                            existingAsmsAndPartse.ExistInSistem = string.IsNullOrEmpty(existingAsmsAndPartse?.PartPath)
                                ? "Нет"
                                : "Есть";
                        }
                        PartsPdmTable.ItemsSource = existingAsmsAndParts2;
                        return;
                    }
                }
                catch (Exception)
                {
                    // ignored
                }

                var dimensions = new ModelSw.BlockDimensions
                {
                    Width = width,
                    Height = height,
                    Lenght = lenght,
                    DimO1 = Отступ1.Visibility == Visibility.Visible ? (Convert.ToDouble(Отступ1.Text) - 46) : 0,
                    DimO2 = Отступ2.Visibility == Visibility.Visible ? Convert.ToDouble(Отступ2.Text) - 132 : 0,
                    DimO3 = Отступ3.Visibility == Visibility.Visible ? Convert.ToDouble(Отступ3.Text) - 132 : 0,
                    Planel1Width = ШиринаПанели1.Visibility == Visibility.Visible ? Convert.ToDouble(ШиринаПанели1.Text) : 0,
                    Planel2Width = ШиринаПанели2.Visibility == Visibility.Visible ? Convert.ToDouble(ШиринаПанели2.Text) : 0,
                    Planel3Width = ШиринаПанели3.Visibility == Visibility.Visible ? Convert.ToDouble(ШиринаПанели3.Text) : 0

                    #region To delete
                    //PlanelCentrDoor1 = dimO1 + remPanelWidth1 / 2,
                    //PlanelCentrDoor2 = dimO1 + remPanelWidth1 + dimO2 + remPanelWidth2 / 2,
                    //PlanelCentrDoor3 = dimO1 + remPanelWidth1 + dimO2 + remPanelWidth2 + dimO3 + remPanelWidth3 / 2
                    #endregion

                };

                if (PartsGenerationChk.IsChecked == true)
                {
                    modelSw.DeleteAllPartsToDelete();
                    return;
                }
                
                modelSw.FramelessBlock(
                    size: ((DataRowView) SizeOfUnit.SelectedItem)["Type"].ToString(),
                    order: OrderTextBox.Text,
                    leftSide: leftSide,
                    section: SectionTextBox.Text,
                    pDown: panelDown,
                    pFixed: panelFixed,
                    pUp: panelUp,
                    съемныеПанели: panelRemovable,
                    промежуточныеСтойки: profils,
                    dimensions: dimensions, 
                    троцевыеПанели: panelBack);

                //m1:
                //MessageBox.Show("Delete All Parts 2");

                modelSw.DeleteAllPartsToDelete();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

                Логгер.Ошибка(logText: ex.Message,
                    код: ex.StackTrace,
                    функция: ex.TargetSite.ToString(),
                    className: "FramelessUnitUc");
            }

            Логгер.Информация($"Построение бескаркасной уставновки завершено - {""}",
                "", "", "FramelessUnitUc");
        }
 void Button_Click(object sender, RoutedEventArgs e)
 {
     var modelSw = new ModelSw();
     modelSw.Profil(Convert.ToDouble(HeightU.Text) - 40, "03", null);
 }