OpenBridge Modeler

编辑超高规则文件

编辑 XML 格式的超高规则文件。

您可以通过以下方式访问此工具:

  • 功能区:廊道 > 超高 > 计算拆分按钮

XML 超高

超高计算器使用 XML 格式的规则文件来计算超高的各方面值。这些文件可以计算线形的每条曲线的最大 E 率,以及将路基从标准路拱横坡旋转到全超高横坡(最大 E)所需的过渡长度。以下章节描述了 XML 文件的架构及其工作原理。

工作原理

如果用户选择 RateTable,则将通过查看速率表中存在的 DesignSpeedRateTable 填充设计速度。如果用户选择 RateEquation,则将使用等式下面速度集合中的速度元素填充设计速度选项。速度不必是简单的数值。例如,Michigan 标准的速度为 "60 Urban" 和 "Loop"。

如果用户要使用速度表执行过渡计算,则必须为每个可能的速度定义一个 TransitionTable。TransitionEquation 可以使用速度作为变量,也可用不使用。

用户完成选择且代码开始处理后,如果在 XML 文件中定义了任何 UserVariable,则会弹出一个对话框,允许用户更改这些值中的任何/全部。

然后代码开始处理每条曲线。处理了曲线的最大 E 率和过渡长度后,代码即会检查 XML 文件是否有任何 CustomKeyStation。如果是这样,它将予以处理。CustomKeyStation 允许添加超高桩号附加项(请参阅 MTO 1% 横坡要求),或调整标准超高关键桩号(请参阅 AR DOT 或 SC DOT)。注意:会为曲线条目 (NC - FS) 编写自定义关键桩号的等式。曲线出口过渡计算会自动镜像。

一旦对任何关键桩号进行了调整,代码即会查找 TransitionOverlapOption,并查看是否应对计算的桩号进行任何其他调整。

编写等式

编写等式时,有 3 种类型的变量可用。全局变量是由系统定义的或在处理期间计算的变量。局部变量在 XML 文件中的不同位置定义,并且可以标识为“可变”元素。这些变量用于 xml 文件的等式中,且在运行时用户无法对其进行更改。用户变量也在 XML 文件中定义。用户可以在运行时设置/更改这些变量,无需修改 XML 文件。它们在 XML 文件的 "UserVariables" 集合中定义。

下面是全局变量列表:

  • MaxE 计算的全局变量:
    • Radius - 曲线的半径
    • Speed - 设计速度
    • InitialCrossSlope - 标准路拱横坡
    • NRotatedLanes - 从旋转轴旋转的车道数
    • PivotType - 0 - 路拱,1 - 内侧,2 - 外侧,3 - 左侧,4 - 右侧,5 - 划分的内侧
    • WidthLane - 平均车道宽度
  • 可用于过渡计算的全局变量 - 包括以上所有变量加上:(请注意,标准桩号已计算,但可在此处更改)
    • TransitionLength - 计算的过渡长度值
    • HasSpiral - 如果存在缓和曲线,则为 "true",否则为 false
    • StartOfSpiral - 缓和曲线起点的桩号
    • SpiralLength - 缓和曲线的长度
    • StartOfArc - 弧(曲线)起点的桩号
    • NCRadius - E 率计算为标准路拱横坡处的半径(最大半径)
    • RunoutStation - 计算的过渡起点
    • RunoffStation - 计算的零横坡位置
    • ReverseCrownStation - 计算的反向路拱桩号
    • FullSuperStation - 计算的全超高位置
  • 用于过渡碰撞(重叠)的全局变量 - 尚未在 XML 中定义或编码:
    • OutLength - 退出第一条曲线的过渡长度
    • OutFullSuper - 第一条曲线全超高桩号
    • OutRunoffStation - 第一条曲线零横坡位置
    • OutRunoutStation - 第一条曲线标准路拱位置
    • InLength - 进入第二条曲线的过渡长度
    • InRunoutStation - 第二条曲线标准路拱位置
    • InRunoffStation - 第二条曲线零横坡位置
    • InFullSuperStation - 第二条曲线全超高桩号
  • 以下数学函数也可用在等式中:
    • ABS, ACOS, ASIN, ATAN, CEILING, COS, COSH, FLOOR, LOOKUP, LOG, LOG10, MAX, MIN, MOD, ROUND, SIGN, SIN, SINH, SQRT, TAN, TANH, TRUNCATE

    它们的数学值:FALSE, INFINITY, PI, TRUE

    数学运算符:+、-、/、*、^ - 幂运算符、%

    等式还支持以下形式的逻辑表达式:

    "IF(logical expression)? execute if true : execute if false"

    例如:equation="if(altDel == 0.0 and AltSuper == 0.0) ? Delta : altDel"

    逻辑表达式也可以嵌套,因此另一个 IF 语句可以位于 true 和/或 false 执行语句内。

    对于逻辑表达式,可以使用以下条件运算符:

    <, <=, =, ==, >=, >, <>。在编写 XML 时需要注意,因为 "<" 和 ">" 是特殊字符,所以在原始 xml 中必须编写为 "&lt;" 和 "&gt;"。一些 xml 编辑器会为用户执行转换操作。

    逻辑运算符:IF, AND, OR, NOT

    有关如何使用等式的示例,请参阅示例 XML 文件。

XML 文件的主要元素

本部分介绍用于自定义计算的超高 XML 方案的顶级元素

  1. 单位 - 必需

    定义计算和输出的单位。

    属性:

    • length – 必需 - 描述用户使用的单位。有效值为(“米”、“英尺”、“美国测量英尺”)
    • stationRoundingValue – 可选 - 如果存在此值,则所有计算的桩号值都将四舍五入到此值。例如,如果值为 0.2,则桩号 10+23.48 将四舍五入到 10+23.4
    • crossSlopeRoundingValue – 可选 - 如果存在此值,则所有横坡值都将四舍五入到此值。例如,crossSlopeRounding 值 0.01 会将横坡 2.3456% 四舍五入到 2.35%
  2. DefaultSettings – 可选

    从廊道和 XML 输入文件创建超高时,这些设置用于设置超高选项(Apply Superelevation 命令的输入),这是一个自动过程。

    属性:

    • eSelection – 可选 - 将此值设置为要使用的 RateTable 或 RateEquation 的名称。无效值将导致使用列表中的第一个 RateTable/RateEquation。
    • lSelection – 可选 - 将此值设置为 "Speed Table" 可使用过渡表。否则,将其设置为特定的过渡公式名称。无效值将导致使用列表中的第一项 (TranisitonTable/TransitionEqution)。
    • designSpeed – 必需 - 输入有效的设计速度 (MPH/KPH)。
    • pivotMethod – 必需 - 此时有效值为:“Crown”、“Inside Edge”、“Outside Edge”、“Left Edge”、“Right Edge”、“Divided Inside”或“Centerline”。如果在未划分的路面上使用“Divided Inside”,则将与使用“Crown”的情况相同。如果输入了无效值,则“Crown”将作为缺省值。“Centerline”始终使用基线线形半径计算 eRate。所有其他方法都使用半径 +/- 旋转轴的偏移来计算 eRate。
  3. UserVariables - 可选集合

    它们变量可以在运行时由用户设置。支持以下类型。字符串、整数、小数和布尔值。字符串和整数可以有组合框列表(SelectionValue 元素)。整数和小数可以有最小和最大范围。如果变量名匹配 TransitionOption 或 RunoutOption 特性名,则会将该选项特性向用户公开。

    这些元素的原因是允许代理锁定这些 XML 文件,以使它们无法编辑,但仍允许用户进行有限访问以更改值,或在超高创建过程中控制计算。

  4. MaximumERateCalculations - 必需

    RateTable 和/或 RateEquation 的集合用于计算给定曲线半径的最大横坡。必须至少有一个 RateTable 或 RateEquation。

  5. TransitionCalculations - 必需

    TransitionTable 和/或 TransitionEquation 的集合用于计算径流(ZeroCrossSlope 到 FullSuper)长度。必须至少有一个 TranstionTable 或 TransitionEquation。

  6. TransitionOptions - 必需

    这些设置用于控制如何计算 ERate 和过渡的值。它们通常由设计机构的标准设置,但如果设计机构希望允许用户更改其中一个或多个值,则它们仍可以通过 UserVariable 公开给用户。

    属性:
    • interpolateTables – 可选 - 如果为 true,则将内插所有 eRate 和过渡表。否则,eRate 和过渡长度值会较高。缺省值为 true。
    • percentTransitionOnTangent – 必需 – 不在曲线上的过渡的百分比。限值 0% - 100% (0.0 – 1.0)
    • useSpiralLength – 可选 - 如果为 true,则只要存在缓和曲线,即会将其用作过渡长度,而非计算的过渡。在这种情况下,将忽略 percentTransitionOnTangent 值。缺省值为 true。
    • lengthsAreTotalTransition – 可选 - 如果为 true,则表长度将从标准路拱至全超高(径流 + 偏转长度)。如果省略,则缺省值为 false。
    • transitionType – 可选 - 当横坡斜率有更改时,图中过渡的类型。允许的类型包括:
      • 直线 - 顶点处无过渡,所有分段都是直线
      • 抛物线 - 在每个顶点处创建抛物线过渡。抛物线的长度由 nonLinearCurveLength 的值以及最短相邻线段中的较短者确定。
      • 反向抛物线 - 在标准路拱点和全超高点(整个过渡)之间拟合反向抛物线。
      • 反向四次曲线 - 与反向抛物线相同,但等式不同
      • 反向三次曲线 - " "
      • 反向非对称抛物线 1 - 将比率 ?? 用于过渡抛物线长度的起点/终点
      • 反向非对称抛物线 2 - 将比率 ?? 用于过渡抛物线长度的起点/终点
      • 反向对称抛物线 ??

        如果未指定过渡类型,则缺省值为“直线”。

    • nonLinearCurveLength – 可选 - 抛物线过渡的最大长度。如果给定长度超过点任一侧的切线长度,则此长度将减小。缺省值为 0。
    • startInsideLaneRotationWithOutside – 可选 - 如果此标记设置为 true,则内侧车道将在外侧车道开始旋转的位置开始旋转(早期启动),而不是在外侧车道上的反向路拱点开始。
  7. RunourOptions - 可选

    通过匹配超高过渡径流段的过渡段坡度确定标准偏转。这些值是对相应计算的简单替代。如果需要更复杂的功能,则使用 CustomKeyStation。

    属性:

    • isFixedLength - 如果为 true,则将 length 特性将用作偏转长度。
    • length - 偏转的长度。
  8. CustomKeyStations - 可选

    CustomKeyStation 或者是为超高计算的标准过渡桩号的替代,或者是要添加到车道的附加桩号。如果关键桩号的类型是标准类型(NormalCrown、ZeroCrossSlope、ReverseCrown 或 FullSuper)之一,则它将替换标准关键桩号。如果类型为自定义,则系统会将其添加到车道中。

    属性:

    • description - 这些自定义关键桩号的用途说明。
    • criteria - 对于要计算的 CustomKeyStation 必需评估为 True 的逻辑表达式。
  9. TransitionOverlaps - 可选

    当从一条曲线退出的过渡与下一条曲线的开始过渡重叠时,这些选项用于修复碰撞。包含 ReverseCurveAdjustmentOption 和 CurveCurveAdjustmentOption 元素的列表。

其他 XML 元素
  1. UserVariable - 可选,未绑定

    这是一个可在运行时由用户编辑的变量。布尔类型显示为复选框。小数类型显示为字符串输入字段(将验证输入)。字符串和整数将显示为字符串输入字段,或者如果定义了一个或多个选择值,则将显示一个组合框。

    UserVariable 可用于将 TransitionOption 或 RunoutOption 公开给用户以进行编辑,并允许等式访问该变量。为此,只需将 UserVariable 的名称特性设置为要公开的选项的名称。将忽略 UserVariable 的所有其他特性。例如,要公开 TransitionOptions->percentTransitionOnTangent,则设置 UserVariable name=”percentTransitionOnTangent”。该模式还要求设置类型和值特性(但会忽略它们),并会为用户提供一个字段,用于输入 0 和 1 之间的数。

    可在 MI DOT 和 SC DOT 示例 xml 文件中查看 UserVariable 的示例。

    属性:
    • name - 必需 - 变量名 - 不能包含空格或特殊字符。
    • type – 必需 - 变量的类型(“字符串”、“整数”、“小数”或“布尔”)。
    • value – 必需 – 变量的缺省(起始)值。
    • description – 可选 – 显示在日志文件中。
    • minimumValue – 可选 – 仅用于小数和整数类型。限制用户的输入。
    • maximumValue – 可选 – 仅用于小数和整数类型。限制用户的输入。
  2. RateTable – 可选,未绑定

    用于根据 designSpeed 和曲线的半径获取最大 E 率。每个允许的设计速度都有一个子表 (DesignSpeedRateTable)。

  3. RateEquation - 可选,未绑定

    用于计算特定曲线的最大横坡的等式(最大 ERate)。

  4. TransitionTable
  5. TransitionEquation
  6. 变量

    变量用于生成在等式中使用的中间值。变量本身可以由等式或表定义。如果使用表,则使用 inputVariableName 获取输出值。如果输入变量是数字,则将根据 interpolationType(useLowerBound、linearInterpolation、useUpperBound)内插输出值。否则,输入变量值必须与 TableEntry 的 inputValue 之一完全匹配。

  7. CustomKeyStation
  8. TransitionOverlapOptions

    当一条曲线上过渡的终点之间的距离重叠,或太接近下一条曲线上过渡的起点时,将使用这些选项。如果某类型(反向曲线或曲线)有一个以上的选项,则代码将使用具有大于实际间隙的最小 minimumTransitionGap 的选项。例如,如果实际间隙为 0,且一个选项的 mTG 为 50,另一选项的 mTG 为 100,则它将应用 mTG 为 50 的选项。

    属性:
    • minimumTransitionGap - 任何小于此数量的实际间隙都将导致系统调用此选项(上文所述的多个选项的情况除外)
    • adjustmentType - 将要执行的调整的类型
      • PlanarTransition - 使道路保持从全超高到全超高的恒定平坦状态。
      • ReverseCrownTransition(仅 CurveCurveAdjustmentOption)- 将向下过渡到反向路拱,然后向上返回到全超高(保持道路平坦,但减少曲线之间的边坡)。
      • ShortenTransitions - 过渡将缩短,直到达到 minimumTransitionGap。保持全超高点。缩短与过渡长度成正比。
      • SlideTranstions - 每条曲线的整个过渡将更多地移动到曲线中,直到达到 minimumTransitionGap。过渡长度保持不变。

新建 XML 命令

  1. 创建超高 XML

    用于创建新的 XML 文件或编辑现有文件。将根据方案验证任何文件。配置变量 "CIVIL_XML_SUPERELEVATION_SCHEMA" 必须在 superelevation.xsd 文件中设置为点,验证才能生效。

    键入命令 - "geometry superelevation xml edit"

    XML 文件的提示,但如果将其留空,则将播种新的 XML 文件。

    直接单击以继续。对话框的叶子对应于 xml 文件的顶级元素。
    • 普通叶子

      用于设置长度单位(尚未实施精度)和 Apply Superelevation 命令的缺省值。

    • 速率计算

      用于通过导入 SEP 或 SUP 文件和速率等式创建速率表。AASHTO Method 5 已经准备就绪,可以进行创建,但用户也可以选择在这里创建自己的等式,或者在创建后直接将其添加到 xml 文件中。请注意,此编辑器将对比方案验证 xml 文件,并验证等式的语法。

    • 过渡计算

      工作原理与“速率计算”叶子相同。

    • 变径选项

      允许用户在 XML 文件中设置偏转和过渡选项。

    • 自定义关键桩号

      用户可以输入描述和条件,然后添加关键桩号。

    • 用户变量

      允许用户定义 UserVariable。

    • 编辑等式

      用户在编辑器中创建/编辑等式字符串时,他们可以使用“插入”按钮插入数学运算符、逻辑运算符或全局变量,或者也可以键入它们。

  2. 打开超高模型

    用于在 MSTN 视图中直接打开可编辑的超高图。

    键入命令:几何超高打开视图或从水平线形的浮动任务栏中进行选择

    提示用户选择平面线形,然后选择视图以在其中打开模型。

    用户可以使用操纵器直接编辑图表。