Log In   View a printable version of the current page.
Associate Document (FP)
Added by Brendan McFarlane, last edited by Brendan McFarlane on Oct 05, 2006  (view change)
Labels: 
(None)


Associate Document (FP)

Overview

This functional part provides a detailed description of the approaches that may be used in the association of a document to one or more objects or the referencing a stored document by name and location by one or more objects.

Concept: Specify a document

IFC is concerned with identifying information about a document and not the specific content of the document itself. This is the document metadata. This concept describes the metadata that must, should or may be specified for a document and describes how documents may be related to each other to enable identification of:

  • multi-part documents
  • replacement documents
  • document chains

In addition, the concept shows how as well as the document metadata, the document reference may also be specified as in 'Specify a document reference'.

Concept: Specify a document reference

As an alternative to identifying document metadata, IFC also allows for documents to be referenced by name and location. This concept describes how document references should be specified and how more specific references to parts of a document may be set.

Concept: Associate a document

IFC enables documents to be associated with objects so that whatever qualifying, guidance or instruction information is given in the document can be located. This concept describes how documents should be associated with objects.

A document may be associated either with objects that are subtypes of IfcRoot or with objects that define applied values such as a cost value or an environmental impact value.

The subtypes of IfcRoot to which a document can be associated include the various subtypes of IfcObject (project, actors, physical items or products, groups, controls, resources and processes) and property definitions including property sets. Documents may not be associated with relationships; this is controlled by a WHERE rule in the EXPRESS schema.

Where the association of a document is to a set of objects, the set may contain objects of any allowable entity type. There is no requirement for all objects to be occurrences of the same entity.

Results

The association of a document with an object or set of objects is defined.

Description Entity/Pset/Functional Part MAN REC OPT
Concept: Specify a document        
Set the document information        
An identifier that uniquely identifies the document must be asserted.
This may be a globally unique identifier determined according to the algorithm used generally in IFC or any other unique identifier.
Note that if a document already has an assigned unique identifier determined at its source or by its creator or owner then that identifier may be used to satisfy the attribute.
IfcDocumentInformation.DocumentId -> IfcIdentifier    
A name must be asserted for the document.
This will generally be the title in the case of a significant document or the heading in the case of a smaller document.
IfcDocumentInformation.Name -> IfcLabel    
A description may be given for the document to provide further information about its content.
This can be particularly useful for documents whose name is a cryptic reference. Although it is shown as optional in this functional part, it is suggested that users should take advantage of its provision to give further information.
IfcDocumentInformation.Description -> IfcText    
The purpose of the document should be asserted.
The purpose identifies the role that the document fulfils. This may be a value such as 'Standard', 'Legislation', 'Design Code' etc. or a more detailed textual description of purpose.
It is recommended that an agreed list of document purposes should be defined by the user for use as values of this attribute.
IfcDocumentInformation.Purpose -> IfcText    
The intended use of the document may be given.
This can be used to further qualify the purpose.
IfcDocumentInformation.IntendedUse -> IfcText    
The scope of the document may be given.
A scope statement may be used to qualify what the document is, and is not, intended to cover.
IfcDocumentInformation.Scope -> IfcText    
The creation time of the original version of the document may be given.
Note that the creation time may be specified by date (year only or more explicitly by year and/or month and/or day) or time or both.
IfcDocumentInformation.CreationTime -> fp_select_date_and_time    
The revision identifier for a document may be given if applicable.
Whilst a document may undergo several revisions, it may be relevant for an object to be associated only with the current document in which case only the document itself needs to be identified. However, where the document revision is significant, it should be asserted.
IfcDocumentInformation.Revision -> IfcLabel    
The date and time of the last revision may also be given.
Note that the last revision time may be specified by date (year only or more explicitly by year and/or month and/or day) or time or both.
Note also that the revision time may be asserted if, and only if, a revision identifier is asserted.
IfcDocumentInformation.LastRevisionTime -> fp_select_date_and_time    
The document owner may be asserted.
This is the person or organization having overall responsibility for the document and who carries out maintenance and revision.
IfcDocumentInformation.DocumentOwner -> fp_select_actor    
The identities of the document editors may be asserted.
This may be the editors of the last revision or a cumulative list of editors over the life of the document.
Note that it is possible to identify many editors for a document.
IfcDocumentInformation.Editors -> fp_select_actor    
The dates from which and to which the document if valid may be asserted.
These dates may be given together or individually; there is no requirement to assert one date with another.
Note that validity dates are specified using the date/time selection IfcCalendarDate  which may be year only or more explicitly by year and/or month and/or day).
Note that dates are checked for validity in terms of the days in a given month and for leap year within the EXPRESS version of the IFC schema.
IfcDocumentInformation.ValidFrom -> fp_select_date_time
IfcDocumentInformation.ValidUntil -> fp_select_date_time
Select IfcCalendarDate
YearComponent must be asserted
MonthComponent may be asserted
DayComponent may be asserted
   
A confidentiality level may be assigned to a document.
The value is selected from a predefined range. The range also allows for selection of a user defined confidentiality level. This value cannot be set in the current IFC release.
IfcDocumentInformation.Confidentiality -> IfcDocumentConfidentialityEnum    
The current status of a document may be defined.
The status value is selected from a predefined range.
IfcDocumentInformation.Status -> IfcDocumentStatusEnum    
For a particular document, as well as the document information being given, indirect reference to further documents may be given.
Refer to the concept 'Specify a document reference' for further information in required attributes for document references.
Note that a document may also be implicitly referenced by location information. See details for document referencing below.
Note also that more than one reference may be given for a particular set of document information. This may be relevant for copies of a document stored in multiple locations.
IfcDocumentInformation.DocumentReferences -> IfcDocumentReference    
If the document is stored in an electronic format, this should be asserted.
Note that if this value is asserted in the document information then a minimum of either the file extension or the MIME content type (below) must be also be asserted.
IfcDocumentInformation.ElectronicFormat -> IfcDocumentElectronicFormat    
The file extension may be asserted for a document stored in electronic format.
This may be any valid file extension.
Note that if document storage in electronic format is asserted then either this attribute or the MIMEContentType attribute must be asserted.
IfcDocumentElectronicFormat.FileExtension -> IfcLabel    
For a file type having published MIME type information (by the World Wide Web Consortium), the main MIME type may be asserted.
MIME types are published by the World Wide Web Consortium (W3C) and can be found by reference to their web site.
Note that if document storage in electronic format is asserted then either this attribute or the FileExtension attribute must be asserted.
IfcDocumentElectronicFormat.MimeContentType -> IfcLabel    
For a file type having a published MIME type the MIME subtype may be asserted.
MIME subtypes are published by the World Wide Web Consortium (W3C) and can be found by reference to their web site.
IfcDocumentElectronicFormat.MimeSubtype -> IfcLabel    
         
Define the relationship between document information
Where document information is given, a document may be asserted as having a relationship with another document. For instance, where an associated document has appendices pub lished separately, a relationship may be declared between the associated document and the appendices
       
Assert the master document in the relationship
This is the document that is actually associated with an object.
IfcDocumentInformationRelationship.RelatingDocument -> IfcDocumentInformation    
Assert the subsequent document in the relationship.
Note that a relationship may identify several subsequent documents.
IfcDocumentInformationRelationship.RelatedDocuments -> IfcDocumentInformation    
The type of relationship between the master document and subsequent documents may be asserted.
Although optional in the IFC schema, it is recommended that it should be used to qualify the relationship.
Relationship types should be set by the user in the context of the document use e.g. where a document revision replaces a previous revision but information about the prior revision is to be retained.
IfcDocumentInformationRelationship.RelationshipType -> IfcLabel    
         
Concept: Specify a document reference        
Set the document reference        
The location of the document may be given.
This can be either human readable or computer interpretable. An electronic location is normally given as a web interpretable URL location string; however other ways of accessing external references may be established by agreement.
Note that for a document reference that is asserted for IfcDocumentInformation.DocumentReferences, each reference must assert the location.
If the document reference is associated indirectly, the IFC schema indicates that this attribute need not be asserted. However, it is strongly recommended that it is asserted.
IfcDocumentReference.Location    
An identifier for a specific item referenced within a document may be asserted.  
This identifier can provide an interpretable pointer into the document. Although the full definition within the IFC schema suggests that this is a computer interpretable pointer, it may alternatively be used as a human interpretable pointer for documents that are not stored electronically (such as a section, page of paragraph reference).
IfcDocumentReference.ItemReference    
A name may also be given to further specify the reference.
This can provide a human readable identifier for the document reference such as the document name.
For a  document reference is associated indirectly, this attribute must be asserted.
For a document reference that is asserted for IfcDocumentInformation.DocumentReferences, the IFC schema indicates that this attribute need not be asserted. However, it is strongly recommended that it is asserted.
IfcDocumentReference.Name    
         
Concept: Associate a document        
Select the concept to be associated
A document may be associated with an object or set of objects either directly by providing information about the document or indirectly by providing a reference to the document and its location.
Direct association uses the concept 'Specify a document'
Indirect association uses the concept 'Specify a document reference'
Concept: Specify a document
IfcDocumentSelect -> IfcDocumentInformation
Concept: Specify a document reference
IfcDocumentSelect -> IfcDocumentReference
   
         
For objects that are subtypes of IfcRoot
Set the relationship for the object(s) to which the document is to be associated.
Note that the object(s) need not all be of the same entity type.
A WHERE rule on the entity IfcRelAssociates prevents the association of a document to a relationship. Therefore, the object(s) must be subtypes of either IfcObject or IfcPropertyDefinition.
Note that IfcObject and IfcPropertyDefinition are implied in this functional part.
It is assumed that the object(s) will exist prior to associating the document. Therefore their attributes capturing unique identifier, owner history, name and description will already have been asserted.
IfcRelAssociatesDocument.RelatedObjects -> IfcRoot <subtypes>    
If a document reference is selected:        
Set the relationship for the document reference that is to be associated. IfcRelAssociatesDocument.RelatingDocument -> IfcDocumentReference    
If a document is selected:        
Set the relationship for the document that is to be associated. IfcRelAssociatesDocument.RelatingDocument -> IfcDocumentInformation    
         
For objects that are subtypes of IfcAppliedValue
Set the relationship for the cost value(s) or environmental impact value(s) to which the document is to be associated.
Note that in this relationship, the objects with which the document is associated must be either all instances of IfcCostValue or all instances of IfcEnvironmentalImpactValue. Cost values and environmental impact values should not be mixed in the same set of related objects.
IfcReferencesValueDocument.ReferencingValues -> IfcAppliedValue
Where the subtype of IfcAppliedValue must be one of:
IfcCostValue
IfcEnvironmentalImpactValue
   
If a document reference is selected:        
Set the relationship for the document reference that is to be associated. IfcReferencesValueDocument.ReferencedDocument -> IfcDocumentReference    
If a document is selected:        
Set the relationship for the document that is to be associated. IfcReferencesValueDocument.ReferencedDocument -> IfcDocumentInformation    
A name may be asserted for relationship if required. IfcReferencesValueDocument.Name -> IfcLabel    
A description may be asserted for relationship if required. IfcReferencesValueDocument.Description -> IfcText    
  • IFC Entities Required
    • IfcAppliedValue
    • IfcDocumentElectronicFormat
    • IfcDocumentInformation
    • IfcDocumentInformationRelationship
    • IfcDocumentReference
    • IfcExternalReference
    • IfcReferencesValueDocument
    • IfcRelationship
    • IfcRelAssociates
    • IfcRelAssociatesDocument
    • IfcRoot
  • IFC Datatypes Required
    • IfcDocumentConfidentialityEnum
    • IfcDocumentSelect
    • IfcDocumentStatusEnum
    • IfcGloballyUniqueId
    • IfcIdentifier
    • IfcLabel
    • IfcText
  • IFC Functions Required
    • -
  • IDM Functional Parts Required
    • fp_apply_owner_history
    • fp_select_actor
    • fp_select_date_and_time

EXPRESS-G Schema

EXPRESS Schema

SCHEMA FP_ASSOCIATE_DOCUMENT;

  TYPE IfcGloballyUniqueId = STRING (22) FIXED;
  END_TYPE;

  TYPE IfcIdentifier = STRING;
  END_TYPE;

  TYPE IfcLabel = STRING;
  END_TYPE;

  TYPE IfcText = STRING;
  END_TYPE;

  TYPE IfcDocumentConfidentialityEnum = ENUMERATION OF
    (PUBLIC,
     RESTRICTED,
     CONFIDENTIAL,
     PERSONAL,
     USERDEFINED,
     NOTDEFINED);
  END_TYPE;

  TYPE IfcDocumentStatusEnum = ENUMERATION OF
    (DRAFT,
     FINALDRAFT,
     FINAL,
     REVISION,
     NOTDEFINED);
  END_TYPE;

  TYPE IfcDocumentSelect = SELECT
    (IfcDocumentReference,
     IfcDocumentInformation);
  END_TYPE;

  ENTITY IfcExternalReference
    ABSTRACT SUPERTYPE;
      Location      : OPTIONAL IfcLabel;
      ItemReference : OPTIONAL IfcIdentifier;
      Name          : OPTIONAL IfcLabel;
    WHERE
      WR1 : EXISTS(ItemReference) OR EXISTS(Location) OR EXISTS(Name);
  END_ENTITY;

  ENTITY IfcDocumentReference
    SUBTYPE OF(IfcExternalReference);
    INVERSE
      ReferenceToDocument : SET [0:1] OF IfcDocumentInformation FOR DocumentReferences;
    WHERE
      WR1 : EXISTS(Name) XOR EXISTS(ReferenceToDocument[1]);
  END_ENTITY;

  ENTITY IfcDocumentInformation;
      DocumentId         : IfcIdentifier;
      Name               : IfcLabel;
      Description        : OPTIONAL IfcText;
      DocumentReferences : OPTIONAL SET [1:?] OF IfcDocumentReference;
      Purpose            : OPTIONAL IfcText;
      IntendedUse        : OPTIONAL IfcText;
      Scope              : OPTIONAL IfcText;
      Revision           : OPTIONAL IfcLabel;
      DocumentOwner      : OPTIONAL fp_select_actor;
      Editors            : OPTIONAL SET [1:?] OF fp_select_actor;
      CreationTime       : OPTIONAL fp_select_date_and_time;
      LastRevisionTime   : OPTIONAL fp_select_date_and_time;
      ElectronicFormat   : OPTIONAL IfcDocumentElectronicFormat;
      ValidFrom          : OPTIONAL fp_select_date_and_time;
      ValidUntil         : OPTIONAL fp_select_date_and_time;
      Confidentiality    : OPTIONAL IfcDocumentConfidentialityEnum;
      Status             : OPTIONAL IfcDocumentStatusEnum;
    INVERSE
      IsPointedTo        : SET OF IfcDocumentInformationRelationship FOR RelatedDocuments;
      IsPointer          : SET [0:1] OF IfcDocumentInformationRelationship FOR RelatingDocument;
  END_ENTITY;

  ENTITY IfcDocumentElectronicFormat;
      FileExtension   : OPTIONAL IfcLabel;
      MimeContentType : OPTIONAL IfcLabel;
      MimeSubtype     : OPTIONAL IfcLabel;
    WHERE
      WR1 : EXISTS(FileExtension) OR EXISTS(MimeContentType);
  END_ENTITY;

  ENTITY IfcDocumentInformationRelationship;
      RelatingDocument : IfcDocumentInformation;
      RelatedDocuments : SET [1:?] OF IfcDocumentInformation;
      RelationshipType : OPTIONAL IfcLabel;
  END_ENTITY;

  ENTITY IfcRoot
    ABSTRACT SUPERTYPE;
      GlobalId     : IfcGloballyUniqueId;
      OwnerHistory : fp_apply_owner_history;
      Name         : OPTIONAL IfcLabel;
      Description  : OPTIONAL IfcText;
    UNIQUE
      UR1 : GlobalId;
  END_ENTITY;

  ENTITY IfcRelationship
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcRoot);
  END_ENTITY;

  ENTITY IfcRelAssociates
    SUBTYPE OF(IfcRelationship);
      RelatedObjects : SET [1:?] OF IfcRoot;
    WHERE
      WR1 : SIZEOF(QUERY(temp <* RelatedObjects |
            NOT(('IFC2X2_FINAL.IFCOBJECT' IN TYPEOF(temp)) 
            OR ('IFC2X2_FINAL.IFCPROPERTYDEFINITION' IN TYPEOF(temp)))
            )) = 0;
  END_ENTITY;

  ENTITY IfcRelAssociatesDocument
    SUBTYPE OF(IfcRelAssociates);
      RelatingDocument : IfcDocumentSelect;
  END_ENTITY;

  ENTITY IfcAppliedValue
    ABSTRACT SUPERTYPE;
    INVERSE
      ValuesReferenced : SET OF IfcReferencesValueDocument FOR ReferencingValues;
    WHERE
      WR1 : EXISTS (AppliedValue) OR 
            EXISTS (ValueOfComponents);
  END_ENTITY;

  ENTITY IfcReferencesValueDocument;
      ReferencedDocument : IfcDocumentSelect;
      ReferencingValues  : SET [1:?] OF IfcAppliedValue;
      Name               : OPTIONAL IfcLabel;
      Description        : OPTIONAL IfcText;
  END_ENTITY;

  ENTITY fp_apply_owner_history;
  END_ENTITY;

  ENTITY fp_select_actor;
  END_ENTITY;

  ENTITY fp_select_date_and_time;
  END_ENTITY;

END_SCHEMA;

Examples of Associating Documents

Example 1: Associate a standard with a project

The following shows how a national standard that governs the manufacture and use of copper tubes may be applied generally to a project. The standard:

  • has the identifier 'BS EN 1057'
  • has the name 'Copper and copper alloys. Seamless, round copper tubes for water and gas in sanitary and heating applications'
  • has the purpose 'Standard for copper pipes used in domestic water services'
  • is owned by 'British Standards Institution' or 'BSI'
  • was last revised in '1996'.

Detailed information about the project is not specified. For the purpose of this example, it is sufficient to identify that a project exists.
Alternative associations for the document in this case are:

  • instances of IfcFlowSegment; every instance of IfcFlowSegment would have been included in the set of related objects.
  • instances of IfcFlowSegmentType; there would be one type instance for each size of copper tube used and there would have been several related objects in the set.

/* ownership information*/
#2=IFCOWNERHISTORY(...);

/* specifying the project */
#1=IFCPROJECT('abcdefghijklmnopqrst1',#2,'Tromso College','IFC Test Project',$,$,$,(#10),#11);

#10=IFCREPRESENTATIONCONTEXT(...);
#11=IFCUNITASSIGNMENT(...);

/* specifying the document */
#311=IFCDOCUMENTINFORMATION('BS EN 1057','Copper and copper alloys. 
Seamless, round copper tubes for water and gas in sanitary and heating 
applications',$,'Standard for copper pipes used in domestic water services',$,$,$,'BSI',$,$,#4003,$,#4004,$,.PUBLIC.,.REVISION.);

/* association of the document with the project */
#1000=IFCRELASSOCIATESDOCUMENT('abcdefghijklmnopqrst1000',#2,$,$,(#1),#311);

/* specify the revision and valid from dates */
#4003=IFCCALENDARDATE($,$,1996);
#4004=IFCCALENDARDATE(15,6,1996);

Example 2: Specify a Document Information Relationship

In this example, two appendices are locally defined by a company with the name 'MyCompany' for use in conjunction with BS EN 1057. Appendix A lists the sizes of tube that the company approve for use whilst Appendix B sets out acceptable jointing methods.

/* specifying the documents */
#311=IFCDOCUMENTINFORMATION('BS EN 1057',' Copper and copper alloys. Seamless, 
round copper tubes for water and gas in sanitary and heating applications',$,' 
Standard for copper pipes used in domestic water services',$,$,$,'BSI',$,$,#4003,$,#4004,$,.PUBLIC.,.REVISION.);
#321=IFCDOCUMENTINFORMATION('Local 1057 Appendix A','Table of Sizes',$,$,$,$,$,'MyCompany',$,$,$,$,$,$,$,$);
#322=IFCDOCUMENTINFORMATION('Local 1057 Appendix B','Jointing Methods',$,$,$,$,$,'MyCompany',$,$,$,$,$,$,$,$);

/* making the relationship between the documents */
#1001=IFCDOCUMENTINFORMATIONRELATIONSHIP(#311,(#321,#322),'Appendices');

Example 3: Specify a Document Reference

In this example, the two appendices to the standard are referenced directly from the project using their name and location instead of being included in the document information relationship. The example assumes that the documents are stored in electronic format which is accessible via the web.
Because the relationship normally assumes that one document applies to multiple objects, this example shows that two relationship occurrences must be used to deal with the fact that two documents are being related to one object.

/* ownership information*/
#2=IFCOWNERHISTORY(...);

/* specifying the project */
#1=IFCPROJECT('abcdefghijklmnopqrst1',#2,'Tromso College','IFC Test Project',$,$,$,(#10),#11);

#10=IFCREPRESENTATIONCONTEXT(...);
#11=IFCUNITASSIGNMENT(...);

/* specifying the document references*/
#331=IFCDOCUMENTREFERENCE('http://www.mycompany.qq',$,'MyCompany Local 1057 Appendix A');
#332=IFCDOCUMENTREFERENCE('http://www.mycompany.qq',$,'MyCompany Local 1057 Appendix B');

/* association of the document references with the project */
#1001=IFCRELASSOCIATESDOCUMENT('abcdefghijklmnopqrst1001',#2,$,$,(#1),#331);
#1002=IFCRELASSOCIATESDOCUMENT('abcdefghijklmnopqrst1002',#2,$,$,(#1),#332);

Example 4: Associating a Document to Cost Values

The principle of associating a document to a cost value or environmental impact value is similar to applying documents to general objects. However, since cost value is defined within the resource layer of the IFC technical architecture, a different relationship class must be used sine IfcRelAssociatesDocument does not apply. Instead, IfcReferencesValueDocument is used.
This example shows how cost values are related to a document. The document is the published price list for copper tube for MyCompany. In the diagram, the attributes for IfcCostValue are not fully expanded but the code sample shows a complete breakdown for the list price of copper tube priced in US dollars per metre.

/* specifying the document references*/
#333=IFCDOCUMENTREFERENCE('http://www.mycompany.qq/pricelist.htm',$,'Copper Tube Price List');

/* instances of IfcCostValue */
#10001=IFCCOSTVALUE($,$,#11001,#11002,$,$,'List Price',$);
#10002=IFCCOSTVALUE($,$,#11011,#11002,$,$,'List Price',$);
#10003=IFCCOSTVALUE($,$,#11021,#11002,$,$,'List Price',$);

/* association of the cost values with the document references */
#10501=IFCREFERENCESVALUEDOCUMENT=(#333,(#10001,#10002,#10003),$,$);

/* instances of IfcMeasureWithUnit that define the actual values and currency*/
#11001=IFCMEASUREWITHUNIT(7.76,#11501);
#11002= IFCMEASUREWITHUNIT(1,#11601);
#11011=IFCMEASUREWITHUNIT(9.76,#11501);
#11021=IFCMEASUREWITHUNIT(11.76,#11501);

/* unit specifications for applied value and unit basis */
#11501=IFCMONETARYUNIT(.USD.);
#11601=IFCSIUNIT($,.METRE.);

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.1.3 Build:#408 Jan 23, 2006) - Bug/feature request - Contact Administrators