Missing Type Enumeration in Solibri 9.12
-
-
Hi. The Predefined Type (Vordefinierter Typ) here seems to show FLOOR in this example.
Generally Predefined type for components comes from the corresponding IFC Type enum. For Slabs specifically it is the IfcSlabTypeEnum.
And it is good to remember that, in case IfcSlabTypeEnum happens to be ROOF, the component is actually imported as Roof in Solibri, not Slab. This weirdness has been implemented to support modeling workflows that have been modeling roofs as slabs with this type set.IfcType field usually comes from the related IfcTypeObject instance, which in this case is IfcSlabType.
-
9.10.6 had some changes to the IFC type showing: https://www.solibri.com/news/solibri-9-10-6-release-notes
-
Hi, I would like to ask how to determine the value of the predefined type for IfcSlabTypeEnum, as it is specified in the IFC file.
getIfcEntityType() returns SLAB instead of FLOOR, similar to the example above.
Unfortunately there is not the same possibility for slab as there is for covering:
if (component instanceof Covering) { Covering covering = (Covering) component; Covering.Type type = covering.getType(); CompIfcType_String = type.toString(); }Best regards, Reinhard
-
@Kowal-Gradl said in Missing Type Enumeration in Solibri 9.12:
Hi, I would like to ask how to determine the value of the predefined type for IfcSlabTypeEnum, as it is specified in the IFC file.
getIfcEntityType() returns SLAB instead of FLOOR, similar to the example above.
Unfortunately there is not the same possibility for slab as there is for covering:
if (component instanceof Covering) { Covering covering = (Covering) component; Covering.Type type = covering.getType(); CompIfcType_String = type.toString(); }Best regards, Reinhard
This should be just added to the API, but hasn’t been done as of yet.
It might be available via
slab.getRelated(Relation.of(Relation.Type.DEFINES_BY_TYPE, Relation.Direction.FORWARD)or
slab.getRelated(Relation.of(Relation.Type.DEFINES_BY_TYPE, Relation.Direction.BACKWARD)and study the Type object it finds (untested code),
but the intention is to add the simple getter methods. -
Thanks for your answer, but this way I only get UNKNOWN as Type of the Related, but the Slab is definitely FLOOR in Solibri interface and SLAB in API -> component.getComponentType()
May you have one more hint for me, thanx a lot so far
Reinhard
Collection<Component> CT = component.getRelated(Relation.of(Relation.Type.DEFINES_BY_TYPE, Relation.Direction.BACKWARD)); if (CT.iterator().hasNext()==true) { String CTYPE = CT.iterator().next().getComponentType().toString(); }
Copyright © 2025 Solibri Inc. | Powered by NodeBB



