Thanks for your message. I joined your circle last Friday; and that image was my first uploaded one executed with rhino + grasshopper. I have been using this fascinating software since last October; and I also like to enjoy the circle…
And you should look for any .net compatible implementations of the proj4, gdal, ogr, and geos libraries, because they can do most anything you might want, as well as ton more.
These would allow you to read and write virtually any gis data (shapefiles, raster images, kml, geoJSON, etc.) as well as to perform geospatial processing and easily deal with different projections and geographic coordinate systems.
In other words, someone has already written open source code to do most of what you or I would want, and I'm starting to think that I should just learn to work with ogr instead of working on my shapefile reader.
2. convert each ShpFeature (a python class I created to hold each feature in the shapefile) into Rhino Geometry
- for this step, I created a set of functions that I will post to GitHub in the next week (these functions could certainly be expanded, especially for multi-patch shape features which are sort of like meshes). When I do that, I can update the shapefile reader code as well
- The associated dbf table data for each feature should probably be stored in some attributes. So far I've used the UserString data in Rhino.DocObjects.ObjectAttributes, but something else might have to be figured out for Grasshopper, since it doesn't use DocObjects (I'm starting to feel like Grasshopper should just have ObjectAttributes as a basic data type or something similar).
I think it would be great if you converted my python code to VB.NET. You'll have to basically rewrite the python classes I made, as well as the functions for converting shapefile features to rhino geometry. There are dependency issues as well, because I am using specific Python libraries along with the dbfUtils module. You might want to seek out some appropriate substitutes within the .NET framework for reading byte data from binary files and for reading dbf files.
To convert shapefiles to rhino geometry, I divided the process into two steps:
1. using a python class to read the shapefile and then easily access it's various information. The class is instantiated using a file path to a shapefile:
s = Shp.ShpFile("/some/readable/path/to/a/shapefile.shp")
list_of_ShpFeatures = s.records
in the constructor method of ShpFile, it reads the whole shapefile using some nested methods for reading
Yeah, we're basically importing shapefiles and converting them to Rhino geometry. I should update the shapefile code and add the Rhino converter to GitHub. The finches component, at this point, does not include any GIS-related functions, and is primarily for batch processing along with some other creative possible uses. In order to make a grasshopper component that reads shapefiles, I either have to convert all the shapefile reading code to C# or find a way to embed ironpython in a grasshopper component.
In terms of dealing with shapefiles and GIS, I would suggest looking into Geodjango and the OGR/GDAL library. I'm learning about it now, and it has some very easy ways of dealing with GIS data. You can use Python to run all of it, which is really nice.
KML is just one among many text formats used to describe geospatial data, and I haven't worked with it much, but GeoJSON looks a little nicer to work with, as does WKT.
Unfortunately there's still no easy-to-use GUI for GIS that is very affordable (in my opinion). But if you're a student ArcGIS is free for one year, and can do probably anything you would want.
Mirco Bianchine replied brilliantly to it but I still don´t know how to separate the romboids from each other. I guess it is making a offset of the griven 4 point surfaces towards the interior of the surface and have that surface as a target surface for the box morph.
I don't know scripting and I have to design this bridge ASAP. The fact is that my bridge plan is based on a rhombus shape and is also partly curved..just to make things easier!!
I am using as radius of the sphere the distance between the centre of the sphere and the point that I should obtain by intersecting the sphere with a plane, or I could use the diagonal equations. Is that right? It doesn't work very well though, when the two circles intersect the surface sometime disappear. I am still a bit confused about the folding geometry.