IfcConstraintResource模式提供了约束(IfcConstraint)的规范,这些约束可以应用于IfcObjectDefinition或IfcPropertyDefinition的子类型的任何对象(通过提供关系类ifcrelassocialesconstraint)。此外,可以将约束应用于特定的资源对象,例如IfcProperty(通过提供关系类ifcresourceconstraintreship)。
可以为约束设置等级,以确定它是硬约束(必须满足)、软约束(应该满足)还是简单的建议。
约束必须命名,并且可以选择具有一个或多个定义约束或从中获取约束的源。此外,可以选择地为约束指定创建参与者、创建日期和描述。
约束可以是定性的(客观的约束)或定量的(测量的约束或度量)。限定符可以应用于确定其应用目的的目标约束。它可用于定义可能违反建筑规范的约束值,或限制规范中可选择的值范围(例如,a值必须大于a但小于B)。通过枚举提供了几种可能的用途。
测量的约束或度量定义了约束的一个或多个实际值。可以根据设置约束意图的基准要求定义值,例如,基准是大于(>)还是小于(<)。可以根据通过选择机制可用的许多数据类型来定义约束的值。
类型
1 IfcBenchmarkEnum
2 IfcConstraintEnum
3 IfcLogicalOperatorEnum
4 IfcObjectiveEnum
5 IfcMetricValueSelect
实体
1 IfcConstraint
2 IfcMetric
3 IfcObjective
4 IfcReference
5 IfcResourceConstraintRelationship
Types
1 IfcBenchmarkEnum (基础枚举类型)
Enumeration definition
Constant | Description |
---|---|
GREATERTHAN | Identifies that a value must be greater than that set by the constraint. |
GREATERTHANOREQUALTO | Identifies that a value must be either greater than or equal to that set by the constraint. |
LESSTHAN | Identifies that a value must be less than that set by the constraint. |
LESSTHANOREQUALTO | Identifies that a value must be either less than or equal to that set by the constraint. |
EQUALTO | Identifies that a value must be equal to that set by the constraint. |
NOTEQUALTO | Identifies that a value must be not equal to that set by the constraint. |
INCLUDES | Identifies that an aggregation (set, list or table) must include the value (individual item) set by the constraint. |
NOTINCLUDES | Identifies that an aggregation (set, list or table) must not include the value (individual item) set by the constraint. |
INCLUDEDIN | Identifies that a value (individual item) must be included in the aggregation (set, list or table) set by the constraint. |
NOTINCLUDEDIN | Identifies that a value (individual item) must not be included in the aggregation (set, list or table) set by the constraint. |
2 IfcConstraintEnum (约束枚举类型)
Enumeration definition
Constant | Description |
---|---|
HARD | Qualifies a constraint such that it must be followed rigidly within or at the values set. |
SOFT | Qualifies a constraint such that it should be followed within or at the values set. |
ADVISORY | Qualifies a constraint such that it is advised that it is followed within or at the values set. |
USERDEFINED | A user-defined grade indicated by a separate attribute at the referencing entity. |
NOTDEFINED | Grade has not been specified. |
3 IfcLogicalOperatorEnum (逻辑运算符枚举类型)
Enumeration definition
Constant | Description |
---|---|
LOGICALAND | Defines a relationship between operands whereby the result is true if all operands are true, and false if at least one operand is false. |
LOGICALOR | Defines a relationship between operands whereby the result is true if at least one operand is true, and false if all operands are false. |
LOGICALXOR | Defines a relationship between operands whereby the result is true if exactly one operand is true (exclusive or). |
LOGICALNOTAND | Defines a relationship between operands whereby the result is true if at least one operand is false, and false if all operands are true. |
LOGICALNOTOR | Defines a relationship between operands whereby the result is true if all operands are false, and false if at least one operand is true. |
4 IfcObjectiveEnum (目标枚举类型)
Enumeration definition
Constant | Description |
---|---|
CODECOMPLIANCE | A constraint whose objective is to ensure satisfaction of a code compliance provision. |
CODEWAIVER | A constraint whose objective is to identify an agreement that code compliance requirements (the waiver) will not be enforced. |
DESIGNINTENT | A constraint whose objective is to ensure satisfaction of a design intent provision. |
EXTERNAL | A constraint whose objective is to synchronize data with an external source such as a file |
HEALTHANDSAFETY | A constraint whose objective is to ensure satisfaction of a health and safety provision. |
MERGECONFLICT | A constraint whose objective is to resolve a conflict such as merging data from multiple sources. |
MODELVIEW | A constraint whose objective is to ensure data conforms to a model view definition. |
PARAMETER | A constraint whose objective is to calculate a value based on other referenced values. |
REQUIREMENT | A constraint whose objective is to ensure satisfaction of a project requirement provision. |
SPECIFICATION | A constraint whose objective is to ensure satisfaction of a specification provision. |
TRIGGERCONDITION | A constraint whose objective is to indicate a limiting value beyond which the condition of an object requires a particular form of attention. |
USERDEFINED | |
NOTDEFINED |
5 IfcMetricValueSelect (度量值选择类型)
Enumeration definition
Constant | Description |
---|---|
IfcMeasureWithUnit | |
IfcTable | |
IfcTimeSeries | |
IfcAppliedValue | |
IfcValue | |
IfcReference |
Entities
1 IfcConstraint (约束实体)
IfcConstraint用于定义可应用于对象或特性值的约束、限制值或边界条件。
约束可以细分为用户定义的约束和系统定义的约束。用户定义的约束由用户应用,并且仅限于高级定义,如对象属性。系统定义的约束可以应用于任何对象属性,通常由应用程序定义以强制执行数据验证或参数化行为,并由应用程序强制执行,但不可由最终用户直接编辑。
IfcConstraint可以通过ifcreassociatessconstraint关系与IfcObjectDefinition或IfcPropertyDefinition的任何子类型关联以指示系统定义的约束,也可以通过IfcResourceConstraintRelationship与IfcResourceObjectSelect(如IfcPropertySingleValue)关联以指示用户定义的约束。
约束必须通过IfcConstraint.name属性应用名称,也可以通过IfcConstraint.description应用描述。必须通过IfcConstraint.constraint grade或IfcConstraint.UserDefinedGrade指定约束的等级(硬、软、建议),而可以选择通过IfcConstraint.constraint source、IfcConstraint.creating actor和IfcConstraint.CreationTime断言源、创建参与者和创建约束的时间。
约束还可以通过IfcExternalReferenceRelationship与之关联的其他外部信息(例如分类或文档信息),可以通过逆属性IfcConstraint.HasExternalReferences访问
Attribute definitions
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
1 | Name | IfcLabel | [1:1] | A human-readable name to be used for the constraint. | X |
2 | Description | IfcText | [0:1] | A human-readable description that may apply additional information about a constraint. | X |
3 | ConstraintGrade | IfcConstraintEnum | [1:1] | Enumeration that qualifies the type of constraint. | X |
4 | ConstraintSource | IfcLabel | [0:1] | Any source material, such as a code or standard, from which the constraint originated. | X |
5 | CreatingActor | IfcActorSelect | [0:1] | Person and/or organization that has created the constraint. | X |
6 | CreationTime | IfcDateTime | [0:1] | Time when information specifying the constraint instance was created. | X |
7 | UserDefinedGrade | IfcLabel | [0:1] | Allows for specification of user defined grade of the constraint beyond the enumeration values (hard, soft, advisory) provided by ConstraintGrade attribute of type IfcConstraintEnum. When a value is provided for attribute UserDefinedGrade in parallel the attribute ConstraintGrade shall have enumeration value USERDEFINED. | X |
HasExternalReferences | IfcExternalReferenceRelationship @RelatedResourceObjects |
S[0:?] | Reference to an external references, e.g. library, classification, or document information, that are associated to the constraint. | X | |
PropertiesForConstraint | IfcResourceConstraintRelationship @RelatingConstraint |
S[0:?] | Reference to the properties to which the constraint is applied. | X2 IfcMetric (度量实体) |
2 IfcMetric (度量实体)
IfcMetric用于捕获可应用于目标的量化结果度量。
IfcMetric是IfcConstraint的一个子类型,可以通过IfcControlExtension模式中的ifcreassociatesconstraint关系与IfcRoot的任何子类型关联,也可以通过IfcResourceConstraintRelationship与IfcProperty关联。
IfcMetric的目的是捕获约束的数量方面。
Attribute definitions
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
8 | Benchmark | IfcBenchmarkEnum | [1:1] | Enumeration that identifies the type of benchmark data. | X |
9 | ValueSource | IfcLabel | [0:1] | Reference source for data values. If DataValue refers to an IfcTable, this attribute identifies the relevent column identified by IfcTableColumn.Identifier. | X |
10 | DataValue | IfcMetricValueSelect | [0:1] | The value to be compared on associated objects. A null value indicates comparison to null. | X |
11 | ReferencePath | IfcReference | [0:1] | Optional path to an attribute to be constrained on associated objects. If provided, the metric may be validated by resolving the path to the current value on associated object(s), and comparing such value with DataValue according to the Benchmark. | X |
3 IfcObjective (目标实体)
IfcObjective捕获基于目标的约束的定性信息。
IfcObjective是IfcConstraint的一个子类型,可以通过IfcControlExtension模式中的IfcRelAssociatesConstraint关系与IfcRoot的任何子类型关联,也可以通过IfcResourceConstraintRelationship与IfcProperty关联。
IfcObjective的目标是指定应用约束的目的,并捕获约束的基准度量。
Attribute definitions
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
8 | BenchmarkValues | IfcConstraint | L[1:?] | A list of nested constraints. | X |
9 | LogicalAggregator | IfcLogicalOperatorEnum | [0:1] | Enumeration that identifies the logical type of aggregation for the benchmark metrics. | X |
10 | ObjectiveQualifier | IfcObjectiveEnum | [1:1] | Enumeration that qualifies the type of objective constraint. | X |
11 | UserDefinedQualifier | IfcLabel | [0:1] | A user defined value that qualifies the type of objective constraint when ObjectiveQualifier attribute of type IfcObjectiveEnum has value USERDEFINED. | X |
Formal Propositions
Rule | Description |
---|---|
WR21 | The attribute UserDefinedQualifier must be asserted when the value of the ObjectiveQualifier is set to USERDEFINED. |
4 IfcReference (参考实体)
此实体用于引用实例上属性的值。它可以引用标量属性的值或基于集合的属性中的值。引用的属性可以是直接值、对象引用、集合、反向对象引用和反向集合。可以链接引用以形成对象属性引用的路径。
Attribute definitions
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
1 | TypeIdentifier | IfcIdentifier | [0:1] | Optional identifier of the entity or type such as 'IfcMaterialLayerSet'. For entity, type, or select-based references within a collection, this resolves the reference to such type. If omitted, the type is assumed to be the same as the declared referencing attribute.
EXAMPLE IfcRelAssociatesMaterial.RelatingMaterial may be resolved to IfcMaterialLayerSet. |
X |
2 | AttributeIdentifier | IfcIdentifier | [0:1] | Optionally identifies a direct or inverse attribute within an entity such as 'MaterialLayers'. If TypeIdentifier is specified and refers to an entity, the attribute must exist within the referenced entity. A null value indicates a reference to the type or entity itself, such as for indicating that the type of a value must match a specified constraint. | X |
3 | InstanceName | IfcLabel | [0:1] | Optionally identifies an instance within a collection according to name. If the instance has an attribute called 'Name', such attribute is used for comparison; otherwise the first STRING-based attribute of the entity is used.
EXAMPLE IfcRoot-based entities such as IfcPropertySet use the Name attribute; IfcRepresentation entities use the RepresentationIdentifier attribute. |
X |
4 | ListPositions | IfcInteger | L[1:?] | Optionally identifies an instance within a collection according to position starting at 1. For referencing single-level collections, this attribute contains a single member; for referencing multi-level collections, then this LIST attribute contains multiple members starting from the outer-most index. | X |
5 | InnerReference | IfcReference | [0:1] | Optional reference to an inner value for ENTITY, SELECT, SET, or LIST attributes. A path may be formed by linking IfcReference instances together.
EXAMPLE A material layer thickness may be referenced using several instances: #1=IFCREFERENCE($,'IfcSlab','HasAssociations',#2); #2=IFCREFERENCE($,'IfcMaterialLayerSet','MaterialLayers',#3); #3=IFCREFERENCE('Core','IfcMaterialLayer','LayerThickness',$); |
X |
5 IfcResourceConstraintRelationship (资源约束关系实体)
ifCresourceConstrainRelationship是一个关系实体,它允许约束与一个或多个资源级对象相关。
ifCresourceConstrainRelationship允许将约束的规范应用于许多实体类型。一个重要的例子是对属性应用约束。因此,所应用的约束使一个属性能够携带识别需求和识别满足这些需求的值。
Attribute definitions
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
3 | RelatingConstraint | IfcConstraint | [1:1] | The constraint that is to be related. | X |
4 | RelatedResourceObjects | IfcResourceObjectSelect | S[1:?] | The properties to which a constraint is to be related. | X |