private AcDb.ObjectId AddBorders() { AcDb.Polyline2d borderParcel = ServiceSimpleElements.CreatePolyline2d(this.Parcel.Points, true); borderParcel.LayerId = ServiceCAD.CreateLayer(settingsDrawing.Plan.FillParcel.Layer); AcDb.ObjectId idBorderParcel = ServiceCAD.InsertObject(borderParcel); AcDb.ResultBuffer xData = new AcDb.ResultBuffer(); int dxfCode; AcDb.TypedValue typedValue; dxfCode = (int)AcDb.DxfCode.ExtendedDataRegAppName; typedValue = new AcDb.TypedValue(dxfCode, "Земельна ділянка"); xData.Add(typedValue); foreach (LandInfo infoValue in this.Parcel.Info) { dxfCode = (int)AcDb.DxfCode.ExtendedDataAsciiString; typedValue = new AcDb.TypedValue(dxfCode, "<" + infoValue.Key + "> " + infoValue.Value); xData.Add(typedValue); } ServiceCAD.SetXData(idBorderParcel, xData); return(idBorderParcel); }
private void AddPoints(AcDb.ObjectId idBorderParcel) { AcDb.ResultBuffer xData = new AcDb.ResultBuffer(); int dxfCode; AcDb.TypedValue typedValue; dxfCode = (int)AcDb.DxfCode.ExtendedDataRegAppName; typedValue = new AcDb.TypedValue(dxfCode, "Точки межі"); xData.Add(typedValue); int iCurNumberPoint = 0; Dictionary <string, string> tags = new Dictionary <string, string>(); foreach (AcGe.Point2d point in this.Parcel.Points) { iCurNumberPoint += 1; tags.Clear(); tags.Add("NUMBER", ""); AcDb.ObjectId idPoint = ServiceBlockElements.InsertBlock ( settingsDrawing.Plan.Point.NameBlock, new AcGe.Point3d(point.X, point.Y, 0.0), this.SettingsForm.ScaleDrawing, 0, ServiceCAD.CreateLayer(settingsDrawing.Plan.Point.Layer), tags ); //dxfCode = (int)DxfCode.ExtendedDataHandle; dxfCode = (int)AcDb.DxfCode.ExtendedDataAsciiString; typedValue = new AcDb.TypedValue(dxfCode, point.ToString()); xData.Add(typedValue); } if (!idBorderParcel.Equals(AcDb.ObjectId.Null)) { ServiceCAD.SetXData(idBorderParcel, xData); } }