Latest revision |
Your text |
Line 3: |
Line 3: |
| * IfcCostSchedule | | * IfcCostSchedule |
| * IfcCostItem | | * IfcCostItem |
− | * IfcCostValue
| |
| | | |
| == A cost schedule can exist == | | == A cost schedule can exist == |
Line 115: |
Line 114: |
| [[File:Ifc-concept-cost-costschedule-costitem.png]] | | [[File:Ifc-concept-cost-costschedule-costitem.png]] |
| | | |
− | Cost schedules can contain a single summary cost item. An IfcCostItem describes a cost or financial value together with descriptive information that describes its context in a form that enables it to be used within a cost schedule. An IfcCostItem can be used to represent the cost of goods and services, the execution of works by a process, lifecycle cost and more. This summary cost item may then be broken down further into more cost items, but only one summary cost item is allowed. | + | Cost schedules can contain multiple cost items. An IfcCostItem describes a cost or financial value together with descriptive information that describes its context in a form that enables it to be used within a cost schedule. An IfcCostItem can be used to represent the cost of goods and services, the execution of works by a process, lifecycle cost and more. |
| | | |
| Source: IfcCostSchedule | | Source: IfcCostSchedule |
− |
| |
− | == A cost item may be assigned a classification reference ==
| |
− |
| |
− | <!--
| |
− | digraph {
| |
− | node [ shape=rect, color=lightblue ];
| |
− | edge [ fontsize=10 ];
| |
− | IfcRelAssociatesClassification [color=pink]
| |
− | IfcRelAssociatesClassification -> IfcCostItem [ label="RelatedObjects" ];
| |
− | IfcRelAssociatesClassification -> IfcClassificationReference [ label="RelatingClassification" ];
| |
− | }
| |
− | -->
| |
− |
| |
− | [[File:Ifc-concept-cost-costitem-classification.png]]
| |
− |
| |
− | Cost items may relate to an external classification system, where a variety of identification codes are used extensively to identify the meaning of the cost. Examples include project phase codes, CSI codes, takeoff sequence numbers, and cost accounts.
| |
− |
| |
− | Source: IfcCostItem
| |
− |
| |
− | == A cost item may nest cost items ==
| |
− |
| |
− | <!--
| |
− | digraph {
| |
− | node [ shape=rect, color=lightblue ];
| |
− | edge [ fontsize=10 ];
| |
− |
| |
− | IfcRelNests [color=pink]
| |
− | IfcRelNests -> IfcCostItem [label="RelatingObject"]
| |
− | IfcRelNests -> subitem [label="RelatedObjects"]
| |
− | subitem [label="IfcCostItem"]
| |
− | }
| |
− | -->
| |
− |
| |
− | [[File:Ifc-concept-cost-costitem-nest.png]]
| |
− |
| |
− | A cost item may have cost items nested within it, typically forming the hierarchy or breakdown of a cost schedule.
| |
− |
| |
− | Source: IfcCostItem
| |
| | | |
| == A cost item may include arbitrary quantities == | | == A cost item may include arbitrary quantities == |
Line 213: |
Line 174: |
| | | |
| If a cost item has quantities, the cost value represents a unit cost of the cost item, which is "2" in this case. The total cost of the cost item is derived by multiplying the cost quantities and the unit cost, which is 3 x 2 = 6 in this example. | | If a cost item has quantities, the cost value represents a unit cost of the cost item, which is "2" in this case. The total cost of the cost item is derived by multiplying the cost quantities and the unit cost, which is 3 x 2 = 6 in this example. |
− |
| |
− | Source: IfcCostItem
| |
− |
| |
− | == The value of a cost item may be broken down into categories ==
| |
− |
| |
− | <!--
| |
− | digraph {
| |
− | node [ shape=rect, color="lightblue" ];
| |
− | edge [ fontsize=10 ];
| |
− | 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]
| |
− | }
| |
− | -->
| |
− |
| |
− | [[File:Ifc-concept-cost-costitem-costvalue-category.png]]
| |
− |
| |
− | Cost values may be categorised to understand the cost breakdown. Example categories are delivery, labour, installation, overhead, material, storage, transportation, and more.
| |
− |
| |
− | Source: IfcCostItem, IfcCostValue
| |
− |
| |
− | == The value of a cost item may be calculated from the sum of its nested cost items ==
| |
− |
| |
− | <!--
| |
− | 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 -> 32 [label="AppliedValue"]
| |
− | costvalue [ label="IfcCostValue"]
| |
− | summary[label="IfcCostItem"]
| |
− | sum [label="*", shape=ellipse]
| |
− | 32 [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-sum.png]]
| |
− |
| |
− | When the cost value has a special category of "*", this means that its value is calculated from the sum of the costs of all nested cost items.
| |
− |
| |
− | 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 |