Itoo Software Forum

Author Topic: Placing trees using GIS data  (Read 2147 times)

MarkP

  • Newbie
  • *
  • Posts: 3
Placing trees using GIS data
« on: October 14, 2013, 11:54:19 PM »
Hi,
I have been trying to figure out what the best way is to place trees using GIS information. After some trial and error I have come up with a few ways to do it but I keep telling myself "there has to be a better way!". The GIS data consists of (autocad) tree blocks that represent individual trees and polyline outlines for tree areas. The tree areas aren't a problem, its the individual trees that I am trying to figure out. (100k+ individual trees)

Methods I have tried:
1. converting the tree blocks to short line segments in autocad, importing, assigning the short segments in FP as an area, setting the "thickness (open splines)" to something small and then try to adjust the settings to get trees to show up for each segment. This method kind of works, but it doesn't guarantee that a tree will be placed for each segment. The performance also takes a hit since the density needs to be turned up and collisions needs to be on.

2. converting the tree blocks to point helpers and creating trees using the tree editor>reference objects to place a tree at each point helper. The file size was huge when i did this (a file with just point helpers, no FP objects), and 3ds is barely usable.

3. creating a line between each point and then using the tree editor>creation tools>along path>in vertex position to place a tree at vertex of the lines. This works but it is a big mess of lines and is clumsy.

4. creating a surface in Civil 3D out of the tree points, importing into 3ds, and using tree editor>reference objects>face centers. This method seems the best and is also the fastest, but the trees are placed at the center of each face instead of at each vertex where I want them. I debated trying to generate a surface that would have the face centers at the points I actually want trees at, but I have no idea how I would accomplish this.

Is it possible to place a tree at each vertex of a surface instead of face center? This seems like it would be the best option if it is possible but I haven't come across anything on how to do this.

any help/suggestions are appreciated. thanks

iToo

  • Administrator
  • Hero Member
  • *****
  • Posts: 4388
    • iToo Software
Re: Placing trees using GIS data
« Reply #1 on: October 15, 2013, 09:36:10 AM »
Hi, i think options 2 and 4 are the best, but perhaps with some changes:

2. Create the helpers in a separate Max scene, use them to create the Forest object and next delete them (they are not longer needed). Next, import Forest in your main scene.

4. If you would create a triangular face for each tree point (i don't know it this is possible in Civil 3D), then the face center should match with the original reference point. If the triangles are not equilateral, you would scale them in Max, until getting a tiny face.
Carlos Quintero
iToo Software

MN4869

  • Jr. Member
  • **
  • Posts: 79
Re: Placing trees using GIS data
« Reply #2 on: October 18, 2013, 04:34:12 AM »
Would your GIS package give you an AutoCAD block rather than duplicating line entities?

Perhaps you could create a triangular 3D face, align to one of the blocks. Right click the block "edit in place", delete the line work, add the triangular mesh. Then see whether you can get that into Max and do what you want.

Or will GIS package create a tiny equalatural triangle for each tree? And I mean super small.

Then only use these triangles to define your TIN surface. You can then set the surface's maximum triangle length to whatever is needed to delete all but the tiny triangle parts of the surface.

Maybe somewhere along those lines will help. I'd be keen to hear how you get on.

MarkP

  • Newbie
  • *
  • Posts: 3
Re: Placing trees using GIS data
« Reply #3 on: October 18, 2013, 04:59:30 PM »
Thanks for the replies.

MN4869 - I know exactly what you are getting at with the small triangle idea. I haven't taken the time to really test your idea since I have come up with my own that seems to work well.

iToo -
Quote
...and next delete them (they are not longer needed).
This was Key! Also unchecking the Tree Editor>Reference Objects>Delete Existing Items, checkbox.

I decided a variation of #2 is the best solution for me.

My steps start to finish.
1. export dwg from microstation dgn file ("GIS" file)
2. open autocad
  • isolate blocks and create autocad points (not civil 3d points!) via lisp routine. http://www.cadtutor.net/forum/archive/index.php/t-37799.html (the Lee Mac version)
  • If the project is huge, grid out the autocad points to different layers to make importing into 3ds manageable. (it seems like 3ds and the FP menu doesnt like more than 30k-ish point helpers at a time)
3. in 3ds
  • import the dwg and select the Include>Points, to import the autocad points. Select 1 grid area (layer) to import.
  • After the points are loaded, create a Forest Object>Custom Edit and then tree editor>reference objects to place a tree at each point helper. After FP adds the tree points, delete the point helpers. (fast file again!)
  • repeat with the next grid area, except this time when you use tree editor>reference objects, uncheck the Tree Editor>Reference Objects>Delete Existing Items, checkbox. This will keep the previous points that were added to FP.

When its all said and done you should have trees at each point helper location and you can use FP for tree variation, etc.

One other thing, if you create trees with only 1 tree loaded in the geometry menu and then you add addition additional trees for variation, the trees will all stay the same. Tree Editor>sub-object level edit>select all and then Tree Editor>Properties(selection)>Randomize, to fix it.

Feature Request- Tree Editor>Creation tools>Reference Objects>Distribute> Vertices

Notes:
I originally did this using method 1 and the 3ds load time, translation time, and render times were horrible. The file was 800mb (only the trees and existing surfaces!)
The new way reduced the file size down to 130mb and decreased load times and render times substantially. The attached rendering took 9 minutes.

thanks!