IfcOpenShell C++ API¶
Page Hierarchy¶
Class Hierarchy¶
- Namespace ifcopenshell
- Namespace ifcopenshell::geom
- Namespace ifcopenshell::geom::impl
Template Struct pack_to_variant_array< parameter_pack< Args… > >
Template Struct type_encoder_impl< parameter_pack< Types… > >
- Namespace impl
Template Struct is_unique_ptr< std::unique_ptr< T, Args… > >
Template Struct make_union_from_tuple< std::tuple< Args… > >
Template Struct variant_type_name< boost::dynamic_bitset< > >
Template Struct variant_type_name< ifcopenshell::empty_aggregate >
Template Struct variant_type_name< ifcopenshell::empty_aggregate_of_aggregate >
Template Struct variant_type_name< ifcopenshell::enumeration_reference >
Template Struct variant_type_name< ifcopenshell::instance_reference >
Template Struct variant_type_name< std::vector< ifcopenshell::reference_or_simple_type > >
Template Struct variant_type_name< std::vector< T, Allocator > >
File Hierarchy¶
Full API¶
Namespaces¶
Classes and Structs¶
- Struct in_memory_file_storage
- Nested Relationships
- Struct Documentation
ifcopenshell::impl::in_memory_file_storageentities_by_typeentity_instance_by_name_storageentity_instance_by_nametype_instance_by_nameentity_instance_by_guidentities_by_refiteratorsteal_instances()index_lazily()materialize()in_memory_file_storage()in_memory_file_storage()in_memory_file_storage()~in_memory_file_storage()load()load_attributes()resolve_instance_references()register_inverse()unregister_inverse()read_from_stream()instance_by_id()sort_type_lists()add_type_ref()remove_type_ref()process_deletion_inverse()create()create()read_simple_type_instanceslogger_fileschemareferences_to_resolveresolve_references_in_placelazy_register_inverses_lazy_source_lazy_bypassed_lazy_offsets_byid_tbyid_bytype_excl_byref_excl_byguid_byid_read_good_guid_key()id_before()id_after()sort_type_list()ifcopenshell::impl::in_memory_file_storage::guid_key_hash
- Template Class hierarchy_helper
- Inheritance Relationships
- Class Documentation
hierarchy_helperhierarchy_helper()addTriplet()addDoublet()addValue()getSingle()addPlacement3d()addPlacement2d()addLocalPlacement()addRelatedObject()addOwnerHistory()addProject()relatePlacements()addSite()addBuilding()addBuildingStorey()addBuildingProduct()addExtrudedPolyline()addExtrudedPolyline()addBox()addBox()addAxis()addAxisBox()clipRepresentation()clipRepresentation()addMappedItem()addMappedItem()addEmptyRepresentation()getRepresentationContext()getRepresentationSubContext()
- Class attribute_value
- Class Documentation
ifcopenshell::attribute_valueattribute_value()attribute_value()attribute_value()operator int64_t()operator bool()operator boost::logic::tribool()operator double()operator std::string()operator boost::dynamic_bitset()operator express::base()operator std::vector< int64_t >()operator std::vector< double >()operator std::vector< std::string >()operator std::vector< boost::dynamic_bitset >()operator std::vector< express::base >()operator std::vector< std::vector< int64_t >>()operator std::vector< std::vector< double >>()operator std::vector< std::vector< express::base >>()operator enumeration_reference()isNull()size()type()apply_visitor()
- Class Documentation
- Class entity
- Inheritance Relationships
- Class Documentation
ifcopenshell::entityentity()~entity()is_abstract()set_subtypes()set_attributes()set_inverse_attributes()subtypes()attributes()inverse_attributes()derived()all_attributes()all_inverse_attributes()attribute_by_index()attribute_count()attribute_index()attribute_index()supertype()as_entity()attribute_by_index_()is_abstract_supertype_subtypes_attributes_all_attributes_derived_inverse_attributes_
- Class file
- Inheritance Relationships
- Class Documentation
ifcopenshell::fileconst_iteratortype_iteratorstorage_typeentity_instance_by_guidentity_by_identities_by_reffile()file()file()file()file()initialize()lazy_loading()lazy_loading()paged_reading()paged_reading()bypass_type()~file()good()logger()begin()end()types_begin()types_end()instances_by_type()instances_by_type_excl_subtypes()instances_by_type()instances_by_type_excl_subtypes()instances_by_type()instances_by_type_excl_subtypes()instances_by_reference()all_referencing_instances()instance_by_id()instance_by_guid()get_inverse_indices_by_id()get_inverse()get_inverse()get_total_inverses()fresh_id()get_max_id()ifcroot_type()recalculate_id_counter()add_entity()remove_entity()header()header()schema()get_unit()build_inverses()register_inverse()unregister_inverse()internal_guid_map()add_type_ref()remove_type_ref()process_deletion_inverse()build_inverses_()create()create()batch()unbatch()reset_identity_cache()byguid_byid_byref_excl_check_existance_before_addingcalculate_unit_factorsstorage_types_to_bypass_loading_traverse()traverse_breadth_first()create_timestamp()
- Class abstract_mapping
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::abstract_mappingabstract_mapping()~abstract_mapping()map()get_representations()get_decomposing_entity()get_layers()find_openings()initialize_settings()get_layerset_information()get_wall_neighbours()get_product_type()get_single_material_association()get_length_unit()get_length_unit_name()representation_of()settings()settings()logger()use_caching()use_caching()settings_logger_use_caching_
- Class cgal_shape
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::cgal_shapecgal_shape()cgal_shape()cgal_shape()cgal_shape()to_poly()to_nef()operator const CGAL::Nef_polyhedron_3< kernel > &()nef()backend_id()operator const cgal_polyhedron &()poly()is_poly()is_point()is_wire()point()wire()triangulate()serialize()clone()is_manifold()bounding_box()num_vertices()set_box()surface_genus()num_edges()num_faces()bounding_box()length()area()volume()position()axis()plane_equation()convex_decomposition()halfspaces()solid()box()wrap_in_compound()vertices()edges()facets()add()subtract()intersect()concat()map()map()moved()surface_area_along_direction()convex_tag()convex_tag()
- Class cgal_shape_half_space_decomposition
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::cgal_shape_half_space_decompositioncgal_shape_half_space_decomposition()cgal_shape_half_space_decomposition()backend_id()triangulate()serialize()surface_genus()is_manifold()num_vertices()num_edges()num_faces()bounding_box()bounding_box()set_box()length()area()volume()position()axis()plane_equation()convex_decomposition()halfspaces()solid()box()wrap_in_compound()vertices()edges()facets()add()subtract()intersect()concat()map()map()moved()surface_area_along_direction()
- Class conversion_result_shape
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::conversion_result_shapebackend_id()triangulate()triangulate()serialize()surface_genus()is_manifold()num_vertices()num_edges()num_faces()bounding_box()bounding_box()set_box()length()area()volume()position()axis()plane_equation()convex_decomposition()halfspaces()box()solid()wrap_in_compound()vertices()edges()facets()add()subtract()intersect()concat()map()map()moved()surface_area_along_direction()~conversion_result_shape()
- Class bvh_tree
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::impl::bvh_treebackend_id()add_file()add_element()clash_intersection_many()clash_collision_many()clash_clearance_many()is_point_in_shape()pierce_shape()is_point_on_line()is_point_on_line()clash_bvh()test_intersection()test_collision()test_clearance()build_box_set()allocate_tasks_to_threads()add_triangulation_element()tri_count_aabbs_obbs_max_protrusions_bvhs_is_manifold_tris_verts_normals_
- Template Class ub_tree
- Nested Relationships
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::impl::ub_treebackend_id()add_file()add_element()select_box()select_box()select()select()select_ray()distances()protrusion_distances()enable_face_styles()enable_face_styles()styles()add()add()select_box()select_box()select_box()select()select()select()spatial_treeshape_mapface_style_maptree_shapes_distances_protrusion_distances_enable_face_styles_face_styles_styles_ifcopenshell::geom::impl::ub_tree::selector
- Class iterator
- Class Documentation
ifcopenshell::geom::iteratoriterator()iterator()iterator()~iterator()get_task_items()get_task_products()unit_name()unit_magnitude()had_error_processing_elements()initialize()process_finished_rep()process_concurrently()compute_bounds()progress()getLog()file()filters()filters()bounds_min()bounds_max()next()get()get_native()get_object()create()initialization_outcome_processed_
- Class Documentation
- Class abstract_kernel
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::kernels::abstract_kernelabstract_kernel()~abstract_kernel()convert()settings()apply_settings()geometry_library()backend_id()accepts()logger()supports_boolean_operations()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()apply_layerset()apply_folded_layerset()convert_openings()unify_shapes()clone()propagate_exceptionspartial_success_is_successgeometry_library_settings_logger_
- Class manifold_shape
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::manifold_shapemanifold_shape()manifold_shape()manifold_shape()manifold_shape()manifold_shape()manifold_shape()parts()as_manifold()backend_id()triangulate()serialize()surface_genus()is_manifold()num_vertices()num_edges()num_faces()bounding_box()bounding_box()set_box()length()area()volume()position()axis()plane_equation()convex_decomposition()halfspaces()box()solid()wrap_in_compound()vertices()edges()facets()add()subtract()intersect()concat()map()map()moved()surface_area_along_direction()
- Class mapping_Schema
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::mapping_Schemamapping_Schema()map()get_representations()get_layers()initialize_settings()get_length_unit()get_length_unit_name()find_openings()representation_of()get_product_type()get_single_material_association()representation_mapped_to()products_represented_by()reuse_ok_()get_decomposing_entity()get_layerset_information()get_wall_neighbours()find_representation()
- Class open_cascade_kernel
- Nested Relationships
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::open_cascade_kernelcurve_creation_visitor_result_typeopen_cascade_kernel()clone()supports_boolean_operations()convert()convert()convert()convert()convert()convert()convert()convert()convert()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_impl()convert_openings()unify_shapes()convert_curve()convert_surface()convert_xyz()convert_xyz2()
- Class open_cascade_shape
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::open_cascade_shapeopen_cascade_shape()open_cascade_shape()shape()operator const TopoDS_Shape &()backend_id()triangulate()serialize()clone()bounding_box()set_box()surface_genus()is_manifold()num_vertices()num_edges()num_faces()bounding_box()length()area()volume()position()axis()plane_equation()convex_decomposition()halfspaces()solid()box()wrap_in_compound()vertices()edges()facets()add()subtract()intersect()concat()map()map()moved()surface_area_along_direction()
- Class passthrough_shape
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::passthrough_shapepassthrough_shape()passthrough_shape()passthrough_shape()passthrough_shape()passthrough_shape()parts()backend_id()triangulate()serialize()surface_genus()is_manifold()num_vertices()num_edges()num_faces()bounding_box()bounding_box()set_box()length()area()volume()position()axis()plane_equation()convex_decomposition()halfspaces()box()solid()wrap_in_compound()vertices()edges()facets()add()subtract()intersect()concat()map()map()moved()surface_area_along_direction()
- Class settings
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::settingsMesherLinearDeflectionMesherAngularDeflectionReorientShellsLengthUnitPlaneUnitPrecisionOutputDimensionalityLayersetFirstDisableBooleanResultNoWireIntersectionCheckNoWireIntersectionTolerancePrecisionFactorDebugBooleanOperationsBooleanAttempt2dSurfaceColourWeldVerticesUseWorldCoordsUnifyShapesUseMaterialNamesConvertBackUnitsContextIdsContextTypesContextIdentifiersContextPrioritiesIteratorOutputDisableOpeningSubtractionsMaxVoidsPerElementApplyDefaultMaterialsDontEmitNormalsGenerateUvsApplyLayerSetsUseElementHierarchyValidateQuantitiesEdgeArrowsBuildingLocalPlacementSiteLocalPlacementForceSpaceTransparencyCircleSegmentsCgalSmoothAngleDegreesSvgRidgeAngleMinDegreesSvgValleyAngleMinDegreesSvgEmitFlushEdgesSvgUseEdgeClassificationSvgRenderCreaseEdgesSvgRenderSharpEdgesKeepBoundingBoxesComputeCurvatureFunctionStepTypeFunctionStepParamNoParallelMappingPermissiveShapeReuseModelOffsetModelRotationTriangulationTypeCgalEmitOriginalEdgesOcctNoCleanTriangulationCacheShapesDeferProcessingFirstElementMaxOffsetMaxOffsetDeviationApplyOffsetMakeVolumeUseElementNamesUseElementGuidsUseElementStepIdsUseElementTypesUseYUpWriteGltfEcefFloatingPointDigitsBaseUriWktUseSectionSeparateZUpNodeSvgBoundsSvgScaleSvgCenterSvgSectionRefSvgElevationRefSvgElevationRefGuidSvgAutoSectionSvgAutoElevationSvgDrawStoreyHeightsSvgProfileThresholdSvgStoreyHeightLineLengthSvgUseNamespaceSvgUseHlrPolySvgUsePrefilteringSvgUnifyInputsSvgSegmentProjectionSvgSubtractBeforeSvgPolygonalSvgAlwaysProjectSvgWithoutStoreysSvgNoCssSvgMirrorYSvgMirrorXSvgDoorArcsSvgSectionHeightSvgSectionHeightFromStoreysSvgPrintSpaceNamesSvgPrintSpaceAreasSvgSpaceNameTransformOutputDimensionalityTypesIteratorOutputOptionsFunctionStepMethodTriangulationMethodCURVESSURFACES_AND_SOLIDSCURVES_SURFACES_AND_SOLIDSTRIANGULATEDNATIVESERIALIZEDMAXSTEPSIZEMINSTEPSTRIANGLE_MESHPOLYHEDRON_WITHOUT_HOLESPOLYHEDRON_WITH_HOLES
- Class tree
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::treetree()~tree()tree()operator=()backend_id()add_file()add_file()add_element()select_box()select_box()select_box()select()select()select()select_ray()clash_intersection_many()clash_collision_many()clash_clearance_many()distances()protrusion_distances()enable_face_styles()enable_face_styles()styles()uint8_to_b64()is_manifold()
- Class triangulation
- Inheritance Relationships
- Class Documentation
ifcopenshell::geom::triangulationverts()faces()polyhedral_faces_without_holes()polyhedral_faces_with_holes()edges()normals()uvs()uvs_ref()material_ids()materials()item_ids()edges_item_ids()triangulation()triangulation()~triangulation()addVertex()addNormal()addFace()addFace()addFace()addEdge()registerEdge()registerEdgeCount()resetWelds()box_project_uvs()empty()
- Class inverse_index
- Nested Relationships
- Class Documentation
ifcopenshell::impl::inverse_indexlegacy_bucketlegacy_mapkey_typemapped_typevalue_typeiteratorconst_iteratorinverse_index()inverse_index()operator=()inverse_index()operator=()reserve()add()remove()sort()for_each()count()all_sources()empty()size()clear()begin()end()begin()end()find()find()erase()insert()sort_records()
- Class rocks_db_file_storage
- Class Documentation
ifcopenshell::impl::rocks_db_file_storageinstance_refINVERSE_ATTRentity_by_iden_cacheinstance_name_viewentity_instance_by_nameinstance_id_str_by_typeinstance_id_by_guid_strentity_instance_by_guidinverse_attr_recordentities_by_refconst_iteratorerase_instances()rocks_db_file_storage()~rocks_db_file_storage()read_schema()assert_existance()register_inverse()unregister_inverse()add_type_ref()remove_type_ref()instance_by_id()process_deletion_inverse()create()create()dbwoptsroptsfileinstance_cache_type_instance_cache_instance_cache_mutex_id_counter_recalculated_instance_ids_instance_by_name_bytype_byguid_internal_byguid_byref_excl_read_only_
- Class Documentation
- Class instance_data
- Nested Relationships
- Class Documentation
ifcopenshell::instance_dataensure_loaded()instance_data()declaration()file()identity()id()instance_data()instance_data()instance_data()operator=()operator=()instance_data()~instance_data()get_attribute_value()set_attribute_value()has_attribute_value()to_string()storage_get_storage_of_type()populate_derived_()file_declaration_identity_id_counter_ifcopenshell::instance_data::lazy_tag
- Template Class instance_streamer
- Class Documentation
ifcopenshell::instance_streameroperator bool()status()references()references()bypassed_instances()inverses()inverses()steal_instances()has_semicolon()semicolon_count()push_page()instance_streamer()instance_streamer()instance_streamer()instance_streamer()bypass_types()resolve_references_in_place()yield_header_instances()schema()header()~instance_streamer()read_instance()coerce_attribute_count
- Class Documentation
- Class logger
- Class Documentation
ifcopenshell::loggerseverityformatlogger()logger()operator=()set_product()set_product()set_output()set_output()verbosity()verbosity()max_severity()output_format()output_format()message()message()message()message()notice()warning()error()notice()warning()error()notice()warning()error()notice()warning()error()status()progress_bar()get_log()count()clear()append()print_performance_stats()print_performance_stats_on_element()print_performance_stats_on_element()log_messages()root()
- Class Documentation
- Template Class map_transformer
- Template Class variant_map
- Nested Relationships
- Class Documentation
variant_mapvariant_typefirst_mapkey_typemapped_typevalue_typeunderlying_iterator_variantvariant_map()variant_map()begin()end()find()erase()erase()insert()map_to_map_key()to_value()variant_map::is_char_arrayvariant_map::is_char_array< std::array< char, N > >variant_map::iteratorvariant_map::public_keyvariant_map::public_key< std::array< char, N > >
Enums¶
- Enum argument_type
- Enum Documentation
argument_typeArgument_NULLArgument_DERIVEDArgument_INTArgument_BOOLArgument_LOGICALArgument_DOUBLEArgument_STRINGArgument_BINARYArgument_ENUMERATIONArgument_ENTITY_INSTANCEArgument_EMPTY_AGGREGATEArgument_AGGREGATE_OF_INTArgument_AGGREGATE_OF_DOUBLEArgument_AGGREGATE_OF_STRINGArgument_AGGREGATE_OF_BINARYArgument_AGGREGATE_OF_ENTITY_INSTANCEArgument_AGGREGATE_OF_EMPTY_AGGREGATEArgument_AGGREGATE_OF_AGGREGATE_OF_INTArgument_AGGREGATE_OF_AGGREGATE_OF_DOUBLEArgument_AGGREGATE_OF_AGGREGATE_OF_ENTITY_INSTANCEArgument_UNRESOLVED_REFERENCEArgument_UNRESOLVED_REFERENCE_AGGREGATEArgument_UNRESOLVED_REFERENCE_AGGREGATE_OF_AGGREGATEArgument_UNKNOWN
- Enum Documentation
- Enum kinds
- Enum Documentation
kindsMATRIX4POINT3DIRECTION3LINECIRCLEELLIPSEBSPLINE_CURVEOFFSET_CURVEPLANECYLINDERSPHERETORUSBSPLINE_SURFACEEDGELOOPFACESHELLSOLIDLOFTEXTRUSIONREVOLVESWEEP_ALONG_CURVENODECOLLECTIONBOOLEAN_RESULTFUNCTION_ITEMFUNCTOR_ITEMPIECEWISE_FUNCTIONGRADIENT_FUNCTIONCANT_FUNCTIONOFFSET_FUNCTIONCOLOURSTYLE
- Enum Documentation