generative modeling for Rhino
78 members
406 members
Started this discussion. Last reply by Victor Leung Jun 11, 2011.
Started this discussion. Last reply by Chris Wilkins Mar 11, 2011.
Started this discussion. Last reply by taz Feb 16, 2011.
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).
to help understand the code, you might want to check out theESRI shapefile specification.
Hi Chris,
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.
Hi Chris,
Thanks for getting back to me. I wrote about this post: http://www.grasshopper3d.com/forum/topics/diagonal-grid-without-1?commentId=2985220:Comment:43535 as I was trying to make something similar. I finally downloaded the definition, but it was exactly was I was looking for.
I started a discussion yesterday about what I´m trying to do:
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´ll give it a try a post what I have.
Thanks for your help,
Fernando
© 2012 Created by Scott Davidson.
Powered by
.