How does StructMatch identify corresponding members without GUID?
The first step is to determine the centerline of each structural member.
StructMatch attempts to reconstruct a centerline that is as independent as possible from local cuts, joins, and end trimming. This matters because the visible geometry of a beam or column may be altered by connections or software-specific modeling operations, even though the member still follows the same main axis.
Each centerline is represented by a series of sampled points.
For every member in Model A, StructMatch uses that member as a reference element and searches Model B for members located within a defined local distance. Depending on the surrounding geometry, the reference member may have no candidates, one candidate, or several candidates.
StructMatch then evaluates the geometric relationship between the reference member and each candidate. It examines how the candidate aligns, overlaps, and projects onto the reference centerline.
If a candidate satisfies a series of geometric conditions, StructMatch identifies the two members as corresponding elements.
The matching process relies on geometry and relative position rather than GUIDs, object names, or other shared identifiers.
Based on current testing, this approach can produce a high proportion of correct automatic matches across structural IFC models created in different software.
Why is geometry-based matching useful for split and merged members?
One of the main advantages of geometry-based matching is that it does not assume every structural member must follow a one-to-one relationship.
In real projects, the same physical structural element may be modeled differently in two software environments.
For example, a structural analysis model may divide a column at every floor, while an architectural or BIM model may represent the same multi-story column as one continuous element.
Similarly, one model may represent a continuous beam as a single object, while another model splits it at columns, joints, or connection points.
In these situations, the correct relationship may be:
- One member in Model A matched to one member in Model B
- One member in Model A matched to multiple members in Model B
- Multiple members in Model A matched to one member in Model B
Because StructMatch evaluates the geometric relationship between members rather than relying only on object count or GUID, it can recognize these one-to-many and many-to-one relationships.
This is especially important in cross-software comparison, where modeling differences may change how many IFC objects represent the same physical member.
When can automatic matching fail?
One of the most common reasons is that two corresponding members are located farther apart than the current candidate search distance.
StructMatch first uses a local search range to determine which members in Model B should become candidates for a reference member in Model A. The current default search distance is 0.35 m.
The search distance only determines which members become candidates. It does not mean that every member within 0.35 m will automatically be matched.
A candidate must still satisfy additional geometric conditions before it can be accepted as a corresponding member.
Automatic matching may also become more difficult when:
- The two models have not been properly aligned
- A member has been heavily cut, shortened, or converted
- The available centerline or geometry is incomplete
- Several nearby members have very similar geometric relationships
If no candidate member satisfies the required conditions, the reference member remains unmatched and is classified as an element that exists only in Model A.
The same logic is later applied in the opposite direction to identify elements that exist only in Model B.
Can users adjust the matching results in StructMatch?
Yes.
Automatic matching is intended to provide a strong starting point, but StructMatch does not require users to accept every automatic result as final.
If two corresponding members were not matched because they were outside the default search range, users can select a local group of elements, increase the matching distance, and rerun the matching process only within that selected area.
This allows users to relax the search range where needed without making the entire model comparison less strict.
Users can also directly edit the matching result by:
- Removing an incorrect match
- Selecting specific members and matching them manually
- Rerunning local matching after adjusting the search distance
These tools are especially useful when dealing with unusual modeling conditions or complex areas where several similar members are located close to one another.
The goal is not to hide uncertainty behind a fully automatic system. Instead, StructMatch uses automatic geometry-based matching to reduce repetitive work while keeping engineers in control of the final correspondence between structural members.
Automatic matching provides the starting point. Engineering judgment remains the final control layer.