|
Revit公式中的条件语句
可以在公式中使用条件语句,来定义族中取决于其他参数的状态的操作。使用条件语句,软件会根据是否满足指定条件来输入参数值。在某些情况下,条件语句是很有用的;但是,它们会使族变得更复杂,应仅在必要时使用。
对于大多数类型参数,条件语句是不必要的, 因为类型参数本身就像一个条件语句:如果这是类型,则将该参数设置为指定值。实例参数更适合用于条件语句,尤其是用于设置不连续变化的参数。
条件语句的语法
条件语句使用以下结构: IF (<条件>, <条件为真时的结果>, <条件为假时的结果>)
这表示输入的参数值取决于是满足条件(真)还是不满足条件(假)。如果条件为真,则软件会返回条件为真时的值。如果条件为假,则软件会返回条件为假时的值。
条件语句可以包含数值、数字参数名和 Yes/No 参数。在条件中可使用下列比较符号:<、>、=。还可以在条件语句中使用布尔运算符:AND、OR、NOT。当前不支持 <= 和 >=。要表达这种比较符号,可以使用逻辑值 NOT。例如,a<=b 可输入为 NOT(a>b)。
下面是使用条件语句的公式示例。
简单的 IF 语句: =IF (Length < 3000mm, 200mm, 300mm)
带有文字参数的 IF 语句:=IF (Length > 35', “String1”, “String2”)
带有逻辑 AND 的 IF 语句:=IF ( AND (x = 1 , y = 2), 8 , 3 )
带有逻辑 OR 的 IF 语句: =IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )
嵌套的 IF 语句:=IF ( Length < 35' , 2' 6" , IF ( Length < 45' , 3' , IF ( Length < 55' , 5' , 8' ) ) )
带有 Yes/No 条件的 IF 语句:=Length > 40(请注意,条件和结果都是隐含的。)
使用条件语句的示例
公式中条件语句的典型使用包括计算阵列值以及根据参数值控制图元的可见性。例如,可以将条件语句用于下列情况:
防止阵列参数使用小于 2 的值。
在 Revit 中,阵列的值必须是大于或等于 2 的整数。在一些情况下,这对于创建保持阵列参数为 2(即使计算值为 1 或 0) 的条件公式是很有用的。使用这样的公式,如果计算的阵列值等于或大于 2,则公式将保留该值。但是,如果计算值为 1 或 0,则公式将把该值修改为 2。
公式: Array number = IF (Arrayparam < 2, 2, Arrayparam)
仅当窗灯光的数目大于 1 时,窗格条才可见。
例如,如果有一个要用于控制窗格条几何图形的可见性的 Lights 参数,则可以创建类似于 MuntinVis 的 Yes/No 参数,并将其指定到窗格条几何图形的“图元属性”对话框中的“可见”参数。因为 MuntinVis 参数是 Yes/No(或布尔)运算,条件 (IF) 和结果都是隐含的。在该实例中,当满足条件时(真),将选中 MuntinVis 参数值,且窗格条几何图形是可见的。反之,当不满足条件时(假),将清除 MuntinVis 参数,且窗格条几何图形是不可见的。
公式: MuntinVis = Lights > 1
公式和单位
可在以下数据类型中运算公式:
带有单位的数字
布尔值(是/否)
字符串(文字)
当使用公式来计算尺寸标注时,若单位发生错误,其原因通常是用户未遵循运算所要求的规则。
示例
对于相加,输入和结果必须具有相同的数字单位类型。
乘可支持任何数字单位类型的输入(不一定是同一类型)。 但是,结果必须是输入单位的积。 例如:长度 * 面积 = 体积。
sin( ) 需要输入一个角度,并且输出是一个数字,无单位类型。
if() 需要的第一个参数是“布尔”。其他参数和结果可以是任意的数据类型(数字、布尔、文字),但它们都必须是相同的数据类型。
Revit 使用基础的物理尺寸标准(“时间”、“长度”、“体量”、“温度”等)。 尺寸标注分析独立于表示或度量基础物理尺寸的单位(秒、米、千克、摄氏度等)。
公式和常数
尺寸标注错误的另一个来源是公式中的数字常数解释。
如果公式中包括参数名称或带有明确单位的数字常数(如 5 kg),那么 Revit 明确知道表达式的单位。 但是,软件还允许您输入一个不带单位的数字(如 5)。 在这种情况下,Revit 会猜测数字的单位,从而使单位在公式中匹配。 此问题即为在公式中添加 *1 或 /1 这一常用技巧的原因所在。
最佳的做法是在公式中为每个常数指定单位。
示例
您希望公式的结果是长度。 输入 3 * 3。当再次编辑公式时,可以看到 Revit 会猜测其中的一个数字为长度,并注释为 3' * 3。
您希望公式的结果是长度。 如果输入 3 * 3 kg/3,将得到单位不一致的错误。 但是,3' * 3 kg/3 仍会提供所需的结果,这是因为 Revit 猜测最后一个常数是为 kg。 此公式还使用了混合单位(英制和公制),所以当编辑公式时,还可以看到 Revit 将其更改为项目单位:3' * 6.614 lbm/3 lbm。
常数单位
以下单位可用于常数公式中。 此列表并不完整,但包含了最常用的单位类型。
提示若要为角度和温度使用度,首先输入弧度 (rad) 或开氏温标 (K),然后重新编辑公式。 如果将度符号设置为角度或温度的项目单位,那么 Revit 会用其来替换这些单位。
美国常用单位 |
|