<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <link rel="stylesheet" type="text/css" href="../../ifc-styles.css">

    <title>Revision Control</title>

  </head>

  <body>


<script language="JavaScript1.1" type="text/javascript">
<!--
    parent.index.location.replace("../toc-4.htm#4.1.2");
//-->
</script>

<h3 class="std">4.1.2 Revision Control</h3>
      <p class="std">

        While objects may reflect a final state, they may also be continually revised over the course of a project

        lifecycle and reflect transient state. For scenarios of multiple users making updates to the same information,

        there is a concept of local copies of information based upon a shared repository supporting multiple users.

        Such shared repository is often referred to as a <i>model server</i>. A model server is similar in concept to a

        document revision server, but is able to identify changes declared on a per-object basis rather than inferring

        changes from differences in text. A model server has a concept of revisions on a per-project basis, where each

        revision consists of a set of changes to contained objects by a particular user at a particular time.

      </p>

      <p class="std">

        To support a model server scenario, each object may be marked with a <i>change action</i> indicating the object

        was added, modified, deleted, or has no change since the project was retrieved from the server at a particular

        revision sequence. Given an object's identity (IFC-GUID) and change action, the state of the object may be

        merged when submitted to a model server. An object is considered modified when any of its <i>direct attributes</i> change, attributes on a referenced resource

        definition (any entity not deriving from <a href="../ifckernel/lexical/ifcroot.htm">IfcRoot</a>) change, items are added or removed from sets, or items

        are added, removed, or reordered within lists.

      </p>

      <p class="std">

        For cases when multiple users make conflicting changes to the same objects, users may choose to keep their own

        changes, accept changes from others, merge both changes, or a combination thereof upon submitting to a server.

        Alternatively, to avoid such merge scenario and coordinate work, objects may be locked such that a particular

        user has exclusive access to read and/or write a particular object at the current time.

      </p>

      <p class="std">

        Project libraries may also be retrieved from model servers having particular revision, and potentially

        different server URI than the referencing Project. As a project may include multiple revisions of the same

        project library (a common scenario when multiple users are involved using libraries revised by others), the

        IfcRoot.ObjectIdentifier IFC-GUID is only valid within the scope of the referencing project, and a separate

        <i>library reference</i> identifies a project library based object within its originating model server.

      </p>

      <p class="std">

        Finally, objects may also carry informational attributes indicating when an object was created, who, when, and

        what application was used to last modify an object, and who currently owns the object, potentially having

        exclusive use according to its lock state.

      </p>
<p>Figure 2 illustrates an instance diagram.</p>
<table><tr><td><img alt="Revision Control" src="diagrams/revision-control.png" usemap="#f2"><map name="f2"><area shape="rect" coords="8,8,176,68" href="../ifckernel/lexical/ifcroot.htm" alt="IfcRoot"><area shape="rect" coords="208,8,376,116" href="../ifcutilityresource/lexical/ifcownerhistory.htm" alt="IfcOwnerHistory"><area shape="rect" coords="408,8,576,56" href="../ifcactorresource/lexical/ifcpersonandorganization.htm" alt="IfcPersonAndOrganization"><area shape="rect" coords="608,8,776,128" href="../ifcactorresource/lexical/ifcperson.htm" alt="IfcPerson"><area shape="rect" coords="608,140,776,248" href="../ifcactorresource/lexical/ifcorganization.htm" alt="IfcOrganization"><area shape="rect" coords="408,68,576,128" href="../ifcutilityresource/lexical/ifcapplication.htm" alt="IfcApplication"><area shape="rect" coords="608,260,776,368" href="../ifcactorresource/lexical/ifcorganization.htm" alt="IfcOrganization"><area shape="rect" coords="408,140,576,152" href="../ifcutilityresource/lexical/ifcstateenum.htm" alt="IfcStateEnum"><area shape="rect" coords="408,164,576,176" href="../ifcutilityresource/lexical/ifcchangeactionenum.htm" alt="IfcChangeActionEnum"><area shape="rect" coords="408,188,576,200" href="../ifcdatetimeresource/lexical/ifctimestamp.htm" alt="IfcTimeStamp"></map></td></tr><tr><td><p class="figure">Figure 2 &mdash; Revision Control</p></td></tr></table>

<hr>
<h4>Electrical System Design</h4>
<p>This concept is used by entities for exchanges as shown.</p>
<table class="exchange">
<tr><td></td><td><a href="../views/electrical-system-design/facility-criteria.htm"><image width="16" src="../../img/mvd-facility-criteria.png" title="Facility Criteria"></image></a></td>
<td><a href="../views/electrical-system-design/discipline-specifications.htm"><image width="16" src="../../img/mvd-discipline-specifications.png" title="Discipline Specifications"></image></a></td>
<td><a href="../views/electrical-system-design/project-definition.htm"><image width="16" src="../../img/mvd-project-definition.png" title="Project Definition"></image></a></td>
<td><a href="../views/electrical-system-design/space-program.htm"><image width="16" src="../../img/mvd-space-program.png" title="Space Program"></image></a></td>
<td><a href="../views/electrical-system-design/product-program.htm"><image width="16" src="../../img/mvd-product-program.png" title="Product Program"></image></a></td>
<td><a href="../views/electrical-system-design/design-early.htm"><image width="16" src="../../img/mvd-design-early.png" title="Design Early"></image></a></td>
<td><a href="../views/electrical-system-design/system-layout.htm"><image width="16" src="../../img/mvd-system-layout.png" title="System Layout"></image></a></td>
<td><a href="../views/electrical-system-design/design-schematic.htm"><image width="16" src="../../img/mvd-design-schematic.png" title="Design Schematic"></image></a></td>
<td><a href="../views/electrical-system-design/product-type-template.htm"><image width="16" src="../../img/mvd-product-type-template.png" title="Product Type Template"></image></a></td>
<td><a href="../views/electrical-system-design/product-template.htm"><image width="16" src="../../img/mvd-product-template.png" title="Product Template"></image></a></td>
<td><a href="../views/electrical-system-design/product-type-selection.htm"><image width="16" src="../../img/mvd-product-type-selection.png" title="Product Type Selection"></image></a></td>
<td><a href="../views/electrical-system-design/system-operation.htm"><image width="16" src="../../img/mvd-system-operation.png" title="System Operation"></image></a></td>
<td><a href="../views/electrical-system-design/design-coordinated.htm"><image width="16" src="../../img/mvd-design-coordinated.png" title="Design Coordinated"></image></a></td>
</tr><tr><td><a href="../ifckernel/lexical/ifcproject.htm">IfcProject</a></td><td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
<td>O<br>O</td>
</tr>
</table>
<p><a href="../../link/revision-control.htm" target="_top"><img src="../../img/permlink.png" style="border: 0px" title="Link to this page" alt="Link to this page">&nbsp; Link to this page</a></p>
<p></p>
  </body>
</html>
