/// <summary> /// Create feature layer of a selected type (if it doesn't already exist) /// TODO: test this funciton /// </summary> /// <param name="layerType"></param> /// <returns></returns> private static FeatureLayer makeLayer(FeatureLayerType layerType) { try { var name = layerType.ToString("g"); var symRef = createSymbol(layerType); var rd = new SimpleRendererDefinition(symRef, label: name, description: name); // TODO: create new dataconnection for Rhino with attributes as needed var dc = MapView.Active.Map.Layers.FirstOrDefault().GetDataConnection(); return(LayerFactory.Instance.CreateFeatureLayer(dc, MapView.Active.Map, layerName: layerType.ToString("g"), rendererDefinition: rd)); } catch { return(null); } }
/// <summary> /// Get the relevant GH Feature layer based on the type (Point, Line, Polygon) /// </summary> /// <param name="type">Feature layer type (point, line, polygon)</param> /// <returns>Feature Layer</returns> private static BasicFeatureLayer getFeatureLayer(FeatureLayerType type) { var ghPreviewLayer = MapView.Active.Map.FindLayers(type.ToString("g")).FirstOrDefault(); if (ghPreviewLayer != null) { return(ghPreviewLayer as BasicFeatureLayer); } else { // TODO: uncomment once fully tested // ghPreviewLayer = makeLayer(type); if (ghPreviewLayer != null) { return(ghPreviewLayer as BasicFeatureLayer); } else { return(null); } } }