/// <summary> /// Place curve on feature layer /// </summary> /// <param name="operation"></param> /// <param name="curve"></param> private static void showCurve(EditOperation operation, Curve curve, Point3d origin) { try { // TODO: come up with way of determining whether to make a curve // into a polyline or polygon depending on context/user preferences // var layer = getFeatureLayer(FeatureLayerType.GH_Preview_Polyline); var layer = getFeatureLayer(FeatureLayerType.GH_Preview_Polygon); if (layer == null) { return; } var projection = layer.GetSpatialReference(); var ptList = RhinoUtil.getPointsFromCurves(new List <Curve>() { curve }); var gisPts = ptList.Select(p => RhinoUtil.ptToGis(p, origin)).ToList(); var polyline = new PolygonBuilder(gisPts).ToGeometry(); // var polyline = PolylineBuilder.CreatePolyline(gisPts, projection); operation.Create(layer, polyline); operation.ExecuteAsync(); } catch { } }
/// <summary> /// Place point on feature layer /// </summary> /// <param name="operation">Edit operatio</param> /// <param name="point">Rhino Point3d</param> private static void showPoint(EditOperation operation, Point3d point, Point3d origin) { try { var layer = getFeatureLayer(FeatureLayerType.GH_Preview_Point); if (layer == null) { return; } MapPoint mp = RhinoUtil.ptToGis(point, origin); operation.Create(layer, mp); operation.ExecuteAsync(); } catch { } }