mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 01:41:57 +00:00
Improve georeferencing documentation
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user