Grasshopper

algorithmic modeling for Rhino

Hi

I am trying to isolate any unobstructed surfaces within a certain distance from a given point. This is to represent a 500m visible radius from a standing viewpoint.

In cases where the surface is partially unobstructed, I would like to split these from the original surface at the points where they become obstructed, or rebuild only the unobstructed portion of them.

So far I have gotten to the point of getting unobstructed points on the obstacle surfaces, but am not sure how to separate them into lists per obstacle.

I am fairly new to grasshopper so I apologise for lack of technical term!  Any help is greatly appreciated.

Views: 5425

Attachments:

Replies to This Discussion

Beautiful work sir!  (but the red group is missing from the code attached here; looks the same to me as the post you deleted?  No need for it though, I can see the data structure just fine - thanks again)

And the Code to Match the Screen Capture in the post above with the Red Group.

Attachments:

Thank you so much, and for making it as clear as possible. I will keep on going with it. Will need to read up a lot on understanding trees and sets to be able to ask any more valid questions!

Hello again Matt,

I've been studying your code and have to say that what's going on in this area (purple blob) is AMAZING!!!  Masterful use of data tree/path manipulation.  I never would have thought of using 'Param Viewer' output the way you have here.  Brilliant and SO COOL!

New (to me) tools for extracting meaningful order from data where I could see the pattern I wanted but didn't know how to get at it.  Thanks again, this is GREAT GH code.

P.S.  Two of the buildings from the original post are missing from your recent code - not a code problem, they just aren't included in the internalized Brep parameter.

Glad your finding the code useful beyond the original question topic.

I reason there are 2 buildings missing from the original set was I took them out and made them Meshes. To see if it worked with a list of both Brep's and meshes plugged into the Geo Parameter at the start of the code. As this used a plug-in to explode the meshes. I left it out out the simple code i posted.

Thanks Matt and Joseph, this is all very helpful for me in the process of learning GH and I really appreciate it!

I originally started out using the isovist component, but as I plan for the obstacles to actually be positioned on a sloping surface (landscape) I then tried to figure it out in 3D.

Am trying to use the 3D isovist definition but can't figure out how to input my breps as obstacles for the mesh ray (I am probably thinking about it incorrectly) so I'll continue looking at it thank you! but am now thinking perhaps 2D is as far I can handle for now.

The isovist only seems to cull out rays that pass through more than one obstacle when the faces output is flattened (left).

When I continue anyway without flattening to find the outermost points on each obstacle (I am thinking they will define the boundary of visible surface), I assumed the 11 lists corresponded to each obstacle, so I thought to find the first and last index of each list. However, all the points with index 0 seem to fall within only one of them and I'm not sure why.

Attachments:

I had fun hacking away to get as close as I got to solving this but it would have been good for you to mention the 'Isovist' component at the beginning!  I would have spent my time interpreting its results, which appear to be similar to what I got once they are filtered and sorted using the 'Distance (D)' and 'Index (I)' outputs - but maybe not by each face of each obstacle, like I got?

Apologies, I disregarded it earlier as for some reason I didn't expect recreating a 3D version to be as complex as it is becoming clear it is. I think this will be an ongoing project for me for a while. Thank you for sticking with it as far as you did and giving me lots to look over! 

Check these out, if you haven't already found a way to get a 3d isovist!

Attachments:

'Pt' param is not internalized in obstructions.gh but that is easly fixed.

'IVRay' looks very handy - same as 'IVist' except you supply the "rays" instead of the component generating them itself?  Could work well for 3D but is there any advantage for 2D?  Looks like you got only the points, not correlated to buildings and surfaces?

obstructions_3d.gh requires Weaverbird?  Too bad.

Nice work, Not considered IVRay was thinking to much on solving it in 2D. You have given me some more ideas on how to set selected view 3D isovist.

Interesting way to get all the outputs required using a little bit of a different code logic to me.

Yeah, using 'IVRay' makes locating the points in 3D extremely easy!  Good grief, the time and effort squandered just because I didn't know about these components...  (Angie, please don't tell me you knew about 'IVRay' too?)

This isn't all neat and tidy by surface and building like Matt's latest but wow, so easy!

Actually, if you unflatten the 'Line (Ln)' output feeding 'IVRay', the points _ARE_ structured by building and surface!?

(no Weaverbird)

Attachments:

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service