Latest revision |
Your text |
Line 289: |
Line 289: |
| | | |
| In this example, the parent cost item has a two nested child cost items. The first nested item has a total unit cost of 3 + 2 = 5, and a total quantity of 5. This gives a total cost of the nested child of 5 x 5 = 25. The second nested item has a total cost of 7. Therefore, the sum of all nested cost items is 25 + 7 = 32. | | In this example, the parent cost item has a two nested child cost items. The first nested item has a total unit cost of 3 + 2 = 5, and a total quantity of 5. This gives a total cost of the nested child of 5 x 5 = 25. The second nested item has a total cost of 7. Therefore, the sum of all nested cost items is 25 + 7 = 32. |
− |
| |
− | Source: IfcCostItem
| |
− |
| |
− | == The value of a cost item may be calculated from the sum of its nested cost items, filtered by a category ==
| |
− |
| |
− | <!--
| |
− | digraph {
| |
− | node [ shape=rect, color="lightblue" ];
| |
− | edge [ fontsize=10 ];
| |
− | IfcRelNests -> summary [label="RelatingObject"]
| |
− | IfcRelNests -> IfcCostItem [label="RelatedObjects[0]"]
| |
− | IfcRelNests [color="pink"]
| |
− |
| |
− | summary->costvalue [label="CostValues"]
| |
− | costvalue->sum [label="Category"]
| |
− | costvalue -> 15 [label="AppliedValue"]
| |
− | costvalue [ label="IfcCostValue"]
| |
− | summary[label="IfcCostItem"]
| |
− | sum [label="Delivery", shape=ellipse]
| |
− | 15 [shape=ellipse]
| |
− |
| |
− | IfcCostItem -> IfcCostValue [ label="CostValues[0]" ];
| |
− | IfcCostItem -> IfcCostValue2 [ label="CostValues[1]" ];
| |
− | IfcCostValue2 [label="IfcCostValue"]
| |
− | IfcCostValue -> 3 [label="AppliedValue"]
| |
− | IfcCostValue2 -> 2 [label="AppliedValue"]
| |
− | IfcCostValue -> Delivery [label="Category"]
| |
− | IfcCostValue2 -> Labour [label="Category"]
| |
− | 3 [shape=ellipse]
| |
− | 2 [shape=ellipse]
| |
− | Delivery [shape=ellipse]
| |
− | Labour [shape=ellipse]
| |
− | IfcCostItem -> IfcQuantityArea [label="CostQuantities"]
| |
− | IfcQuantityArea -> 5 [label=AreaValue]
| |
− | 5 [shape=ellipse]
| |
− |
| |
− | IfcRelNests -> secondcostitem [label="RelatedObjects[1]"]
| |
− | secondcostitem -> secondcostvalue [label="CostValues"]
| |
− | secondcostvalue -> 7
| |
− | 7 [shape=ellipse]
| |
− | secondcostvalue [label="IfcCostValue"]
| |
− | secondcostitem [label="IfcCostItem"]
| |
− | }
| |
− | -->
| |
− |
| |
− | [[File:Ifc-concept-cost-costitem-costvalue-category-filter.png]]
| |
− |
| |
− | This is very similar to the concept of using the special "*" category to sum the total cost of all nested cost items. However, the difference in that this time, we do not sum the total costs, we only sum the costs that relate to the category specified in the category attribute.
| |
− |
| |
− | In this example, the first nested cost item has a unit Delivery cost of 3, and a quantity of 5. We don't count the unit Labour cost because it does not match our filter of "Delivery". This gives a total cost of 3 x 5 = 15. The second nested cost item also does not have any cost values belonging to a "Delivery" category. Therefore the final sum of all nested cost items that meet the "Delivery" filter is 15.
| |
− |
| |
− | This means that if you have a "Category" filled out for a cost value, its value will always be derived if you have nested cost items. If you do not have any cost items, then you are free to fill in a value.
| |
− |
| |
− | Source: IfcCostItem
| |
− |
| |
− | == A cost value may be calculated from a formula ==
| |
− |
| |
− | <!--
| |
− | digraph {
| |
− | node [ shape=rect, color="lightblue" ];
| |
− | edge [ fontsize=10 ];
| |
− | IfcCostValue -> one [label="Components[0]"]
| |
− | IfcCostValue -> two [label="Components[1]"]
| |
− | IfcCostValue -> MULTIPLY [label="ArithmeticOperator"]
| |
− | one -> 2 [label=AppliedValue]
| |
− | two -> 3 [label=AppliedValue]
| |
− | one [label="IfcCostValue"]
| |
− | two [label="IfcCostValue"]
| |
− | 2 [shape=ellipse]
| |
− | 3 [shape=ellipse]
| |
− | MULTIPLY [shape=ellipse]
| |
− | IfcCostValue -> 6 [label="AppliedValue"]
| |
− | 6 [shape=ellipse]
| |
− | }
| |
− | -->
| |
− |
| |
− | [[File:Ifc-concept-cost-costitem-costvalue-components.png]]
| |
− |
| |
− | A cost value may be calculated from a formula, like "3 x 2". The operands of this formula ("3" and "2") are known as components. The operator of the formula ("x") is known as t he arithmetic operator. This may be nested, or use summing or category filters to create complex formulas to derive the cost value.
| |
| | | |
| Source: IfcCostItem | | Source: IfcCostItem |