Releases: JamesParrott/sDNA_GH
Adds Nurbs Curves to Rhino / GH documents.
Better supports shapefiles with zero length links, and writing of their data to User Text
Preserve shp data order. Read and write zero length nurbs curves.
Dependency on PyShp switched to a new bespoke fork of it: IronPyShp
IronPyshp uses an OrderedDict to preserve the order of fields in shapefiles.
IronPyShp also correctly reads and writes Unicode strings to shapefiles in utf8 (however the shape file format
only supports 255 byte strings).
Zero length polylines could always be written by WriteShp. The issue was creating a valid zero length polyline in the first place in Rhino.
The degree 1 nurbs curves turned out to be perfect for this, as they are not required to adhere to the same validity standards as polylines.
WriteShp now reads Nurbs Curves and writes zero length ones to shapefiles, but ReadShp also adds them as a fallback if writing a polyline fails. If adding a degree 1 nurbs curve fails, only then is the error handling via the validity conditions.
Degree-1 Nurbs curves writeable to shapefiles.
v2.3.0 Up versioned to 2.3
3D shape files(!), loop links and other invalid polylines triage or skipping.
v2.2.0 Rebuilt components again.
Error now contains num of unaddable shape, in its shp file
Adding polylines to Rhino and Grasshopper with very closely spaced points, close to the floating point precision, can cause rs.AddPolyLine to raise an 'unable to add polyline to document' error. These closely spaced points are common in GIS co-ordinate systems and shapefiles from public sources.
There is little documentation available to say what the limits are in Rhino, and from experimenting simply with code snippets such as:
rs.AddPolyline([[840103.7448000005, 826915.3969999999], [840102.0987999998, 826918.7357999999], [840100.6714000003, 826921.5581], [840099.2468999997, 826924.4590000007], [840095.2278000005, 826925.2062999997], [840095.2275999999, 826925.2062999997]])
Rhino can be happy with a 2-point, close points polyline, but than an extra point in that polyline can cause this error too.
Quieter Noisy Sentinels
Quick patch to test a bug fix. Nominal changes.
Internal Sentinel instances no longer raise Errors when their data descriptor methods are accessed (get, set and delete). A user has found the noisy Sentinels complain when Sentinel.__set__
is accessed. There should be no need for a Sentinel's data descriptor methods to be accessed, so this branch hypothesises this is because isinstance is checking instance variables are not data_descriptors.
sDNA_GH.... via sdna-gh.zip
Made the folder structure a level deeper to use food4rhino's preferred name convention. Unfortunately this breaks backward compatibility so is a major version change (but luckily the previous release was available for less than 24 hours) but all tests have been repeated and passed.
sDNA_GH first release
Version 1.0. First public release! All test cases and unit tests passed.
v0.13
Outputs deeper data trees from multi-shape entries in shape files
input and output are no longer options, just function args, to avoid async problems when running mutliple sDNA components due to shared state
Referenced geometry can be plotted and written to shapefiles using a Guid (Id) parameter object.
Reads Shapefile Polygons as closed polylines