Greetings-
I am creating a model for an urban highway using InRoads XM and MicroStation XM, but I need some suggestions on how best to proceed:
My model will contain three types of curb that each have a fixed distance for the vertical gutter depression from the lip of curb. However, when the road is superelevated such that the curb is on the high side of the road, the gutter depression is supposed to go away and the gutterpan is supposed to match the slope of the road. To that end, I created a curb with two components: a high and a regular. The high component contains an uncontrained null point called CL, and the high component uses a slope-vector offset to make sure the gutterpan slope matches the slope from CL to the lip. I then used a component display rule to dislay one or the other, based on the vertical difference between the lip and CL. I am able to move CL in the template and see the difference.
What I plan to do is add the curb to my template, and constrain the null CL points to follow the centerline of the road, thus making my gutter slope appropriately.
Here, though, a difficulty creeps in, and it's the basis of my question. Since the back of curb is always a fixed distance above the flowline of the curb, and the curb flowline will vary based upon the superelevation, then I will have two possible back of curbs - high or low side - that differ in elevation. It looks like I will now need two end conditions for my curb: one for the high side, and one for the low side. It'd be the same end condition applied to both the high and low side, with each EC set as a child of the specific curb compnent. Thus, the CDR for the high/low side curb will control which curb displays, and the parent/child relationship for the curb will determine the end condition display, thus allowing only one of them to solve.
And that would be for *each side* of the road. And I have three types of curb that do that.
My question is: is this the best way to go about it? Having two end conditions exactly the same seems kind of silly, and my solution also involves a combination of CDRs and P-C relationships determining which outside end condition will solve. I don't want to do anything which might be technically okay with the software, but not considered "best practice".
Any input is appreciated... thanks!
I gave this a shot using sequential shoulder rollover locks rather than template CDR's and it seemed to work well. I'm assuming the gutter is v-shaped and has a foreslope and a backslope. The bottom of the curb is then placed at the top of the gutter backslope.
First, run the superelevation wizard to apply super to just your travel lanes
Next, apply a shoulder rollover lock to the gutter foreslope - high side difference is 0%, low side difference is infinity
Next, apply a shoulder rollover lock to the gutter backslope - this time it's reversed. High side difference is infinity and low side difference is 0%.
Once these rollover locks are in place, then you just have to worry about switching curb types and you seem to have a handle on that.
Hmmm.... I have never used the shoulder rollover locks before. However, this sounds like a cleaner solution than my question about CDRs and parent/child ECs.
The gutter and curb are actually all one unit - so only the gutter foreslope will need to have the lock applied. The gutter backslope is the curb itself, and it's always constant - it changes depending on the type of curb used.
I think I will go the shoulder rollover lock route.
Thanks!
That section makes more sense, doesn't it? Definitely go with the rollover lock approach.
You can still use CDR's for switching between curb types - set the curb types based on the horizontal offset to a null point, and then use parametric constraints to change that offset as you go along the road:
For example: Null point offset = 5: barrier curb, 10: mountable, 15: standard, etc.
It's a little cumbersome but saves you from needing multiple templates.