💻 Rhino 5, Grasshopper
🔼 Grasshopper 0.9.0075
🛠️ C# Component
This view analysis component takes a user-specified visual plane, field of view angle, and distance limit to test for view obstruction from input meshes. The result is a returned percent of unobstructed views and a series of view cones with associated distances and angles that show the extent of visibility from a given location.
Beginning at Woods Bagot in 2011, this tool has been under about 5 years of on and off development, allowing for high-speed accurate analysis of view obstructions. The latest version, completed at Grimshaw Architects has been completely overhauled to maximize the efficiency of angle sorting via domain inclusion checking. Additional revisions will most likely be developed.
To increase accuracy and efficiency, view percentages are derived not through ray collision, but through mesh sectioning through the following process. The view plane intersects the contextual meshes and extracts polylines. The angle from these polylines control points are measured and the min and max angle points which describe the extent of the view occlusion are isolated and the distance to the point closest to the plane origin is extracted. These points' angles are then checked against the angle domains and their associated distances to cull out all points that are behind another domain. Then in simple terms, the resulting list of points is sorted via angle, creating the view cones.
The resulting outputs give a full report of the view occlusions returning an arc and two lines that geometrically describe each cone with one branch per cone, a sequential list of angles of the view cones in a tree format, a parallel list of distances, and the unitized percent of open views per the given view plane.