Optimize Geometry

Sakari Lehtinen
Sakari Lehtinen
  • Updated

The Optimize Geometry tool simplifies object geometries in a smart way and thus reduces the model size of unnecessarily detailed models significantly. The models upload and download faster. You need less storage space. The models run on any computer and application. Most of the time, the objects stay fully recognizable. More importantly, they still have all the properties or metadata. And as a bonus, boxifying is fun! 100 million Minecraft players cannot be wrong.

Boxify-2-1024x485.png

Settings

simplebim_tool_optimize_geometry_settings.png

Objects

Objects to optimise. 

Usually, you don’t want to simplify the geometry of all the objects. With the Optimize Geometry tool, you have full control over which objects and which level of the model tree hierarchy are optimized. You can use a group, group category, or object class/es to define the Objects.

Objects in a BIM model can be represented with a hierarchy. In the model tree, these objects, so-called assemblies, are represented with a parent and related children. The parent doesn't usually have its own geometry. The geometry is assigned to the child objects.

Optimize Geometry tool can handle assemblies. If you are simply optimising geometry, then the geometry of the child objects will be optimised. In this case, the parents, you set as the Objects, simply define the scope of the optimisation.

If you are creating derived objects, then the new objects are created based on the objects you set as the Objects, and at the same hierarchy level as the original object. You can, for example, create a derived object from element assembly objects, or you could even create derived objects for building storeys.

Optimization Types

Box

The most extreme optimization is to turn the original geometry into just one box. This, of course, reduces the file size the most, but the object is no longer recognizable from the geometry. Still, it can be recognized from the property data.

BoxifyBox-768x546.png

Boxes

Boxes will create a box for each detail (geometry item) within the object. This usually keeps the object recognizable from the geometry. However, this depends on how the object was originally represented in the IFC. If the geometry is not represented by separate geometry items, then the end result is the same as with the Box. Try yourself and see what happens. In any case, the file size can still be reduced up to 90%.

BoxifyBoxies.png

Convex Hull

This option creates a simplified geometry, which represents the object with the smallest set of convex surfaces. The tree is a perfect example of this. This too has the potential to reduce the file size a lot. Depends on the complexity of the original geometry. The object might not be as well recognizable as with the Boxies, but it does take more or less the same extreme space around it as the original object.

BoxifyConvexHull-1.png

Optimized Geometry

Another option to optimize geometry is simply to reduce the number of polygons or triangles in geometry, while trying to keep the shape as close to the original as possible. Sometimes this is referred to as decimation. With smart algorithms, the number of triangles can be reduced significantly without even visually noticing any changes in the actual shape. Decimation can also be pushed to the limit when, of course, the shape starts to deviate from the original geometry, usually still staying recognizable.

Three are three optimization percents available. In the picture, on the left is the original object. Then left to right, the low, moderate and high Optimization Percent was used.

Optimize Geometry uses the optimization algorithm to all off the polygons in the object at once. Sometimes this gives you better optimization than the Optimized Geometry Items options. However, with Optimized Geometry option you loose the original colors. You can colorize the object afterwards, but not anymore in the item level.

simplebim_tool_optimize_geometry_optimize.png

Optimized Geometry Items

This is otherwise the same as Optimized Geometry option, but this time the optimization algorithm is applied to each geometry item separately. This reserves the original colors, but might not always result to as good optimization as the Optimized Geometry option. 

simplebim_tool_optimize_geometry_optimize_items.png

Convert to Brep

The final type of geometry optimization in Simplebim is not optimization in terms of reducing the size of the geometry. However, converting the geometry representation type in IFC can sometimes be useful, especially if the downstream application has trouble reading some of the IFC's more complex geometry representation types correctly. In this case you want to use the most generic geometry representation type. Convert to Brep converts the geometry to so-called BREP geometry representation in the IFC export.

Convert to Faceset

This is otherwise the same as Convert to Brep, but this time the resulting geometry representation in IFC will be Faceset.

Optimization Percent

This is uses together with the Optimized Geometry and Optimized Geometry Items. The options are low, moderate and high. The exact resulting optimization depends on the geometry, so that's why this is not an exact number.

Optimize Small Geometry Items

This is used together with the Optimize Geometry and Optimize Geometry Items. Optimizing very small geometry items can result to weird looking results, and it can be that this doesn't even reduce the number of polygons. In this case it is better to left the small items as they are and only optimize the items that have more polygons.

Create Derived Objects

Set this option on, if you want to create new derived objects to the model.

When creating derived objects, the original object and its geometry will not be changed. The optimized geometry is assigned to the newly created object. You can use the connection between the derived object and the original object to enrich the derived object with any data from the original object. The derived objects can be used, further enriched, and even exported to IFC just like the original objects.

Why would you want to create derived objects? Maybe you want to create a placeholder object, but keep the original geometry as well. Maybe you want to create several different versions of the object, with different level of optimization. Or maybe you want to create an objects which represent different installation states of the object in question.

Derived Object Class

This defines the object class of the derived objects. The object class can be any basic object class from the IFC. For example Covering, Beam, Member, Building Element Proxy, and so on… This is also the object class, in which the derived object is exported to IFC. Use the name of the object class as it is written in the Objects palette.

Connection Name

Connection Name defines the Connection property name, where the references between the original and derived objects are assigned to. Make sure you use unique names, if you want to run the tool multiple times on the same model (and don’t want to update or override the existing connections). The Connection Property can be used for example in the Calculate Properties for Connected Objects tool.

Override Connections

Use this option to choose whether you want to override (checked) or update (unchecked) the Connection Property, if it already exists in the model. There are use cases for both. Maybe you want to run the tool multiple times for the same Objects with different optimizations using the same Connection Property. Then you want to update/add to the Connection Property. On the other hand, if you make a mistake, you can override the Connection Property with a rerun.

Layer Name

Layer Name defines the name of the layer (layer assignment name in IFC), to which the derived object is assigned to. The layer name can be something you already have in the model, or you can enter a new one. The layer is a convenient way to find the derived object from the model after they have been created.

Create Group

Turn Create Group is on, if you want to create a group for the newly created derived objects. The groups can be either a generic groups or an IFC groups. A generic group can only be used inside Simplebim. IFC groups are exported to IFC.

This is also a convenient way to find the newly created objects from the model, but also you could feed the group to other tools to further enrich the objects. The group can be used for example as a filter for the copy function when you copy the property data from the original object to the derived one. Or in Calculate Properties tools, to further enrich the derived objects with derived properties.

Group Name

Group Name defines the group where the derived objects are assigned to. If you use a group name, which already exists in the model (under the parent group defined below), then the objects are added to this group. If the group doesn't exist yet, then a new one is created.

Parent Group

Groups can be hierarchical. Use Parent Group if you want to assign the groups under a specific parent group.

Use Neighbourhood Connection

BIM models can have logical connections between the building elements. More importantly many of Simplebim's tools create connections between the building elements. When you are creating derived objects, you can use these connections to define the objects, which geometry will be included in the result. The geometry optimization is done to all the objects found via the connection.

For example if you have created connections between the space objects and the electrical equipment related to the space objects, you could create a derived object including geometry from both the space and electrical equipment geometries with optimized geometry.

Neighbourhood Connection Name

The name of the connection property, which the tool should use for finding the neighbours.

Neighbourhood

Neighbourhood can be defined in many ways. Here are three options.

Immediate Neighbourhood

The immediate neighbours are objects, which have direct connection to the Objects. 

Neighbours and Their Neighbours

Neighbours and Their Neighbours will first find the immediate neighbours and then add to the neighbourhood their the immediate neighbours.

All Connected

The tool will follow the Connection as long as there are new objects found via the Connection defined by the Neighbourhood Connection Name.

 

Related to

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.