Project how much of a view of a specific element is visible to a surface?

Hi,

I am trying to work out what area of a surface (representing the glassline of a building) would be able to see the harbour.

Basically could i project the red surface (representing the harbour) to the face of the green building, and see which context buildings would be blocking the view?

Hello- you can place a point at the viewing location and loft the boundary curve of the red thing to the point. If you Intersect the resulting object with other objects in the scene that might obscure the view, the resulti9ng curves should tell you something useful. If you do both opwerations with Historyr recording enabled, you can move the point around andf have the iloft and intersections update. You can hide or put on an off layer the loft itself so it does not get in the way.

HarborView.3dm (148.1 KB)

-Pascal

Thanks for getting back to me Pascal, and for uploading the example file.

Would this be able to be achieved using Grasshopper? And then highlight the result area on the suurface of the apartment that has a view?

Hi James - yes, I see no reason it could not be done in Grasshopper. The intersection curves on say the windows of the apartment you are looking from will be what you want - in my example file the curves on the other ‘buildings’ are what would obscure the view from that location, but you can intersect whjatever you care about of course - . If you want to know the state of say a window as a whole, make your loft to the outline curve of the window glass. Does that help at all? I am not sure I am grokking the entire problem you need to solve.

Here is an example of what I think you may be after.
HarborView.3dm (248.7 KB)
HarborView.gh (10.4 KB)

-Pascal

Hi Pascal,

Thank you for sending that over. That is useful, and a good visualisation tool.

I guess what I am really after is a way to caluculate a percentage of the face of massing that could see the harbour. I am doing a early massing study and want to know which parts of the building can see a certain object (in this case the harbour). Ideally I would want it to show a certain colour for can see the harbour, and a different colour for areas that cannot see the harbour, and then be able to quanitify that and get a % split.

The other thing that comes to mind is to make a harbor sized and shaped hole in a giant plane and shine a parallel light through it at your building.

-Pascal

visibility from facade
viewFromFacade.gh (39.0 KB)

Hi,

What qualifies as “seeing the harbour”? That metric would likely determine the method used to get the calculations you want.

Anyways, besides the excellent ways already suggested, a method that may give you results that are more directly quantifiable as the numerical split you need would be to:

  1. Place a grid of points on your facade, with each grid point representing a single viewpoint from the building (eg, at each window)
  2. Separately place a grid of points covering the object to be viewed
  3. Generate rays from each viewpoint to all the gridpoints on the viewed object
  4. Check how many rays from each viewpoint are obstructed
  5. Use that value to quantify the visibility from the viewpoint

very similar approach to the nice one @daniMunthali just posted, using MeshRay to speed up things a little bit

ths divides the initial surface into x*y rectangular cells, and evaluate view-rays going from the center of each cell into the very same 1000 random points distributed inside the final curve
then counts how many of those rays have hit an obstacle, and colours the original split-cell depending on that value

be aware that the gradient depends on the bounds of the results, so it will show green-to-red colors even with a 99% occluded facade (here, establishing a method for determining what is a “good view” would very much help, expecially if you are evaluating several different options)

view_eval.gh (140.0 KB)

1 Like