示例#1
0
        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 }));
        }
示例#2
0
        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);
        }