We are using the import DXF function to create a street network for our project. We need to be quite precise about how the street network is generated and so can't draw this directly in CityEngine.
There are some limitations to how this works that are making this workflow difficult. Hoping I'm missing something and you can help me.
This is the street network, drawn in AutoCAD:
All lines are flattened (Z=0), and trimmed (ends of lines meet exactly). I'm using DXF version 2007 (also 2004, with the same results).
I've played around with various import options (including different settings for 'Cleanup Graph'), and have found the following issues:
1 - Streets don't join other streets at acute angles.
2 - Not possible to join more than 2 lines together at a node. See below - a corner is formed from 2 of the lines in the CAD file, but not the other line running through it.
3 - Lines drawn perpendicular to one another - some join, some don't.
No join - not possible to fix this by dragging the node of the left road away and then rejoining with the street running up and down the image.
Join - drawn exactly the same way in CAD!
4 - Some streets intersect and create a node, some don't:
Correct intersection shown top left - incorrect bottom right. Again, these are drawn exactly the same way in CAD.
5 - Strange joins when lines meet arcs (shown in CAD vs. CityEngine)
This is really fundamental stuff that may end up making it impossible to work in CityEngine for this project, which would be a real shame!
Does anyone have any pointers on how to address the issues above?
Any help much appreciated.
I have also experienced some of these issues in the past, even though my workflow was to import from GIS.
I learned that you must have nodes/vertex in every line intersection and in all lines intersecting on your original drawing before importing. So if nodes don't exist you would need to create them artificially.
Hope this helps.
Thanks @plfontes -
That does make sense - I've tried doing some similar in AutoCAD, separating all lines that join at a node. I've also tried adding a 'point' in AutoCAD at the intersection.
Unfortunately in CityEngine I still get two overlapping streets - each with their own node, where I would want one node with 4 streets connected -
It doesn't seem possible to join the two nodes together - result below when I drag one of the nodes away from the other:
Any tips for this?
If you can send me the DWG/DXF via PM i can have a look.
Matt, I think you have identified several of the issues with intersections currently.
I look at this intersection you provided and I think of the manual interventions its going to take, and even then I don't know what to expect with the inside median or the diagonal connection on the right, until I start messing with it. So I've accepted that I might have some loss of precision for speed of modeling in these cases, and usually the city scale of the models helps to hide some of this depending on project context. And even if these streets were joined at import of the CAD, I would still expect a lot of tinkering with the nodes and arc directions to get this to look right, so sometimes it is just easier to draw these complex intersections incrementally controlling each node and arc.
I would certainly love to see some improvements to intersections in future updates!
In your last question/example though, you should be able to click on the orange dot and pull that to the connection location on to the other street (with a small loss in precision because it was done by hand). It might show a weird result before you let go of the mouse click but it usually works as expected, and sometimes it crashes the program. So I save very frequently during street edits.
thanks for providing me the file, I had a look:
As @plfontes pointed out:
you must have nodes/vertex in every line intersection and in all lines intersecting on your original drawing before importing
In AutoCAD you either have to do this manually or you have to write/find a LISP script that does this automatically for you.
Additionally, all lines that you want to be connected should be on the same layer, otherwise there will be a graph network created for each layer (you can't connect nodes from different graph networks together)
Arcs are converted to multiple segments (and not curves) on import. If you want have the street curved again you need to manually edit it.
I suggest to convert the arcs to polylines using the mpedit (Express Tools) command
Issue in 2nd post joining nodes together:
pretty sure this did not work for you because they where not part of the same graph network
To achieve best results/control on import:
As @Clover4 mentioned you will loose some precison in the manual cleanup process. Unfortuantely we don't have an intersection type that generates shapes which would work well with nodes close to each other, that's a current limitation for sure but its also not very trivial what geometry to generate in such cases.
*This applies to the example street layout from this thread, for other street layouts you might want to set other values
This is generally my experience with working with close up intersection nodes as well. Often the problem can be adjusted for by buffering draw lines in some GIS/CAD platform before import to see where those problem areas will likely occur before hand. It can often be accommodated by optimizing the data for import.