private void defineWindow(BlockReference blRef) { //if (blRef != null && blRef.DynamicBlockReferencePropertyCollection != null) //{ // foreach (DynamicBlockReferenceProperty prop in blRef.DynamicBlockReferencePropertyCollection) // { // if (prop.PropertyName.Equals(Settings.Default.BlockWindowVisibilityName, StringComparison.OrdinalIgnoreCase)) // { // Mark = prop.Value.ToString(); // break; // } // } //} try { var split = BlName.Split(new[] { '_' }); Mark = split.Skip(2).First(); if (FireBoxMarks.Contains(Mark)) { IsFireBox = true; } } catch { } }
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 int GetHashCode() { return(BlName.GetHashCode()); }
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()); }