Log In   View a printable version of the current page.
Represent Product (FP)
Added by Janice Wix, last edited by Janice Wix on Feb 21, 2007  (view change)
Labels: 
(None)


Represent Product

Overview

Within the same object placement, a product may be represented by a single or multiple shape representations. Each of the individual shape representations may refer to a different representation context and have a different representation name and type. However all geometric representation contexts are required to refer to the same global (or world) coordinate system.
If the product has a product representation, it also has to have an object placement. The object placement provides for the object coordinate system, in which all the geometric representation items of all shape representations are founded.
The functional part "represent product" has the following components and dependencies

  • definition of a product representation, the container of potentially multiple geometric representations
  • definition of one or several shape representations, each referring to a different geometric representation context
  • potentially assigning each shape representation to a presentation layer
    All shape representations are defined within the same local placement (see fp_place_object), that establishes the coordinate system for all geometric representation items used within the shape representation of the product.

Results

The product has been represented with one or several shape representations, all within the object coordinate system, and each being specific for a particular, potentially scale and projection dependent representation context.
Each shape representation may have an assignment to a presentation layer (or CAD layer, level, etc.).
Note: This assignment can be overridden by individual geometric representation items.

Description Entity/Pset/Functional Part MAN REC OPT
Create a representation container for the product by having an IfcProductDefinitionShape created as a Representation for a subtype of IfcProduct(as for any building, HVAC, or other element).
Note: currently there are no conventions on how to assign values for the Name and Description attribute
IfcProductDefinitionShape linked by IfcProduct.Representation
See Example 1 #50
   
Create one or several instances of IfcShapeRepresentation for each of the potentially multiple representations of the product. IfcShapeRepresentation
See Example 1 #49
See Example 1 #110
   
Provide the appropriate identifier and type for the shape representation.
Note: The list of applicable identifiers and types is usually defined at the geometry use case definition for each subtype of IfcProduct - refer to the IFC specification for further details
IfcShapeRepresentation.RepresentationIdentifier
IfcShapeRepresentation.RepresentationType
   
Assign the shape representation to a specific geometric representation context. IfcShapeRepresentation.ContextOfItems
see fp_set_representation_context for further details
   
Note: there needs to be at least one shape representation that refers to a master (or default) context, either the 3D model context or the 2D plan context      
Scale, projection and level of detail specific shape representations shall refer to a geometric representation sub context, defining the representation setting to which this representations applies.      
Add the set of geometric representation items that represents this particular shape representation.
Note: The type of the geometric representation items need to comply to the RepresentationType. See IFC specification for IfcShapeRepresentation and for the function IfcShapeRepresentationTypes for further details.
Example: If the RepresentationType is 'GeometricCurveSet' the only allowed items are points and lines within a geometric (curve) set.
IfcShapeRepresentation.Items
see various functional parts for each major representation type
   
Assign the shape representation to a presentation layer, using the inverse LayerAssignment relationship.
Note: individual representation items within the set of Items may have their own layer assignment, it then overrides the layer assignment of the shape representation container.
IfcShapeRepresentation.LayerAssignment
see (functional part to be defined)
   

EXPRESS Schema

SCHEMA FP_REPRESENT_PRODUCT;

  TYPE IfcLabel = STRING;
  END_TYPE;

  TYPE IfcText = STRING;
  END_TYPE;

  ENTITY IfcRepresentation
    SUPERTYPE OF (ONEOF(IfcShapeRepresentation, 
IfcTopologyRepresentation, 
IfcStyledRepresentation));
      ContextOfItems           : IfcRepresentationContext;
      RepresentationIdentifier : OPTIONAL IfcLabel;
      RepresentationType       : OPTIONAL IfcLabel;
      Items                    : SET [1:?] OF IfcRepresentationItem;
    INVERSE
      LayerAssignments         : SET OF IfcPresentationLayerAssignment FOR AssignedItems;
      OfProductRepresentation  : SET [0:1] OF IfcProductRepresentation FOR Representations;
  END_ENTITY;

  ENTITY IfcShapeRepresentation
    SUBTYPE OF(IfcRepresentation);
    WHERE
      WR21 : 'IFCREPRESENTATIONRESOURCE.IFCGEOMETRICREPRESENTATIONCONTEXT' 
             IN TYPEOF(SELF\IfcRepresentation.ContextOfItems);
      WR22 : SIZEOF(QUERY(temp <* Items | 
               ('IFCTOPOLOGYRESOURCE.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
                 AND (NOT(SIZEOF(
                   ['IFCTOPOLOGYRESOURCE.IFCVERTEXPOINT',
                    'IFCTOPOLOGYRESOURCE.IFCEDGECURVE',
                    'IFCTOPOLOGYRESOURCE.IFCFACESURFACE'] * TYPEOF(temp)) = 1))
             )) = 0;
      WR23 : EXISTS(SELF\IfcRepresentation.RepresentationType);
      WR24 : IfcShapeRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
  END_ENTITY;

  ENTITY IfcTopologyRepresentation
    SUBTYPE OF(IfcRepresentation);
    WHERE
      WR21 : SIZEOF(QUERY(temp <* SELF\IfcRepresentation.Items | 
               NOT('IFCTOPOLOGYRESOURCE.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
             )) = 0;
      WR22 : EXISTS(SELF\IfcRepresentation.RepresentationType);
      WR23 : IfcTopologyRepresentationTypes(SELF\IfcRepresentation.RepresentationType, 
		SELF\IfcRepresentation.Items);
  END_ENTITY;

  ENTITY IfcStyledRepresentation
    SUBTYPE OF(IfcRepresentation);
    WHERE
      WR21 : SIZEOF(QUERY(temp <* SELF\IfcRepresentation.Items | 
               (NOT('IFCPRESENTATIONAPPEARANCERESOURCE.IFCSTYLEDITEM' IN TYPEOF(temp)))
             )) = 0;
  END_ENTITY;


  ENTITY IfcProductRepresentation
    SUPERTYPE OF (IfcProductDefinitionShape);
      Name            : OPTIONAL IfcLabel;
      Description     : OPTIONAL IfcText;
      Representations : LIST [1:?] OF IfcRepresentation;
  END_ENTITY;

  ENTITY IfcProductDefinitionShape
    SUBTYPE OF(IfcProductRepresentation);
  END_ENTITY;

  ENTITY IfcRepresentationContext;
    INVERSE
      RepresentationsInContext : SET OF IfcRepresentation FOR ContextOfItems;
  -- definitions skipped
  -- see e.g. fp_set_representation_context
  END_ENTITY;

  ENTITY IfcRepresentationItem;
  -- definitions skipped
  -- see e.g. various functional parts on geometric representation items
  END_ENTITY;

  ENTITY IfcPresentationLayerAssignment;
      AssignedItems : IfcRepresentation;
  -- definitions skipped
  -- see e.g. fp_assign_presentation_layer
  END_ENTITY;

  ENTITY IfcRoot
    ABSTRACT SUPERTYPE OF (IfcObjectDefinition);
  -- definitions skipped
  END_ENTITY;

  ENTITY IfcObjectDefinition
    ABSTRACT SUPERTYPE OF (IfcObject)
    SUBTYPE OF(IfcRoot);
  -- definitions skipped
  END_ENTITY;

  ENTITY IfcObject
    ABSTRACT SUPERTYPE OF (IfcProduct)
    SUBTYPE OF(IfcObjectDefinition);
  -- definitions skipped
  END_ENTITY;

  ENTITY IfcProduct
    SUBTYPE OF(IfcObject);
      Representation : IfcProductRepresentation;
  -- definitions skipped
  END_ENTITY;

END_SCHEMA;

EXPRESS-G

for further reading, see also the aspect card ProIT_IFC_Aspect_081_Representation_1-0.pdf
Note: the aspect card description is based on the IFC2x definition of representation contexts, in IFC2x3 onwards, different shape representations are assigned to different geometric representation (sub) contexts.

Model Instantiation

Example 1: (Original) Definition of a proxy object with two shape representations 
(a default 3D representation, and a default 2D representation) each being assigned to 

/* Definition of the project */
#17=IFCPROJECT('02b_zn_n5BUhvEFQj1tiGU',#16,'DefaultProject','Automatically generated project',$,$,$,(#10,#11),#6);

/* Definition of the geometric representation context for the 3D model */
#10=IFCGEOMETRICREPRESENTATIONCONTEXT('Default 3D context','Model',3,1.E-009,#103,#99);
#103=IFCAXIS2PLACEMENT3D(#104,$,$);
#104=IFCCARTESIANPOINT((0.,0.,0.));
/* Definition of the geometric representation context for the 2D plan */
#11=IFCGEOMETRICREPRESENTATIONCONTEXT('Default 2D context','Plan',2,1.E-009,#105,#99);
#105=IFCAXIS2PLACEMENT2D(#106,$);
#106=IFCCARTESIANPOINT((0.,0.));
/* the north direction is along the positive x-axis */
#99=IFCDIRECTION((1.,0.,0.));

/* Definition of the proxy object */
#66=IFCBUILDINGELEMENTPROXY('3APQwNnyX6LvbGeU9NiaFv',#16,'Proxy 01','proxy for test geometry',$,#41,#50,$,$);
#82=IFCRELCONTAINEDINSPATIALSTRUCTURE('0eTrDwlj914vqU_U8amIYS',#16,$,$,(#66),#29);

/* Local placement of the proxy object */
/* - the local x axis is in direction of the parent y axis */
#41=IFCLOCALPLACEMENT(#28,#40);
#40=IFCAXIS2PLACEMENT3D(#37,#38,#39);
#37=IFCCARTESIANPOINT((5.,10.,0.));
#38=IFCDIRECTION((0.,0.,1.));
#39=IFCDIRECTION((0.,1.,0.));

/* Shape representation of the annotation object */
/* - multiple representations within the standard representation context */
#50=IFCPRODUCTDEFINITIONSHAPE($,$,(#110,#49));

/* 2D representation within default 2D representation context */
#49=IFCSHAPEREPRESENTATION(#11,'FootPrint','GeometricCurveSet',(#57));
#57=IFCGEOMETRICCURVESET((#56));
#56=IFCPOLYLINE((#51,#52,#53,#54,#51));
#51=IFCCARTESIANPOINT((0.,0.12));
#52=IFCCARTESIANPOINT((0.,-0.12));
#53=IFCCARTESIANPOINT((5.,-0.12));
#54=IFCCARTESIANPOINT((5.,0.12));

#110=IFCSHAPEREPRESENTATION(#10,'Body','SweptSolid',(#111));
#111=IFCEXTRUDEDAREASOLID(#112,#120,#122,2.8);
#112=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#113);
#113=IFCPOLYLINE((#114,#115,#116,#117,#114));
#114=IFCCARTESIANPOINT((0.,0.12));
#115=IFCCARTESIANPOINT((0.,-0.12));
#116=IFCCARTESIANPOINT((5.,-0.12));
#117=IFCCARTESIANPOINT((5.,0.12));
#120=IFCAXIS2PLACEMENT3D(#121,$,$);
#121=IFCCARTESIANPOINT((0.,0.,0.));
#122=IFCDIRECTION((0.,0.,1.));

Model Aspect

The functional part "multiple shape representations" is defined using the following IFC classes:

  • IfcProductRepresentation
    • IfcProductDefinitionShape
  • (future ABS) IfcRepresentation
    • IfcShapeRepresentation
    • IfcTopologyRepresentation (not yet described)
    • IfcStyledRepresentation (not yet described)
      it uses from
  • fp_set_representation_context
    • (future ABS) IfcRepresentationContext
    • IfcGeometricRepresentationContext
    • IfcGeometricRepresentationSubContext
  • fp_assign_presentation_layer
    • IfcPresentationLayerAssignment
    • IfcPresentationLayerAssignmentWithStyle
  • various functional parts describing geometric models and items
    • all subtypes of IfcGeometricRepresentationItem
    • all subtypes of IfcTopologicalRepresentationItem
      it is used by
  • IfcProduct
    • any subtype of IfcProduct that has a geometric or topological representation

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