DynamoWishlist icon indicating copy to clipboard operation
DynamoWishlist copied to clipboard

Improvement: Implement Lightweight geometry library

Open ThomasMahon opened this issue 8 years ago • 5 comments

Dynamo version

1.2.1

Operating system

Win 10

Improvement Suggestion

Would it be possible to implement the equivalent of GC's Lightweight DGeometry in Dynamo? Firstly, I'll explain what it is: a basic library of geometry - in fact the Revit API Xyz object is effectively the same thing - which doesn't implement all of the overheads (associations) that are typical with top-level features. For example, a Circle can be created using a number of methods: Point, plane and radius. In this example a top level Cricle stores all of these elements as properties, and each of these properties stores their own properties and so forth. The 'data-tree' therefore becomes complex and the feature itself becomes 'heavy' (as it uses more memory).

Lightweight geometry is the opposite; all features depend on a single world coordinate system XYZ(0,0,0) and as a result all of the aforementioned overheads are minimised. In GC a lightweight DEllipse3d has few creation methods, primarily vectors, points and sweep angles. These 'properties' reference the global coordinate system which therefore simplifies the data-tree hierarchy making it 'lightweight'. These features are geared towards advanced users working on projects with a large amount of data as they are not user-friendly and rely more on applied mathematics to operate.

In Dynamo I recently attempted to create a few 1000s points from an Excel spreadsheet and noticed it became unresponsive after about 20000 points were created. Using GC I got up to 100,000 using its Lightweight DGeometry library and it was still fully responsive. Implementing this type of functionality would make Dynamo far more versatile, particularly where large datasets or complex models are concerned.

This library could be a user-controlled feature, i.e. the same as T-splines, where the user has to turn it on, so as to not interfere with typical Dynamo usage by the vast majority of users.

ThomasMahon avatar Dec 20 '16 11:12 ThomasMahon