Improve georeferencing documentation

This commit is contained in:
Dion Moult
2022-04-21 10:41:47 +10:00
parent c3c9ed2975
commit 1237a8ce97
@@ -11,63 +11,66 @@ IFC georeferencing. Here are the potential scenarios you will encounter in the
wild for vertical construction.
1. Correctly georeferenced IFC4 with a map conversion transformation
2. Correctly georeferenced IFC4 without a map conversion transformation
3. Non-georeferenced georeferenced IFC4
2. Correctly georeferenced IFC4 with a map conversion without a transformation
3. Non-georeferenced IFC4
4. Non-georeferenced IFC2X3
The first scenario is desired for most disciplines, such as architects and all
engineers (except for civil).
engineers (except for civil). Typically, this results in small local engineering
coordinates, which work well in Blender.
For scenarios 2, 3, and 4, the BlenderBIM Add-on will automatically attempt to
offset coordinates to preserve the precision of the model. The first coordinate
greater than 1km will be detected and used as an offset coordinate. It is
possible to specify a custom offset coordinate.
Correct georeferencing requires a projected CRS and a map conversion.
Unfortunately, many users may be under the impression that their file is
correctly georeferenced, but this is rarely the case. You can check whether your
file is correctly georeferenced in the ``IFC Georeferencing`` scene panel. If
you see "Not Georeferenced", your file is not correctly georeferenced. If your
file is georeferenced, it is still no guarantee that the georeferencing data is
actually correct, but how to determine this is out of scope of this article.
Non-georeferenced workarounds
-----------------------------
For scenarios 2, 3, and 4, coordinates may be quite large. To present this data
in Blender, the BlenderBIM Add-on will automatically attempt to create a false
origin to preserve the precision of the model. The first coordinate greater than
1km will be detected and used as an offset coordinate. You can see the false
origin, if any, in the ``Blender Offset`` section of the ``IFC Georeferencing``
scene panel.
The unfortunate reality is that IFC2X3 does not support georeferencing, and most
vendors have poor and inconsistent support for georeferencing, even in IFC4.
Some users may be under the impression that their file is correctly
georeferenced, but this is rarely the case. This creates problems. You can see
whether your file is correctly georeferenced in the ``IFC Georeferencing``
scene panel. If you see "Not Georeferenced", your file is not correctly
georeferenced. If your file is georeferenced, it is no guarantee that the
georeferencing data is actually correct, but how to determine this is out of
scope of this article.
Instead of relying on an automatic false origin, you can also specify a custom
origin coordinate. To do this, choose ``Enable Advanced Mode`` when loading an
IFC project. Then enable the ``Import and Offset Model`` option and specify a
new coordinate to replace the origin's default of 0,0,0 in the ``Model Offset
Coordinates`` option.
As an invalid workaround for correct georeferencing, many other BIM vendors
simply offset their object coordinates from local engineering to map coordinates
without properly storing a projection system and optionally a map
transformation. There are two common invalid workarounds that are used.
Dealing with large coordinates
------------------------------
The first invalid workaround is to shift the origin point of objects in the
model. We call this the ``OBJECT_PLACEMENT`` workaround. The second invalid
workaround is to shift the coordinates of geometry within the objects
themselves, and typically leave the object origin untouched (such as back at (0,
0, 0)). We call this the ``CARTESIAN_POINT`` workaround. Sometimes, BIM
applications combine both of these invalid workarounds. To see which workaround
was used on an object, check the "Blender Offset" property in the ``Transform``
object panel.
In scenarios 2, 3, and 4, a BIM vendor will typically choose from two possible
methods to offset their coordinates into large map coordinates.
The first method is to shift the origin point of objects in the model relative
to the global coordinate system. We call this the ``OBJECT_PLACEMENT`` method.
The second method is to shift the coordinates of geometry within the objects
themselves relative to the object placement. We call this the
``CARTESIAN_POINT`` method. Sometimes, BIM applications combine both of these
methods in a single IFC project. To see which workaround was used on an object,
check the "Blender Offset" property in the ``Transform`` object panel.
Sometimes, a model shifts their coordinates for some objects, but not all. For
example, the walls in a model may have their object placement or cartesian
points shifted to map coordinates, however, the object placement of the site is
still at 0, 0, 0. This creates a problem, because either we can display the
walls accurately, or the site placement accurately, but not both. Users may not
even realise this is an issue because many IFC viewers don't show object
placements because they are "invisible". However, because the BlenderBIM Add-on
is a full authoring platform, we do need to show these placements and thus it is
the users responsibility to reconcile this inconsistency in their coordinates.
Either the user needs to fix their file to consistently offset all coordinates,
or the user needs to manually tell the BlenderBIM Add-on which offset to choose.
In the absence of manual intervention, the BlenderBIM Add-on will make an
intelligent guess, but it may be wrong.
still at 0, 0, 0. Since these coordinates are so far apart, this creates a
problem, because Blender needs to choose between displaying the walls accurately
and sacrificing precision at the site placement, or vice versa, but it is
impossible to satisfy both simultaneously in the same Blender session.
To manually specify an offset, simply load an IFC project with Advanced Mode
enabled. Then enable the ``Import and Offset Model`` option and specify a new
coordinate to replace the origin's default of 0,0,0 in the ``Model Offset
Coordinates`` option.
Many IFC viewers only show geometry, and don't show object placements. This may
give users the false impression that their coordinates in their IFC project do
not have such a large range. However, because the BlenderBIM Add-on is a full
authoring platform, we do need to show these placements and thus it is the users
responsibility to reconcile this inconsistency in their coordinates. Either the
user needs to fix their file to consistently offset all coordinates, or the user
needs to manually tell the BlenderBIM Add-on the coordinates of the desired
false origin. In the absence of manual intervention, the BlenderBIM Add-on will
make an intelligent guess, but it may be wrong.
Coordinates and precision limits
--------------------------------
@@ -86,6 +89,7 @@ ranging greater than +/- 5km.
However, if working in local engineering coordinates, a single transformation is
required to convert from local engineering coordinates to map coordinates. This
transformation includes a scale factor. The scale factor is only assumed to be
constant for small sites (defined approximately as less than 1km square).
This practical limit of georeferenced vertical construction is smaller than the
software limit, so this is the actual limiting factor.
constant for small sites (defined approximately as less than 1km square). This
practical limit of georeferenced vertical construction is smaller than the
software limit, so this surveying convention is the actual limiting factor, not
the software.