Interface Component

All Known Subinterfaces:
Beam, Building, BuildingStorey, Covering, Door, Opening, Project, Ramp, Site, Space, SpatialElement, Stair, Wall, Window

public interface Component
Represents one component in the data model.
Since:
9.10.2
  • Method Details

    • getBATID

      Optional<String> getBATID()
      Returns the BIM Authoring Tool ID (BATID) of this component if one is specified. Otherwise returns empty.
      Returns:
      the BIM Authoring Tool ID (BATID) of this component if one is specified
      Since:
      9.10.3
    • getComponentType

      ComponentType getComponentType()
      Returns the ComponentType of the entity.
      Returns:
      the type of the entity
      Since:
      9.10.2
    • getDescriptionText

      Optional<String> getDescriptionText()
      Returns a textual description of this component if one is specified. Otherwise returns empty.
      Returns:
      a textual description of this component if one is specified
      Since:
      9.10.3
    • getDisciplineName

      Optional<String> getDisciplineName()
      Returns the name of the discipline of this component if one is specified. Otherwise returns empty.
      Returns:
      the name of the discipline of this component if one is specified
      Since:
      9.10.3
    • getGlobalBottomElevation

      double getGlobalBottomElevation()
      Returns the global bottom elevation of this component in the model.

      The elevation is relative to the origin of the model.

      Returns:
      the global bottom elevation of this component in the model
      Since:
      9.10.3
    • getGlobalTopElevation

      double getGlobalTopElevation()
      Returns the global top elevation of this component in the model.

      The elevation is relative to the origin of the model.

      Returns:
      the global top elevation of this component in the model
      Since:
      9.10.3
    • getBottomElevationFromFloor

      double getBottomElevationFromFloor()
      Returns the bottom elevation of this component measured from the level of the floor on which this component is located.

      If the component is not located on any floor, then this method returns the global bottom elevation of the component.

      Returns:
      the bottom elevation of this component measured from the level of the floor on which this component is located
      Since:
      9.10.3
    • getTopElevationFromFloor

      double getTopElevationFromFloor()
      Returns the top elevation of this component measured from the level of the floor on which this component is located.

      If the component is not located on any floor, then this method returns the global top elevation of the component.

      Returns:
      the top elevation of this component measured from the level of the floor on which this component is located
      Since:
      9.10.3
    • getGUID

      String getGUID()
      Returns the GUID of this component specified in IFC.
      Returns:
      the GUID of this component specified in IFC
      Since:
      9.10.2
    • equals

      boolean equals(Object object)
      Returns true if the components are equal.
      Overrides:
      equals in class Object
      Parameters:
      object - the other component
      Returns:
      true if the components are equal
      Since:
      9.10.2
    • getPropertySets

      Collection<PropertySet> getPropertySets()
      Returns the property sets of this component.
      Returns:
      the property sets of this component
      Since:
      9.10.2
    • getPropertySets

      Collection<PropertySet> getPropertySets(String name)
      Returns the property sets of this component with the given name.
      Parameters:
      name - the name of the property set
      Returns:
      the property sets of this component with the given name
      Since:
      9.10.2
    • getPropertyValue

      <T> Optional<T> getPropertyValue(PropertyReference propertyReference)
      Returns the value of property to which the given PropertyReference refers. If this entity does not contain the property to which the reference refers or if the property value is not of the given type, then returns empty.
      Type Parameters:
      T - the expected type of the property value
      Parameters:
      propertyReference - reference to the property whose value is returned if present
      Returns:
      the value of the property to which the given PropertyReference refers
    • getTriangleMesh

      TriangleMesh getTriangleMesh()
      Returns the TriangleMesh composed of the triangles of this component and its decomposed components.
      Returns:
      the TriangleMesh of this component and its decomposed components.
    • getBoundingBox

      AABB3d getBoundingBox()
      Calculates the axis-aligned bounding box for this component.
      Returns:
      the axis-aligned bounding box
    • getBuilding

      Optional<Building> getBuilding()
      Returns the building in which this component is located.
      Returns:
      the building in which this component is located
      Since:
      9.10.3
    • getFederatedFloor

      Optional<BuildingStorey> getFederatedFloor()
      Returns the federated floor on which this component is located. If this component is not located on any federated floor, then returns empty.

      Federated floors are calculated by Solibri Desktop and are based on the geometric location of components on storeys in the model.

      Returns:
      the federated floor on which this component is located
      Since:
      9.10.3
    • getFloor

      Returns the floor on which this component is located. If this component is not marked to belong to any floor, then returns empty.

      The returned floor is the floor to which this component is located on based on IFC relations.

      Returns:
      the floor on which this component is located
      Since:
      9.10.3
    • getFootprint

      Footprint getFootprint()
      Returns the footprint for this component.
      Returns:
      the footprint for this component
    • getFunctionalSystems

      Set<FunctionalSystem> getFunctionalSystems()
      Returns a set of the systems of this component. If the component does not belong to any system, returns empty list.
      Returns:
      a set of the systems of this component
      Since:
      9.10.3
    • getRelated

      Collection<Component> getRelated(Relation relation)
      Returns the components that are related to this component through the given relation.
      Parameters:
      relation - the relation through which the returned components are related to this component
      Returns:
      the components that are related to this component through the given relation
      Since:
      9.10.2
    • getName

      String getName()
      Returns the localized display name of this component.

      The returned name is a short localized display name that describes the type of the component and the unique index number in the model e.g. Wall.0.12

      Returns:
      the localized display name of this component
      Since:
      9.10.2
    • getConstructionType

      Optional<String> getConstructionType()
      Returns the technical construction type of the component if it is specified. Otherwise returns empty.

      The returned type is a specific technical type, such as a type code. For getting the general type of the component, the getComponentType() method should be used.

      Returns:
      the technical type of the component if it is specified
      Since:
      9.10.3
    • getIntersections

      Set<Intersection> getIntersections(Component component)
      Returns the intersections of this component and given component.
      Parameters:
      component - a component whose intersections with this component are to be calculated
      Returns:
      a set of intersections between this component and given component
      Since:
      9.10.2
      See Also:
    • distance

      Optional<Double> distance(Vector3d point)
      Returns the minimum 3d distance between the surface of this Component and a given point, if it exists. If the point is inside the component, the distance will be from the point to the inner surface of the component. To check if a point is inside a component instead, use TriangleMesh.encloses(Vector3d) on the mesh obtained via getTriangleMesh().
      Parameters:
      point - the given point as Vector3d
      Returns:
      the distance, if it exists
      Since:
      9.10.2
    • distance

      Optional<Double> distance(Component other)
      Returns the minimum 3d distance between the surfaces of this Component and another, if it exists. If the other component is inside the component, the distance will be from the inner component to the inner surface of the outer component.
      Parameters:
      other - the other Component
      Returns:
      the distance, if it exists
      Since:
      9.10.2
    • horizontalDistance

      Optional<Double> horizontalDistance(Vector3d point)
      Returns the horizontal distance between the surface of this Component and a point, if it exists. If the point is inside the component, the distance will be from the point to the inner surface of the component.
      Parameters:
      point - the point as Vector3d
      Returns:
      the distance, if it exists
      Since:
      9.10.2
    • horizontalDistance

      Optional<Double> horizontalDistance(Component other)
      Returns the horizontal distance between the surfaces of this Component and another, if it exists. If the other component is inside the component, the distance will be from the inner component to the inner surface of the outer component.
      Parameters:
      other - the other Component
      Returns:
      the distance, if it exists
      Since:
      9.10.2
    • verticalDistance

      Optional<Double> verticalDistance(Vector3d point)
      Returns the vertical distance between the surface of this Component and a point, if it exists. If the point is inside the component, the distance will be from the point to the inner surface of the component.
      Parameters:
      point - the point as Vector3d
      Returns:
      the distance, if it exists
      Since:
      9.10.2
    • verticalDistance

      Optional<Double> verticalDistance(Component other)
      Returns the vertical distance between the surfaces of this Component and another, if it exists. If the other component is inside the component, the distance will be from the inner component to the inner surface of the outer component.
      Parameters:
      other - the other Component
      Returns:
      the distance, if it exists
      Since:
      9.10.2
    • projectionOnXYPlaneDistance

      Optional<Double> projectionOnXYPlaneDistance(Vector3d other)
      Returns the 2d distance between the projections of this Component and point on the XY-plane, if it exists.
      Parameters:
      other - point the point as Vector3d
      Returns:
      the distance on the XY-plane, if it exists
      Since:
      9.10.2
    • projectionOnXYPlaneDistance

      Optional<Double> projectionOnXYPlaneDistance(Component other)
      Returns the 2d distance between the projections of this Component and another on the XY-plane, if it exists.
      Parameters:
      other - the other Component
      Returns:
      the distance on the XY-plane, if it exists
      Since:
      9.10.2
    • getProfile

      Optional<Profile> getProfile()
      Returns the profile of this component if it exists.
      Returns:
      the profile of this component if it exists.
      Since:
      9.10.3
    • isOnBuildingEnvelope

      boolean isOnBuildingEnvelope()
      Returns true if this component is modelled as part of a building envelope. The calculation is based on the property isExternal of this component, if it exists (some components do not have any property set with property isExternal).
      Returns:
      true if this component is modelled as part of a building envelope
      Since:
      9.10.3
    • getSite

      Optional<Site> getSite()
      Returns the site of the component if it exists.
      Returns:
      the site of the component if it exists
      Since:
      9.10.3
    • getMaterials

      List<Material> getMaterials()
      Returns a list of the materials of this component. A component can consist of multiple materials. Returns an empty list if no material information exists. Note: This method returns only Materials having IfcEntityType as IfcEntityType.IfcMaterial or not defined. The IFC models imported using version 24.5.0 or earlier don't have IfcEntityType for materials.
      Returns:
      a list of the materials of this component
      Since:
      9.10.3
    • getAllMaterials

      List<Material> getAllMaterials()
      Returns a list of all materials of this component. A component can consist of multiple materials. Returns an empty list if no material information exists. Note: The materials returned by this method include all materials objects: IfcMaterial, IfcMaterialLayer, IfcMaterialLayerSet, IfcMaterialConstituent and IfcMaterialConstituentSet.
      Returns:
      a list of the materials of this component
      Since:
      24.9.0
    • getGroups

      Set<Group> getGroups()
      Returns a set of the groups of the component if any exists, otherwise returns empty collection.
      Returns:
      a set of the groups of the component if any exists, otherwise returns empty collection
      Since:
      9.10.4
    • getHyperlinks

      Collection<Hyperlink> getHyperlinks()
      Returns the hyperlinks associated with this component. If there are no hyperlinks for this component, then returns an empty collection.
      Returns:
      the hyperlinks associated with this component
      Since:
      9.10.4
    • getIfcEntityType

      Optional<IfcEntityType> getIfcEntityType()
      Returns the matching IFC entity type if the component matches one.
      Returns:
      the IFC entity type if such is found
      Since:
      9.10.6
    • getModel

      Model getModel()
      Returns the model to which this component belongs.
      Returns:
      the model
      Since:
      9.12.0
    • getInformation

      <T> Optional<T> getInformation(Class<? extends Information<T>> information)
      Returns the custom information value for this component for the given custom information.
      Type Parameters:
      T - the type of the custom information return value
      Parameters:
      information - the information to get
      Returns:
      the value if defined for this component, empty optional otherwise
      Since:
      9.12.3
    • getInformationAsString

      Optional<String> getInformationAsString(String informationUniqueId)
      Returns the custom Information as String for this component. Return value as String means how the Information has implemented the getInformationAsString method. The custom information is defined by unique id.
      Parameters:
      informationUniqueId - the information unique id
      Returns:
      the value if defined for this component, empty optional otherwise
      Since:
      9.12.7
    • getParametricInformationAsString

      Optional<String> getParametricInformationAsString(String informationUniqueId, Map<String,String> parameters)
      Returns the custom ParametricInformation as String for this component. Return value as String means how the Information has implemented the getInformationAsString method. The custom parametric defined by unique id.
      Parameters:
      informationUniqueId - the parametric information unique id
      parameters - the parameters as name to value map
      Returns:
      the value if defined for this component, empty optional otherwise
      Since:
      9.12.7
    • getPredefinedType

      Optional<String> getPredefinedType()
      Returns the predefined type.
      Returns:
      the predefined type
      Since:
      9.12.8
    • getResolvedPredefinedType

      Optional<String> getResolvedPredefinedType()
      Returns the resolved predefined type. The resolution happens in the following order: When component's predefined type is available:
      1. If component's predefined type is USERDEFINED, then the value is taken from object type.
      2. If component's predefined type is not USERDEFINED, then the value is taken from predefined type.
      When component's predefined type not available, the value is taken from component's type:
      1. If type's predefined type is USERDEFINED, then the value is taken from type's element type.
      2. If type's predefined type is not USERDEFINED, then the value is taken from type's predefined type.
      Returns:
      the resolved predefined type
      Since:
      9.13.3
    • getComponentName

      Optional<String> getComponentName()
      Returns the name of the component. The component name is shown as Name in the Info view. The value is imported from IfcRoot.Name.
      Returns:
      the component name
      Since:
      9.12.8
    • getTypeName

      Optional<String> getTypeName()
      Returns the name of component's type object. The value is imported from IfcTypeObject.Name.
      Returns:
      the name of the component's type object
      Since:
      9.12.8
    • getIfcType

      Optional<IfcEntityType> getIfcType()
      Returns the matching IFC entity type of the component's type object if the type object matches one.
      Returns:
      the IFC entity type if such is found
      Since:
      9.12.8
    • getElementType

      Optional<String> getElementType()
      Returns the element type of the component. Comes from IfcElementType.ElementType.
      Returns:
      the component element type
      Since:
      9.12.9
    • getCompositionType

      Optional<String> getCompositionType()
      Returns the composition type of the component. Comes from IfcSpatialElement.CompositionType.
      Returns:
      the composition type
      Since:
      9.13.8
    • getObjectType

      Optional<String> getObjectType()
      Returns the object type of the component. Comes from IfcObject.ObjectType.
      Returns:
      the component object type
      Since:
      9.12.9
    • getGeometryType

      Optional<ComponentGeometryType> getGeometryType()
      Returns the geometry type of the component.
      Returns:
      the component geometry
      Since:
      9.12.8
    • getDistanceToNextFloor

      double getDistanceToNextFloor()
      Returns the vertical distance in meters to the next floor level measured from the top level of the component. The next floor is the floor above the component's floor.
      Returns:
      the distance to next floor in meters
      Since:
      9.12.8
    • getGlobalCoordinate

      Optional<Vector3d> getGlobalCoordinate()
      Returns the insertion point of the component in the global coordinates.
      Returns:
      the global coordinate or empty if component doesn't have geometry
      Since:
      9.12.8
    • getBoundingBoxHeight

      OptionalDouble getBoundingBoxHeight()
      Returns the height of the component's bounding box.
      Returns:
      the bounding box height
      Since:
      9.12.8
    • getBoundingBoxLength

      OptionalDouble getBoundingBoxLength()
      Returns the length of the component's bounding box. The length is the longer side of the bounding box. The bounding box is minimal and oriented on XY-plane around component's footprint.
      Returns:
      the bounding box length
      Since:
      9.12.8
    • getBoundingBoxWidth

      OptionalDouble getBoundingBoxWidth()
      Returns the width of the component's bounding box. The width is the shorter side of the bounding box.The bounding box is minimal and oriented on XY-plane around component's footprint.
      Returns:
      the bounding box width
      Since:
      9.12.8
    • getNameText

      Optional<String> getNameText()
      Returns a name as defined in IFC of this component if one is specified. Otherwise returns empty.
      Returns:
      the IFC name of this component if one is specified
      Since:
      9.13.4