algorithmic modeling for Rhino
Hi Mostapha et al
I need to do a view analysis from a floorplate to a specific building but am having some issues.
Geometry - I have offset the finished floor surface 1650mm to be at eye level.
Context - I have a mesh of the geometry to analysis. This is a city model.
View points - These are the vertices of the Sydney Harbour Bridge mesh.
The problem is that I cannot use a surface as the input to '_geometry'. What I need is to have a surface which isn't self-occluding. If I extrude the surface to create a brep, the top surface will be coloured accurately, while the the bottom surface will be blocked and all shown 0. Controlling the normal of the surface and meshing it doesn't work because sometimes the view points will be above and other times below. Basically the '_geometry' isn't really geometry but a series of eye positions. Is that clear?
Any ideas how to solve? View type doesn't really help because I want to focus on just one building (Sydney Harbour Bridge) rather than the entire city context geometry.
Tags:
Replies are closed for this discussion.
Paul,
This is something that I had been struggling with as well when I was adding in different viewTypes to this component a couple of months ago. Some of the viewTypes go hand-in-hand with having the geometry blocking the view (like skyView) but many others do not. While I originally thought that I should just set different "geometry blocking" values based on viewType, your post here has convinced me that this really needs to be exposed as an input on the component. As such I just added in the ability to change whether the _geometry blocks the view or not:
I also changed the default for the viewPoints analysis to not have the _geometry block the view since this is usually what I want to do as well.
See attached file for the new component.
-Chris
Paul,
Writing a small script with native GH components to cull vertices to just one side is one way to do it. Turning the geometry into a 2D surface (like the example in my last post) is another. Personally, I find myself using the following method a lot: I just take the highest value of the view study (typically around 50%) and use it to re-scale all of the results. I can then use the recolor mesh component to have the results display with the correct legend like so:
The meshing of the brep happens with just a few lines of code inside Ladybug_Ladybug:
import Rhino as rc
aspectRatio = 1
meshParam = rc.Geometry.MeshingParameters.Default
rc.Geometry.MeshingParameters.MaximumEdgeLength.__set__(meshParam, (gridSize))
rc.Geometry.MeshingParameters.MinimumEdgeLength.__set__(meshParam, (gridSize))
rc.Geometry.MeshingParameters.GridAspectRatio.__set__(meshParam, aspectRatio)
mesh = rc.Geometry.Mesh.CreateFromBrep(inputBrep, meshParam)
You should be able to get the same functionality with native grasshopper components by using the "Custom Mesh Settings" component like so:
Hope this helps,
-Chris
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2025 Created by Scott Davidson.
Powered by