Corridor Workflow: Using profiles to control widths and more
Hi all,
I want to present and discuss a workflow I used on a new project. I have always been seeking a more intuitive and robust workflow for completing complex corridor projects.
This workflow uses profiles to control the widths of corridor assemblies and negates the need of external targeting offset alignments, polylines, or feature lines.
I decided to try this workflow on a specific project as the design had not been finalized. I was fearful that the road centreline could change drastically and moving many polylines / feature lines would have been too much work. I also found that working with offset alignments can be annoying whilst working on a previous project.
The workflow
I got the idea from another useful video by Jeff Bartels.
https://www.youtube.com/watch?v=W-f4Ep7TXyE
Here, he discusses using a custom subassembly which he calls a “NumberGenerator”. This custom subassembly allows another subassembly to be linked to a profile. i.e the width of a lane subassembly can be linked to a profile, so the profile controls the width of the lane.
I personally think “NumberGenerator” is a confusing name, I‘d call them “Profile Relays” as they relay the value of a profile.
Implementing the workflow
Anyway, I took this concept and used it to build a corridor that controls my road width, parking bays, footpath width and retaining wall heights.
The NumberGenerator subassemblies go in the assembly first, before the road, parking bay, footpath subassemblies. A subassembly can only target values of another subassembly that is upstream. i.e closer to the centre.
The road, parking bay and footpath subassembly are added, and their value (width) is overridden to the corresponding subassembly.
I then created copies of my road centreline alignment profile, reset the profile view datum to 0m and created a profile for each NumberGenerator
I then targeted these profiles in my corridor. Each NumberGenerator subassembly targets one profile, i.e ParkingWidth NumberGenerator targets Parking Width profile.
See screenshots at end of post.
Opinions of the workflow
Pros:
- Surprisingly stable – I have encountered no glitches with my corridor so far. Given that Civil 3D does not have to perform any spatial analysis (find polylines), instead the values are given as numbers from a profile.
- Adaptive design will follow centreline – it fulfils the main benefit of negating the need for offset alignments, polylines etc.
Cons:
- Long setup time – making the assembly, profiles and setting up all the targets takes a while.
- Skew widths of footpaths – a major and unfortunate limitation of corridor modelling in Civil 3D. A possible workaround would involve extracting a featureline from the back of the parking bay and using that as the baseline for the footpath assembly.
- Fiddly, trial and error workflow. Whilst the workflow adapts well to major changes in the centreline, making minor changes can be fiddly. A dual viewport and station tracking setup is a must.
- Confusing to colleagues – this unorthodox workflow may require explaining to colleagues. This might be unacceptable if many people need to work on the same project.
Conclusion
I hope one day to reach the golden hill of a perfect corridor modelling workflow. Given the increasing demands from our surveyors, a few years ago a centreline and contours would have been sufficient, now they demand 3D strings along the kerbs. I still worry that conventional corridor modelling is struggling to keep up. I think this workflow is a good step on my journey. The skew width problem and long setup time are real concerns though.
What do you think? Do you use a similar workflow? Do you have better suggestions?
I am happy to answer any questions.
Mike Kingdon
Civil 3D Zealot