Editing IFC - Industry Foundation Classes/IFC concepts/IFC cost concepts

From Wiki.OSArch

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

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

Please note that all contributions to Wiki.OSArch are considered to be released under the Creative Commons Attribution-ShareAlike (see Wiki.OSArch:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)