IFC4.3.x-development
IFC4.3.x-development copied to clipboard
IfcRepresentationMap : MappingOrigin is unclear
An old issue been part since forever but
Description in documentation to anyone not native in english is a bit unclear. "defines the position about which the mapped representation is mapped."
Either a. Placement describes a transformation to place geometry to its placement and is used as is. b. Placement is the geometry's placement and is combined with mapping target using inverse placement. Last time we tested this both versions were used by importers.
- A better description would be nice. Currently there is no sample included in documentation that uses mapping source which would define the correct use. Change one of the columns in file
- Make this optional. This placement is effective irrelevant as the mapping target tarformation is always used (unless this class is used in something else). Now everyone writes unnecessary default placement always.
- Deprecate this if there is no actual use
See here for a related discussion: https://forums.buildingsmart.org/t/usage-of-ifcrepresentationmap-mappingorigin/2965
to anyone not native in english is a bit unclear
I don't think this has anything to do with native english, the definition of the attribute is simply unclear.
- I agree. It would be nice if we can have an example (or more like a bunch of unit tests) that tests the various combinations of mapping transformations. We can also include a "nested" mapped item. Where the mapping target is again a representation with mapped items. Are you interested in contributing to this?
- and 3. My guess is we better spend the effort in better documentation and examples. We would give up compatibility with the step entity
representation_map, which is something some people in the community value.
the description should say, that the mapping origin is at this Cartesian point within the coordinate system of the mapped representation. By default, it is 0.,0.,0. (and in future this default could be established by making the attribute OPTIONAL, similar to many other cases in the IFC spec). But it could be another coordinate (e.g. the lower left, or the upper right corner of the shape).
Regarding examples, a long time ago, I created these examples for mapped items that form part of Annex E. https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/annex-e.html - see E.6. It would be great if someone could enhance it with other cases, such as different mapping origines or nested mapped items.
I'll bite a bit. (well nibble at the bait at least)
taking the example file E.6.2 Mapped Shape With Transformation
Modifying this a bit (with ye olde text editor) and throw in couple of grids for visualization).
Setting the top of the block (because its easiest with text editor) as mapping origin #5010= IFCREPRESENTATIONMAP(#5011,#5100); #5011= IFCAXIS2PLACEMENT3D(#5012,$,$); /* top center of block as MappingOrigin */ #5012= IFCCARTESIANPOINT((0.,0.,2000.));
and then positioning this top of the object to top grid intersection at (b,2).
#1002= IFCAXIS2PLACEMENT3D(#1003,$,$);
/*top part of the block (#5011) is positioned at grid intersection (B_top,1_top). /
#1003= IFCCARTESIANPOINT((1000.,0.,2000.));
/ (placement or part of the it can be in the mapping target obviously) */
Interpreting this as the b. option of my original post produces same end result as the original example.
Is this the way?