private static void FillContour(BlockSectionKP bs, Polyline plExtern, BlockTableRecord cs, Transaction t) { var h = new Hatch(); h.SetDatabaseDefaults(); h.Layer = OptionsKPBS.Instance.LayerBSContourGNS; h.LineWeight = LineWeight.LineWeight015; h.Linetype = SymbolUtilityServices.LinetypeContinuousName; h.Color = GetFillColor(bs); // Color.FromRgb(250, 250, 250); //h.Transparency = new Transparency(80); h.SetHatchPattern(HatchPatternType.PreDefined, "SOLID"); cs.AppendEntity(h); t.AddNewlyCreatedDBObject(h, true); h.Associative = true; h.HatchStyle = HatchStyle.Normal; // добавление контура полилинии в гштриховку var ids = new ObjectIdCollection(); ids.Add(plExtern.Id); h.AppendLoop(HatchLoopTypes.Default, ids); h.EvaluateHatch(true); var orders = cs.DrawOrderTableId.GetObject(OpenMode.ForWrite) as DrawOrderTable; orders.MoveToBottom(new ObjectIdCollection(new[] { h.Id })); }
private static Color GetFillColor(BlockSectionKP bs) { if (bs.Floors <= 15) { return(Color.FromRgb(255, 255, 255)); } else if (bs.Floors > 20) { return(Color.FromColorIndex(ColorMethod.ByAci, 253)); } else { return(Color.FromColorIndex(ColorMethod.ByAci, 254)); } //byte r = Convert.ToByte(255 - bs.Floors*5); //byte g = Convert.ToByte(255 - bs.Floors*5); //byte b = Convert.ToByte(255 - bs.Floors*5); }