I’ve been reading that the Elk plugin for grasshopper uses an OSM file/OSM files to model a site’s topography and/or its buildings and streets.
I was wondering if I need to get this OSM file of wherever we are trying to model/map, or if the plugin has its own way of searching for and retrieving/downloading the OSM file for the desired location, akin to Sketchup’s geo location feature.
Also, any advice and tips on using Elk for creating a site model will be appreciated.
Hi @clonosis ,
In addition to @Dancergraham reply: Gismo has the same feature as the Sketchup one described: get the buildings, streets, terrain for a defined location and radius. No manual downloading of openstreetmap is required. Installation steps are here.
Everything are polysurfaces, which you can then convert to meshes if you need them (with Rhino’s Mesh command).
Follow the installation steps first.
Then use this example file (just change your location and radius, and turn on all the Grasshopper boolean toggles to ‘True’ in order to generate the 3D geometry).
If you already have a terrain, input it to the ‘groundTerrain_’ of the ‘OSM 3D’ component.
If you don’t have a terrain, and would like to generate one, use the ‘Terrain Generator’ component:
Nice! I would prefer everything to be polysurfaces. (unless the model gets too laggy, etc.)
Am I understanding this correctly that while Elk requires an external download of an OSM file of the site, the Gismo plugin searches and acquires the necessary location data on its own? Gismo still uses an OSM file/OSM data right?
Are the buildings correct in scale and height? Or are all the buildings generated in the same height?
I will try to follow installation steps and the example file and see how it goes. Would you be available for troubleshooting if necessary? What would be the best way to reach you?
Thank you @wim for the help with replies.
Yes, you don’t need to install Ghpython, as it is already shipped with Grasshopper.
Yes, that is correct.
If osm contains height of the building, it will be extruded by that specific height. If not, a number of stories information is searched, and the the height will correspond to the number of stories times the ‘heightPerLevel_’ input. If none of these two information exists, a random height will be generated based on the ‘randomHeightRange_’ input.
You can open a new topic on this forum, in case you have issues.
Oh… interesting…? I thought OSM data was supposed to have height information. In either Gismo or Elk (currently trying Gismo but getting errors), how would I get a 3d model/extrusion of a building then?
Djordje answer that question for Gismo. If the height is provided, it is used. If that is not available, but the number of floors is available, the component will multiply that with a value that you can specify. If neither is available, the component looks at the range that you provide.
Elk doesn’t have a component that does all that for you but you can check which information is available in the osm file for each building and then apply the logic yourself. Tim Stark has provided a graph that does all that: