I could still use some help on this… Maybe I’m not entirely understanding how the color range works… I’ve extracted the minimum values from the distance from point to geometry in an effort to assign it a color range based on how close each individual UV point is relative to the closest furniture object, but it still is only drawing the heatmap based on a single object. What am I missing here? Any help would be greatly appreciated.
I’ve done something similar using a combination of Dynamo & QGIS
Mainly because the cluster heatmap graphics and colour ramps are built into QGIS- so it is very quick/easy
This number drops to 100, or more specifically the (# of points on the UV grid) * (# of furniture elements). I was hoping pulling the minimum of the list would give each UV point 1 value that could then be applied to a range and then have colors applied.
This looks interesting and potentially doable. I do not have any QGIS knowledge, would I be able to show this heatmap overlaid on a floor plan or would that have to be imaged and then composted?
Your list structure is still a little messy at Surface.PointAtParameter. I think the surface you’re using is a list so you have an extra level which may or may not be causing some problems. You also have to keep in mind that cross-product is going to give you a list of sublists, which is going to give you another level when checking DistanceTo.
Geometry.DistanceTo is giving you the wrong list structure for your surface UVs. Use list levels instead. You’re also using the values from all your locations rather than the minimums when you map your values and get the colors.
And just FYI, I usually find it easier to use the points themselves rather than trying to map to a surface because you can just flatten the list of points and ignore any list structure or order.
Yes, I think it is doable.
It’s a similar issue to generating it in Dynamo- the choice is basically vector information (such as coloured geometry) or raster (an image). It could be a numberic representation like this:
Out of interest, how would you get this to work on two surfaces or on an ‘L’ shaped surface.
I had a play with it last night but with two surfaces it gave them both the same amount of dots so the smaller one was at a much higher resolution.
With the L shape it filled in the gap to make a rectangle.
My method: Place a single isocurve on the U and V parameter.
Get the length of the V curve, and offset the U curve by a range of 0 .. lengthOfVCurve .. #lengthOfVCurve/resolutionSpacing;
Intersect the curves with the surface, this will trim out any part of them which doesn’t hit on the surface.
Use a points at parameter method to space the points along the line leveraging the resolution spacing again.
you guys are fantastic. i have taken your map and modifed it to try to simulate WIFI/WLAN coverage in my building.
Its getting close, but i am still missing the ability to show the “BEST” coverage where each Access Point is located as you can see in my image.
I have used the Layers as you mentioned, but still not working correctly. Any ideas how i can fix it ?
Ideally, i’d like to use absorption parameters in each wall Type to simulate the REAL coverage between rooms and vertical floors etc based on the distance away from each access point… but now i’m dreaming