public override Result ParseBlName() { var ending = BlName.Substring(Settings.Default.BlockPanelSectionHorizontalPrefixName.Length); if (string.IsNullOrEmpty(ending)) { //IsSimple = true; return(Result.Ok()); } var options = ending.Split('_'); foreach (var opt in options) { if (string.IsNullOrWhiteSpace(opt)) { continue; } // Кол слоев в панели (1 или 3 слойная стеновая панель) if (opt.StartsWith("сл", StringComparison.OrdinalIgnoreCase)) { int n; if (int.TryParse(opt.Substring("сл".Length), out n)) { NLayerPanel = n; } else { Inspector.AddError($"В блоке сечения {BlName} не определено количество слоев по префиксу 'сл'", icon: System.Drawing.SystemIcons.Error); } } // Торец слева (Cheek) else if (opt.Equals("тл", StringComparison.OrdinalIgnoreCase)) { IsCheekLeft = true; } // Торец справа (Cheek) else if (opt.Equals("тп", StringComparison.OrdinalIgnoreCase)) { IsCheekRight = true; } // Примыкание справа (Outside) else if (opt.Equals("пп", StringComparison.OrdinalIgnoreCase)) { IsOutsideRight = true; } // Примыкание слева (Outside) else if (opt.Equals("пл", StringComparison.OrdinalIgnoreCase)) { IsOutsideLeft = true; } } return(Result.Ok()); }
public override Result ParseBlName() { var ending = BlName.Substring(Settings.Default.BlockPanelSectionVerticalPrefixName.Length); if (string.IsNullOrEmpty(ending)) { return(Result.Ok()); //return Result.Fail("В имени блока не найдены параметры высоты и наличия окна"); } var options = ending.Split('_'); foreach (var opt in options) { if (string.IsNullOrWhiteSpace(opt)) { continue; } // Кол слоев панели 1-слойная(бетон), 3-слойная(несущий, утеплитель, внешний) if (opt.StartsWith("сл", StringComparison.OrdinalIgnoreCase)) { int n; if (int.TryParse(opt.Substring("сл".Length), out n)) { NLayerPanel = n; } else { Inspector.AddError($"В блоке сечения {BlName} не определено количество слоев по префиксу 'сл'", icon: System.Drawing.SystemIcons.Error); } } // Высота сечения else if (opt.StartsWith("h", StringComparison.OrdinalIgnoreCase)) { int h; if (int.TryParse(opt.Substring(1), out h)) { Height = h; } else { Inspector.AddError($"В блоке сечения {BlName} не определена высота сечения по префиксу 'h'", icon: System.Drawing.SystemIcons.Error); } } // Наличие окна в сечении else if (opt.Equals("w", StringComparison.OrdinalIgnoreCase)) { Window = true; } // Сечение для чердачной панели else if (opt.Equals("ч", StringComparison.OrdinalIgnoreCase)) { IsUpperStoreyPanel = true; } // Сечение для ОЛ панели else if (opt.Equals("ол", StringComparison.OrdinalIgnoreCase)) { IsOL = true; } } return(checkParamVerticalSec()); }