ifcopenshell.ifcopenshell_wrapper

Module Contents

class ifcopenshell.ifcopenshell_wrapper.DoubleArray3(*args)
back()
begin()
empty()
end()
fill(u)
front()
iterator()
rbegin()
rend()
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.DoubleArray3x2(*args)
back()
begin()
empty()
end()
fill(u)
front()
iterator()
rbegin()
rend()
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.OpaqueCoordinate_3(*args)
get(i)
get_double(i)
set(i, n)
size()
to_double()
class ifcopenshell.ifcopenshell_wrapper.OpaqueCoordinate_4(*args)
get(i)
get_double(i)
set(i, n)
size()
to_double()
class ifcopenshell.ifcopenshell_wrapper.RocksDBPrefixIterator(storage, prefix)
key()
next()
valid()
value()
class ifcopenshell.ifcopenshell_wrapper.RocksDbSerializer(*args)
finalize() → None
is_streaming() → bool
ready() → bool
setFile(arg2) → None
writeHeader() → None
class ifcopenshell.ifcopenshell_wrapper.SwigPyIterator(*args, **kwargs)
advance(n)
copy()
decr(n=1)
distance(x)
equal(x)
incr(n=1)
next()
previous()
value()
class ifcopenshell.ifcopenshell_wrapper.aggregation_type(type_of_aggregation, bound1, bound2, type_of_element)

Bases: parameter_type

as_aggregation_type() → aggregation_type
bound1()
bound2()
type_of_aggregation()
type_of_aggregation_string()
type_of_element() → parameter_type
array_type: Any
bag_type: Any
list_type: Any
set_type: Any
class ifcopenshell.ifcopenshell_wrapper.arrange_polygon_settings
debug_output: bool
line_cleaning_algo: int
outer_perimiter_algo: int
perform_cleanup: bool
polygon_offset_distance: float
subdivision_factor: float
topology_reconstruction_algo: int
class ifcopenshell.ifcopenshell_wrapper.attribute(name, type_of_attribute, optional)
name() → str
optional() → bool
type_of_attribute() → parameter_type
class ifcopenshell.ifcopenshell_wrapper.attribute_value_derived
class ifcopenshell.ifcopenshell_wrapper.boolean_result
calc_hash()
clone_()
kind()
static operation_str(op)
INTERSECTION: Any
SUBTRACTION: Any
UNION: Any
property children
operation: Any
class ifcopenshell.ifcopenshell_wrapper.bspline_curve

Bases: curve

calc_hash()
clone_()
kind()
control_points: Any
degree: Any
knots: Any
multiplicities: Any
weights: Any
class ifcopenshell.ifcopenshell_wrapper.bspline_surface

Bases: surface

calc_hash()
clone_()
kind()
control_points: Any
degree: Any
knots: Any
multiplicities: Any
weights: Any
class ifcopenshell.ifcopenshell_wrapper.buffer(*args)
filename()
get_value()
is_ready()
class ifcopenshell.ifcopenshell_wrapper.cant_function(*args)

Bases: function_item

calc_hash()
clone_()
end()
get_cant()
get_gradient()
kind()
start()
class ifcopenshell.ifcopenshell_wrapper.circle

Bases: curve

calc_hash()
clone_()
static from_3_points(p1, p2, p3)
kind()
property matrix
radius: Any
class ifcopenshell.ifcopenshell_wrapper.clash
a: Any
b: Any
clash_type: Any
distance: Any
p1: Any
p2: Any
class ifcopenshell.ifcopenshell_wrapper.clashes(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.collection
calc_hash()
clone_()
kind()
property children
property matrix
class ifcopenshell.ifcopenshell_wrapper.colour(*args)

Bases: item

b() → float
calc_hash() → int
clone_() → Self
g() → float
kind() → int
r() → float
property components: tuple[float, float, float]

RGB tuple.

class ifcopenshell.ifcopenshell_wrapper.context(*args)
add(segments)
build()
get_face_pairs()
merge(edge_indices)
num_edges()
num_faces()
write(arg2)
class ifcopenshell.ifcopenshell_wrapper.conversion_result(*args)
ItemId()
append(trsf)
apply_transform(unit_scale=1.0)
hasStyle()
placement()
prepend(trsf)
setStyle(newStyle)
shape() → conversion_result_shape
style()
style_ptr()
class ifcopenshell.ifcopenshell_wrapper.conversion_result_shape(*args, **kwargs)
add(arg2)
area()
axis()
backend_id() → str
bounding_box(*args)
box()
concat(arg2)
convex_decomposition()
convex_tag(b)
edges()
facets()
halfspaces()
intersect(arg2)
is_manifold()
length()
map(*args)
moved(arg2)
num_edges()
num_faces()
num_vertices()
plane_equation()
position()
serialize(*args: matrix4 | str) → str | None
serialize_obj()
set_box(b)
solid()
solid_mt()
subtract(arg2)
surface_area_along_direction(tol, arg3, along_x, along_y, along_z)
surface_genus()
triangulate(*args)
vertices()
volume()
wrap_in_compound()
class ifcopenshell.ifcopenshell_wrapper.curve(*args, **kwargs)

Bases: geom_item

print_impl(o, classname, indent=0)
class ifcopenshell.ifcopenshell_wrapper.cylinder

Bases: surface

calc_hash()
clone_()
kind()
property matrix
radius: Any
class ifcopenshell.ifcopenshell_wrapper.declaration(name, index_in_schema)
as_entity() → entity | None
as_enumeration_type() → enumeration_type | None
as_select_type() → select_type | None
as_type_declaration() → type_declaration | None
index_in_schema() → int
name() → str
name_uc() → str

Get name in upper case.

schema() → schema_definition
type()
class ifcopenshell.ifcopenshell_wrapper.direction3(*args)
calc_hash()
clone_()
kind()
property components
class ifcopenshell.ifcopenshell_wrapper.edge(*args)

Bases: trimmed_curve

calc_hash()
clone_()
kind()
class ifcopenshell.ifcopenshell_wrapper.element(settings, id, parent_id, name, type, guid, context, trsf, product)
SetParents(newparents)
parents()
property context: str

Element’s geometry context.

E.g ‘Body’:

property guid: str

Mirroring IfcRoot.GlobalId.

property id: int

Element’s STEP ID.

property name: str

Mirroring IfcRoot.Name.

property parent_id: int

Parent object STEP id.

E.g. IfcBuildingStorey that element’s in.

property product: entity_instance
property transformation: transformation
property transformation_buffer: bytes
property type: str

Element’s IFC Class.

E.g. ‘IfcWall’.

property unique_id: str

Interal unique id for the element.

E.g. ‘product-186f8dc2-070c-46e1-a65b-a435a043ba3e-body’.

class ifcopenshell.ifcopenshell_wrapper.ellipse(*args, **kwargs)

Bases: curve

calc_hash()
clone_()
kind()
property matrix
radius: Any
radius2: Any
class ifcopenshell.ifcopenshell_wrapper.entity(name, is_abstract, index_in_schema, supertype)

Bases: declaration

all_attributes() → tuple[attribute, ...]

Get a tuple of attributes, including those inherited from supertypes.

all_inverse_attributes() → tuple[inverse_attribute, ...]

Get a tuple of inverse attributes, including those inherited from supertypes.

argument_types() → tuple[str, ...]

Get a tuple of types for each attribute in all_attributes().

as_entity() → entity
attribute_by_index(index: int) → attribute
attribute_count() → int
attribute_index(*args: str | attribute) → int
Parameters:

args – A single attribute name / attribute.

attributes() → tuple[attribute, ...]

Get a tuple of direct attributes.

derived() → tuple[bool, ...]

Return a tuple of booleans indicating whether each direct attribute is derived.

inverse_attributes() → tuple[inverse_attribute, ...]

Get a tuple of direct inverse attributes.

is_abstract() → bool
set_attributes(attributes, derived)
set_inverse_attributes(inverse_attributes)
set_subtypes(subtypes)
subtypes() → tuple[entity, ...]
supertype() → entity | None
class ifcopenshell.ifcopenshell_wrapper.entity_instance(*args)

Bases: ifcopenshell.entity_instance.entity_instance_mixin

Represents an entity (wall, slab, property, etc) of an IFC model

An IFC model consists of entities. Examples of entities include walls, slabs, doors and so on. Entities can also be non-physical things, like properties, systems, construction tasks, colours, geometry, and more.

Entities are defined through an IFC Class. There are hundreds of IFC Classes defined as part of the ISO standard by the buildingSMART International organisation. The IFC Class defines the attributes of an entity, as well as the data types and whether or not an attribute is mandatory or optional.

IfcOpenShell’s API dynamically implements the IFC schema. You will not find documentation about available IFC Classes, or what attributes they have. Please consult the buildingSMART official documentation or start reading Introduction to IFC.

In addition to the Python methods you see documented here, an instantiated entity_instance will have attributes defined by its IFC class. For example, an entity instance which is an IfcWall class will have a Name attribute, and an IfcColourRgb will have a Red attribute. Please consult the buildingSMART official documentation.

Example:

model = ifcopenshell.open(file_path)
walls = model.by_type("IfcWall")
wall = walls[0]

print(wall) # #38=IFCWALL('2MEinnTPbCMwLOgceaQZFu',$,$,'My Wall',$,#52,#47,$,$);
print(wall.is_a()) # IfcWall

# Note: the `Name` attribute is dynamic, based on the IFC class.
print(wall.Name) # My Wall

# Attributes are ordered and may also be accessed via index.
print(wall[3]) # My Wall

print(wall.__class__) # <class 'ifcopenshell.entity_instance'>
attribute_name(i: int) → str
attribute_type(*args: int | str) → Literal['NULL', 'DERIVED', 'INT', 'BOOL', 'LOGICAL', 'DOUBLE', 'STRING', 'BINARY', 'ENUMERATION', 'ENTITY INSTANCE', 'EMPTY AGGREGATE', 'AGGREGATE OF INT', 'AGGREGATE OF DOUBLE', 'AGGREGATE OF STRING', 'AGGREGATE OF BINARY', 'AGGREGATE OF ENTITY INSTANCE', 'AGGREGATE OF EMPTY AGGREGATE', 'AGGREGATE OF AGGREGATE OF INT', 'AGGREGATE OF AGGREGATE OF DOUBLE', 'AGGREGATE OF AGGREGATE OF ENTITY INSTANCE', 'UNKNOWN']
file_pointer() → int
get_argument(*args: int | str) → Any
get_argument_index(a: str) → int
get_attribute_category(name: str) → Literal[0, 1, 2, 3]

Get attribute category id.

Available categories: - 0 - invalid attribute - 1 - forward attribute - 2 - inverse attributes - 3 - derived attribute

get_attribute_names() → tuple[str, ...]
get_attribute_value(attribute_index: int) → Any
get_inverse_attribute_names() → tuple[str, ...]
id() → int
identity() → int

Entity instance identity, unique across all opened IFC files during current session.

is_a(*args)
set_attribute_value(*args)
set_attribute_value_py(i: int, value: Any) → None
to_string(*args) → str | None
unset_attribute_value(attribute_index: int) → None
property declaration: declaration
property file: ifcopenshell.file
class ifcopenshell.ifcopenshell_wrapper.enumeration_type(name, index_in_schema, enumeration_items)

Bases: declaration

argument_types() → tuple[str, ...]
as_enumeration_type() → enumeration_type
enumeration_items() → tuple[str, ...]
lookup_enum_offset(value_name: str) → int

Get index of the string in enum.

lookup_enum_value(i: int) → str

Get a string for the index in enum.

class ifcopenshell.ifcopenshell_wrapper.equal_functor
class ifcopenshell.ifcopenshell_wrapper.extrusion(m, basis, dir, d)

Bases: sweep

calc_hash()
clone_()
kind()
depth: Any
direction: Any
property matrix
class ifcopenshell.ifcopenshell_wrapper.face
calc_hash()
clone_()
kind()
print_impl(o, indent)
basis: Any
property children
property matrix
class ifcopenshell.ifcopenshell_wrapper.file(schema: ifcopenshell.util.schema.IFC_SCHEMA | None = None, schema_identifier: str | None = None, schema_version: tuple[int, int, int, int] | None = None)

Bases: ifcopenshell.file.file_mixin

Base class for containing IFC files.

Class has instance methods for filtering by element Id, Type, etc. Instantiated objects can be subscripted by Id or Guid

Example:

model = ifcopenshell.open(file_path)
products = model.by_type("IfcProduct")
print(products[0].id(), products[0].GlobalId) # 122 2XQ$n5SLP5MBLyL442paFx
print(products[0] == model[122] == model["2XQ$n5SLP5MBLyL442paFx"]) # True
add_type_ref(new_entity)
by_guid(global_id: str) → entity_instance
by_id(instance_id: int) → entity_instance
bypass_type(type_name: str) → None

Skip loading instances of type_name.

create(*args) → entity_instance
static create_timestamp() → str
static create_uninitialized(logger: file.create_uninitialized.logger | None = None) → file

Construct a file with no schema/data yet, to be populated by a later call to initialize().

When file is uninitialized, the only two available methods during this state are bypass_type() and initialize().

entity_names() → tuple[int, ...]

Get a tuple of step ids present in the file.

file_pointer() → int
fresh_id() → int
static from_string(s: str) → file
get_inverse_indices_by_id(instance_id: int) → tuple[int, ...]
get_inverses_by_declaration(instance_id: int, declaration: file.get_inverses_by_declaration.declaration, attribute_index: int) → tuple[entity_instance, ...]

Get instance inverses of the particular type defined by declaration.

Parameters:
  • declaration – Type of inverses to find. Supertypes are also supported - e.g. ‘IfcRoot’ will also include all ‘IfcRelationship’ inverses.

  • attribute_index – Find references only from the provided attribute index. Could be set to -1 to consider all attributes.

get_max_id() → int
get_total_inverses(*args: entity_instance | int) → int
good() → file_open_status
ifcroot_type() → entity
initialize(*args: str) → bool

Parse a file on a create_uninitialized() instance.

Parameters:

args – args[0] is a string path to the IFC file.

Returns:

Whether the file was read and parsed successfully. On failure, check good() for the specific reason.

key_value_store_iter(prefix)
key_value_store_query(key)
lazy_loading(*args: bool) → bool

Get, or with an argument set, whether initialize() indexes the file with one pass and parses each instance’s attributes on first access. Set before initialize().

paged_reading(*args: bool) → bool

Get, or with an argument set, whether initialize() reads the file through the paged reader instead of loading it whole. Set before initialize().

recalculate_id_counter()
remove_type_ref(new_entity)
reset_identity_cache()
storage_mode()
to_string()
types() → tuple[str, ...]

Return a tuple of classes present in the file.

E.g. (“IfcWallType”, “IfcWall”, “IfcArbitraryClosedProfileDef”, …).

property header: spf_header
property schema_identifier: str
class ifcopenshell.ifcopenshell_wrapper.file_open_status(*args)
value() → int
INVALID_SYNTAX: int
NO_HEADER: int
READ_ERROR: int
SUCCESS: int
UNKNOWN: int

Only set on a file created via create_uninitialized() that hasn’t had initialize() called yet.

UNSUPPORTED_SCHEMA: int
class ifcopenshell.ifcopenshell_wrapper.fn_evaluator(*args, **kwargs)
clone()
end()
evaluate(u)
length()
start()
settings_: Any
class ifcopenshell.ifcopenshell_wrapper.function_item(*args, **kwargs)

Bases: implicit_item

calc_hash()
end()
kind()
length()
start()
class ifcopenshell.ifcopenshell_wrapper.function_item_evaluator(*args)
evaluate(*args)
evaluation_points(*args)
class ifcopenshell.ifcopenshell_wrapper.functor_item(*args)

Bases: function_item

calc_hash()
clone_()
end()
kind()
start()
class ifcopenshell.ifcopenshell_wrapper.geom_item(*args, **kwargs)

Bases: item

matrix: Any
surface_style: Any
class ifcopenshell.ifcopenshell_wrapper.geometry_conversion_result(*args: Self)
is_parallel() → bool
index: Any
item: Any
products: Any
products_2: Any
representation: Any
class ifcopenshell.ifcopenshell_wrapper.geometry_kernel(geometry_library, file, settings, logger=None)
create_shape(*args)
class ifcopenshell.ifcopenshell_wrapper.geometry_serializer(*args, **kwargs)
finalize()
isTesselated()
is_streaming() → bool
object_id(o)
read(*args)
ready()
setFile(file: geometry_serializer.setFile.file) → None
setUnitNameAndMagnitude(name, magnitude)
settings(*args) → settings
write(*args)
writeHeader()
READ_BREP: Any
READ_TRIANGULATION: Any
class ifcopenshell.ifcopenshell_wrapper.gradient_function(*args)

Bases: function_item

calc_hash()
clone_()
end()
get_horizontal()
get_vertical()
kind()
start()
class ifcopenshell.ifcopenshell_wrapper.hash_functor
class ifcopenshell.ifcopenshell_wrapper.implicit_item(*args, **kwargs)

Bases: geom_item

class ifcopenshell.ifcopenshell_wrapper.instance_streamer(*args)
bypass_types(type_names)
bypassed_instances()
has_semicolon()
header()
inverses(*args)
push_page(page_data)
read_instance_py(type_as_declaration_instance=False)
references(*args)
resolve_references_in_place(value)
schema()
semicolon_count()
status()
yield_header_instances(enabled)
coerce_attribute_count: bool
class ifcopenshell.ifcopenshell_wrapper.inverse_attribute(name, type_of_aggregation, bound1, bound2, entity_reference, attribute_reference)
attribute_reference()
bound1()
bound2()
entity_reference()
name()
type_of_aggregation()
type_of_aggregation_string()
bag_type: Any
set_type: Any
unspecified_type: Any
class ifcopenshell.ifcopenshell_wrapper.item(*args, **kwargs)
calc_hash()
clone_() → Self
hash()
identity()
kind()

Internal enum item index.

reverse()
instance: Any
orientation: Any
class ifcopenshell.ifcopenshell_wrapper.iterator(*args)
bounds_max()
bounds_min()
compute_bounds(with_geometry)
create()
file()
filters(*args)
get() → element

Get last processed element.

getLog()
get_native()
get_object(id)
get_task_items()
get_task_products()
had_error_processing_elements()
initialize() → bool

Return true if the iterator is initialized with any elements, false otherwise.

next() → entity_instance | None

Process next shape representation.

Returns:

Processed entity_instance or None if nothing is left to process.

process_concurrently()
process_finished_rep(rep, kernel=None)
progress() → int

Return current progress (0-100).

Updated after processing each representation.

unit_magnitude()
unit_name()
initialization_outcome_: Any
processed_: Any
class ifcopenshell.ifcopenshell_wrapper.less_functor
class ifcopenshell.ifcopenshell_wrapper.line(*args, **kwargs)

Bases: curve

calc_hash()
clone_()
kind()
property matrix
class ifcopenshell.ifcopenshell_wrapper.line_segment(*args)
back()
begin()
empty()
end()
fill(u)
front()
iterator()
rbegin()
rend()
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.loft
calc_hash()
clone_()
kind()
print_impl(o, indent)
axis: Any
property children
class ifcopenshell.ifcopenshell_wrapper.log_message(*args)
to_dict()
to_tuple()
code: Any
instance: Any
message: Any
product: Any
severity: Any
property severity_string
timestamp: Any
class ifcopenshell.ifcopenshell_wrapper.logger
append(other)
clear()
count(code)
error(*args)
get_log()
log_messages() → tuple[log_message, ...]
max_severity()
message(*args)
notice(*args)
output_format(*args)
print_performance_stats()
print_performance_stats_on_element(*args)
progress_bar(progress)
static root() → logger
set_output(*args)
set_product(*args)
status(message, new_line=True)
verbosity(*args)
warning(*args)
FMT_INMEMORY: Literal[2]
FMT_JSON: Literal[1]
FMT_PLAIN: Literal[0]
LOG_DEBUG: Literal[1]
LOG_ERROR: Literal[4]
LOG_NOTICE: Literal[2]
LOG_PERF: Literal[0]
LOG_WARNING: Literal[3]
class ifcopenshell.ifcopenshell_wrapper.loop
calc_hash()
calculate_linear_edge_curves()
centroid()
clone_()
is_polyhedron()
kind()
remove_linear_edge_curves()
property children
closed: Any
external: Any
fi: Any
tags: Any
class ifcopenshell.ifcopenshell_wrapper.matrix4(*args)

Bases: item

calc_hash()
clone_()
is_identity()
kind()

Internal enum item index.

post_multiply_scale(s)
pre_multiply_scale(s)
translation_part()
AFFINE_WO_SCALE: Any
AFFINE_W_NONUNIFORM_SCALE: Any
AFFINE_W_UNIFORM_SCALE: Any
IDENTITY: Any
OTHER: Any
property components
tag: Any
class ifcopenshell.ifcopenshell_wrapper.named_type(declared_type)

Bases: parameter_type

as_named_type() → named_type
declared_type() → declaration
class ifcopenshell.ifcopenshell_wrapper.native(settings, entity, id, shapes)

Bases: representation

as_compound(force_meters=False)
begin()
calculate_projected_surface_area(ax, along_x, along_y, along_z)
calculate_surface_area(arg2)
calculate_volume(arg2)
end()
item(i)
item_id(i)
shapes()
size()
class ifcopenshell.ifcopenshell_wrapper.native_element(*args: Unpack[tuple[int, int, str, str, str, str, matrix4, native, entity_instance]])

Bases: element

calculate_projected_surface_area(along_x, along_y, along_z)
property geometry: native
property surface_area
property volume
class ifcopenshell.ifcopenshell_wrapper.node(*args, **kwargs)

Bases: item

calc_hash()
clone_()
kind()

Internal enum item index.

class ifcopenshell.ifcopenshell_wrapper.offset_curve(*args, **kwargs)

Bases: curve

calc_hash()
clone_()
kind()
basis: Any
offset: Any
reference: Any
class ifcopenshell.ifcopenshell_wrapper.offset_function(*args)

Bases: function_item

calc_hash()
clone_()
end()
get_basis()
get_offset()
kind()
start()
class ifcopenshell.ifcopenshell_wrapper.opaque_number
abs()
add(other)
divide(other)
empty()
equals(other)
less_than(other)
multiply(other)
negated()
same_type(*args)
subtract(other)
to_double()
to_string()
class ifcopenshell.ifcopenshell_wrapper.parameter_type
as_aggregation_type() → aggregation_type | None
as_named_type() → named_type | None
as_simple_type() → simple_type | None
class ifcopenshell.ifcopenshell_wrapper.piecewise_function(*args)

Bases: function_item

calc_hash()
clone_()
end()
is_empty()
kind()
length()
span_count()
span_fn(i)
spans()
start()
class ifcopenshell.ifcopenshell_wrapper.plane

Bases: surface

calc_hash()
clone_()
kind()
property matrix
class ifcopenshell.ifcopenshell_wrapper.point3(*args)
calc_hash()
clone_()
kind()
property components
class ifcopenshell.ifcopenshell_wrapper.polygon_2
boundary: Any
inner_boundaries: Any
point_inside: Any
class ifcopenshell.ifcopenshell_wrapper.ray_intersection_result
distance: Any
dot_product: Any
instance: Any
normal: Any
position: Any
ray_distance: Any
style_index: Any
class ifcopenshell.ifcopenshell_wrapper.ray_intersection_results(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.representation(settings, entity, id)
entity()
settings() → settings
property id: str

Example: 2432-openings-2468, where - 2432 - mapped representation id - 2468 - IfcRelVoidsElement

class ifcopenshell.ifcopenshell_wrapper.revolve(m, basis, pnt, dir, a)

Bases: sweep

calc_hash()
clone_()
kind()
angle: Any
axis_origin: Any
direction: Any
property matrix
class ifcopenshell.ifcopenshell_wrapper.schema_definition(name: str, declarations: collections.abc.Sequence[declaration])
declaration_by_name(*args: str) → declaration
Returns:

declaration but upcasted to the most advanced available type (e.g. entity, type_declaration, etc).

declarations() → tuple[declaration, ...]
Returns:

returned declarations are also upcasted, see declaration_by_name.

entities() → tuple[entity, ...]
enumeration_types() → tuple[enumeration_type, ...]
name() → str
select_types() → tuple[select_type, ...]
type_declarations() → tuple[type_declaration, ...]
class ifcopenshell.ifcopenshell_wrapper.select_type(name, index_in_schema, select_list)

Bases: declaration

as_select_type() → select_type
select_list() → tuple[declaration, ...]
class ifcopenshell.ifcopenshell_wrapper.serialization(native_geometry: native)

Bases: representation

property brep_data
property surface_style_ids
property surface_styles
class ifcopenshell.ifcopenshell_wrapper.serialized_element(*args: Unpack[tuple[native_element]])

Bases: element

property geometry: serialization
class ifcopenshell.ifcopenshell_wrapper.settings
get_(name)
get_type(name)
set_(*args)
setting_names()
CURVES: Literal[0]
CURVES_SURFACES_AND_SOLIDS: Literal[2]
MAXSTEPSIZE: Literal[0]
MINSTEPS: Literal[1]
NATIVE: Literal[1]
POLYHEDRON_WITHOUT_HOLES: Literal[1]
POLYHEDRON_WITH_HOLES: Literal[2]
SERIALIZED: Literal[2]
SURFACES_AND_SOLIDS: Literal[1]
TRIANGLE_MESH: Literal[0]
TRIANGULATED: Literal[0]
class ifcopenshell.ifcopenshell_wrapper.shell
calc_hash()
centroid()
clone_()
kind()
print_impl(o, indent)
property children
closed: Any
class ifcopenshell.ifcopenshell_wrapper.simple_type(declared_type)

Bases: parameter_type

as_simple_type() → simple_type
declared_type()
binary_type: Any
boolean_type: Any
datatype_COUNT: Any
integer_type: Any
logical_type: Any
number_type: Any
real_type: Any
string_type: Any
class ifcopenshell.ifcopenshell_wrapper.solid
calc_hash()
clone_()
kind()
property children
property matrix
class ifcopenshell.ifcopenshell_wrapper.spf_header(file: spf_header.__init__.file | None = None, logger: spf_header.__init__.logger | None = None)

IFC Header definition: https://standards.buildingsmart.org/documents/Implementation/ImplementationGuide_IFCHeaderData_Version_1.0.2.pdf

property file_description: entity_instance
property file_name: entity_instance
property file_schema: entity_instance
class ifcopenshell.ifcopenshell_wrapper.sphere

Bases: surface

calc_hash()
clone_()
kind()
property matrix
radius: Any
class ifcopenshell.ifcopenshell_wrapper.style(*args)

Bases: item

calc_hash() → int
clone_() → Self
get_color() → colour

“Return surface color if it’s used, otherwise return diffuse color.

has_specularity() → bool
has_transparency() → bool
instance_id() → int

Possible values for instance_id: - IFC style id if style assigned to the representation items directly or through material with a style; - IFC material id if both true:

  • element has a material without a style;

  • there are parts of the geometry that has no other style assigned to them;

  • -1 in case if there is no material;

  • 0 in case if there are default materials used.

kind() → int

Internal enum item index.

diffuse: colour
name: str

E.g. ‘IfcSurfaceStyleShading-218’, where 218 is style’s STEP id.

specular: colour
specularity: float

Can be float(‘nan’)

surface: colour
transparency: float

Can be float(‘nan’)

use_surface_color: bool
class ifcopenshell.ifcopenshell_wrapper.surface(*args, **kwargs)

Bases: geom_item

class ifcopenshell.ifcopenshell_wrapper.svg_groups_of_line_segments(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.svg_groups_of_polygons(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.svg_line_segments(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.svg_loop(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.svg_loops(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.svg_point(*args)
back()
begin()
empty()
end()
fill(u)
front()
iterator()
rbegin()
rend()
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.svg_polygons(*args)
append(x)
assign(n, x)
back()
begin()
capacity()
clear()
empty()
end()
erase(*args)
front()
get_allocator()
insert(*args)
iterator()
pop()
pop_back()
push_back(x)
rbegin()
rend()
reserve(n)
resize(*args)
size()
swap(v)
class ifcopenshell.ifcopenshell_wrapper.sweep(*args, **kwargs)

Bases: geom_item

basis: Any
class ifcopenshell.ifcopenshell_wrapper.sweep_along_curve(*args)

Bases: sweep

calc_hash()
clone_()
kind()
curve: Any
direction: Any
surface: Any
class ifcopenshell.ifcopenshell_wrapper.torus(*args, **kwargs)

Bases: surface

calc_hash()
clone_()
kind()
property matrix
radius1: Any
radius2: Any
class ifcopenshell.ifcopenshell_wrapper.transformation(settings, matrix)
data()
property matrix
class ifcopenshell.ifcopenshell_wrapper.tree(*args, **kwargs)
add_element(element: tree.add_element.element | None) → None
add_file(*args) → None
backend_id()
clash_clearance_many(set_a: collections.abc.Sequence[entity_instance], set_b: collections.abc.Sequence[entity_instance], clearance: float = 0.05, check_all: bool = False) → clashes
clash_collision_many(set_a: collections.abc.Sequence[entity_instance], set_b: collections.abc.Sequence[entity_instance], allow_touching: bool = False) → clashes
clash_intersection_many(set_a: collections.abc.Sequence[entity_instance], set_b: collections.abc.Sequence[entity_instance], tolerance: float = 0.002, check_all: bool = True) → clashes
distances() → tuple[float, ...]
enable_face_styles(*args) → bool | None
static is_manifold(faces: collections.abc.Sequence[int]) → bool
protrusion_distances() → tuple[float, ...]
select(*args) → tuple[entity_instance, ...]
select_box(*args) → tuple[entity_instance, ...]
select_ray(origin, direction, length=1000.0) → ray_intersection_results
styles() → collections.abc.Sequence[style]
class ifcopenshell.ifcopenshell_wrapper.triangulation(*args)

Bases: representation

addEdge(item_id, style, i0, i1)
addFace(*args)
addNormal(X, Y, Z)
addVertex(item_index, material_index, X, Y, Z)
static box_project_uvs(vertices, normals)
static empty(settings)
registerEdge(item_id, i0, i1)
registerEdgeCount(n1, n2, edgecount)
resetWelds()
uvs_ref()
property colors_buffer
property edges: tuple[int, ...]
property edges_buffer: bytes
property edges_item_ids: tuple[int, ...]
property edges_item_ids_buffer: bytes
property faces: tuple[int, ...]
property faces_buffer: bytes
property faces_tri: tuple[int, ...]
property item_ids: tuple[int, ...]
property item_ids_buffer: bytes
property material_ids: tuple[int, ...]
property material_ids_buffer: bytes
property materials: tuple[style, ...]
property normals
property normals_buffer: bytes
property polyhedral_faces_with_holes
property polyhedral_faces_without_holes
property uvs
property verts: tuple[float, ...]
property verts_buffer: bytes
class ifcopenshell.ifcopenshell_wrapper.triangulation_element(*args)

Bases: element

property geometry: triangulation
property geometry_pointer: triangulation
class ifcopenshell.ifcopenshell_wrapper.trimmed_curve(*args, **kwargs)

Bases: geom_item

reverse()
basis: Any
curve_sense: Any
end: Any
start: Any
class ifcopenshell.ifcopenshell_wrapper.type_by_kind
max: Any
class ifcopenshell.ifcopenshell_wrapper.type_declaration(name, index_in_schema, declared_type)

Bases: declaration

argument_types()
as_type_declaration() → type_declaration
declared_type()
class ifcopenshell.ifcopenshell_wrapper.uninitialized_tag
class ifcopenshell.ifcopenshell_wrapper.write_only_geometry_serializer(*args, **kwargs)

Bases: geometry_serializer

read(*args)
ifcopenshell.ifcopenshell_wrapper.arrange_polygons(settings: arrange_polygon_settings, polygons: collections.abc.Sequence[polygon_2], logger: arrange_polygons.logger | None = None) → tuple[polygon_2, ...]
ifcopenshell.ifcopenshell_wrapper.clear_plugin_search_paths() → None
ifcopenshell.ifcopenshell_wrapper.clear_schemas()
ifcopenshell.ifcopenshell_wrapper.construct_iterator(geometry_library, settings, file, num_threads, logger=None)
ifcopenshell.ifcopenshell_wrapper.construct_iterator_with_include_exclude(geometry_library, settings, file, elems, include, num_threads, logger=None)
ifcopenshell.ifcopenshell_wrapper.construct_iterator_with_include_exclude_globalid(geometry_library, settings, file, elems, include, num_threads, logger=None)
ifcopenshell.ifcopenshell_wrapper.construct_iterator_with_include_exclude_id(geometry_library, settings, file, elems, include, num_threads, logger=None)
ifcopenshell.ifcopenshell_wrapper.convert_loop_to_function_item(loop)
ifcopenshell.ifcopenshell_wrapper.create_box(*args)
ifcopenshell.ifcopenshell_wrapper.create_epeck(*args)
ifcopenshell.ifcopenshell_wrapper.create_geometry_serializer(*args) → geometry_serializer
ifcopenshell.ifcopenshell_wrapper.create_shape(*args)
ifcopenshell.ifcopenshell_wrapper.create_tree(backend_id: str) → tree
ifcopenshell.ifcopenshell_wrapper.decode_spf_string(value: str) → str
ifcopenshell.ifcopenshell_wrapper.encode_spf_string(value: str) → str
ifcopenshell.ifcopenshell_wrapper.flatten(deep)
ifcopenshell.ifcopenshell_wrapper.get_feature(x: Literal['use_attribute_value_derived']) → bool

Get the current value of a named feature flag.

ifcopenshell.ifcopenshell_wrapper.get_info_cpp(v: entity_instance, recursive: bool, include_identifier: bool) → dict[str, Any]
ifcopenshell.ifcopenshell_wrapper.get_log()
ifcopenshell.ifcopenshell_wrapper.get_plugin_search_paths() → tuple[str, ...]
ifcopenshell.ifcopenshell_wrapper.has_geometry_library(geometry_library: str) → bool
ifcopenshell.ifcopenshell_wrapper.helmert_curve_point(A0, A1, A2, s)
ifcopenshell.ifcopenshell_wrapper.kind_to_string(k)
ifcopenshell.ifcopenshell_wrapper.less(arg1, arg2)
ifcopenshell.ifcopenshell_wrapper.line_segments_to_polygons(s, eps, segments)
ifcopenshell.ifcopenshell_wrapper.logger_or_root(logger: logger_or_root.logger | None) → logger_or_root.logger
ifcopenshell.ifcopenshell_wrapper.map_shape(settings, instance)
ifcopenshell.ifcopenshell_wrapper.nary_union(sequence)
ifcopenshell.ifcopenshell_wrapper.new_IfcBaseClass(file: new_IfcBaseClass.file, name: str) → entity_instance
ifcopenshell.ifcopenshell_wrapper.open(fn: str, readonly: bool = False, logger=None) → file
ifcopenshell.ifcopenshell_wrapper.polygons_to_svg(*args)
ifcopenshell.ifcopenshell_wrapper.read(data: str) → file
ifcopenshell.ifcopenshell_wrapper.register_schema(schema: schema_definition) → None
ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name: str) → schema_definition
ifcopenshell.ifcopenshell_wrapper.schema_names() → tuple[str, ...]
ifcopenshell.ifcopenshell_wrapper.set_feature(x: Literal['use_attribute_value_derived'], v: bool) → None

Set a named feature flag.

use_attribute_value_derived: when enabled, attribute values supplied as derived (*) are returned as instances of attribute_value_derived instead of being indistinguishable from NIL ($) values.

ifcopenshell.ifcopenshell_wrapper.set_log_format_json()
ifcopenshell.ifcopenshell_wrapper.set_log_format_text()
ifcopenshell.ifcopenshell_wrapper.set_plugin_search_paths(paths: collections.abc.Sequence[str]) → None
ifcopenshell.ifcopenshell_wrapper.stream_from_string(data)
ifcopenshell.ifcopenshell_wrapper.svg_to_line_segments(data, class_name)
ifcopenshell.ifcopenshell_wrapper.svg_to_polygons(data, class_name)
ifcopenshell.ifcopenshell_wrapper.taxonomy_item_repr(i)
ifcopenshell.ifcopenshell_wrapper.turn_off_detailed_logging() → None
ifcopenshell.ifcopenshell_wrapper.turn_on_detailed_logging() → None
ifcopenshell.ifcopenshell_wrapper.version() → str
ifcopenshell.ifcopenshell_wrapper.ATEND: Any
ifcopenshell.ifcopenshell_wrapper.ATPATH: Any
ifcopenshell.ifcopenshell_wrapper.ATSTART: Any
ifcopenshell.ifcopenshell_wrapper.BOOLEAN_RESULT: Any
ifcopenshell.ifcopenshell_wrapper.BSPLINE_CURVE: Any
ifcopenshell.ifcopenshell_wrapper.BSPLINE_SURFACE: Any
ifcopenshell.ifcopenshell_wrapper.CANT_FUNCTION: Any
ifcopenshell.ifcopenshell_wrapper.CARTESIAN_DOUBLE: Any
ifcopenshell.ifcopenshell_wrapper.CARTESIAN_QUOTIENT: Any
ifcopenshell.ifcopenshell_wrapper.CIRCLE: Any
ifcopenshell.ifcopenshell_wrapper.COLLECTION: Any
ifcopenshell.ifcopenshell_wrapper.COLOUR: Any
ifcopenshell.ifcopenshell_wrapper.CURVES: Any
ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS: Any
ifcopenshell.ifcopenshell_wrapper.CYLINDER: Any
ifcopenshell.ifcopenshell_wrapper.DIRECTION3: Any
ifcopenshell.ifcopenshell_wrapper.EDGE: Any
ifcopenshell.ifcopenshell_wrapper.ELLIPSE: Any
ifcopenshell.ifcopenshell_wrapper.EXACT_CONSTRUCTIONS: Any
ifcopenshell.ifcopenshell_wrapper.EXACT_PREDICATES: Any
ifcopenshell.ifcopenshell_wrapper.EXTRUSION: Any
ifcopenshell.ifcopenshell_wrapper.FACE: Any
ifcopenshell.ifcopenshell_wrapper.FILTERED_CARTESIAN_QUOTIENT: Any
ifcopenshell.ifcopenshell_wrapper.FUNCTION_ITEM: Any
ifcopenshell.ifcopenshell_wrapper.FUNCTOR_ITEM: Any
ifcopenshell.ifcopenshell_wrapper.GRADIENT_FUNCTION: Any
ifcopenshell.ifcopenshell_wrapper.LINE: Any
ifcopenshell.ifcopenshell_wrapper.LOFT: Any
ifcopenshell.ifcopenshell_wrapper.LOOP: Any
ifcopenshell.ifcopenshell_wrapper.MATRIX4: Any
ifcopenshell.ifcopenshell_wrapper.MAXSTEPSIZE: Any
ifcopenshell.ifcopenshell_wrapper.MINSTEPS: Any
ifcopenshell.ifcopenshell_wrapper.NATIVE: Any
ifcopenshell.ifcopenshell_wrapper.NODE: Any
ifcopenshell.ifcopenshell_wrapper.NOTDEFINED: Any
ifcopenshell.ifcopenshell_wrapper.OFFSET_CURVE: Any
ifcopenshell.ifcopenshell_wrapper.OFFSET_FUNCTION: Any
ifcopenshell.ifcopenshell_wrapper.PIECEWISE_FUNCTION: Any
ifcopenshell.ifcopenshell_wrapper.PLANE: Any
ifcopenshell.ifcopenshell_wrapper.POINT3: Any
ifcopenshell.ifcopenshell_wrapper.POLYHEDRON_WITHOUT_HOLES: Any
ifcopenshell.ifcopenshell_wrapper.POLYHEDRON_WITH_HOLES: Any
ifcopenshell.ifcopenshell_wrapper.REVOLVE: Any
ifcopenshell.ifcopenshell_wrapper.SERIALIZED: Any
ifcopenshell.ifcopenshell_wrapper.SHARED_PTR_DISOWN: Any
ifcopenshell.ifcopenshell_wrapper.SHELL: Any
ifcopenshell.ifcopenshell_wrapper.SOLID: Any
ifcopenshell.ifcopenshell_wrapper.SPHERE: Any
ifcopenshell.ifcopenshell_wrapper.STYLE: Any
ifcopenshell.ifcopenshell_wrapper.SURFACES_AND_SOLIDS: Any
ifcopenshell.ifcopenshell_wrapper.SWEEP_ALONG_CURVE: Any
ifcopenshell.ifcopenshell_wrapper.TORUS: Any
ifcopenshell.ifcopenshell_wrapper.TRIANGLE_MESH: Any
ifcopenshell.ifcopenshell_wrapper.TRIANGULATED: Any
ifcopenshell.ifcopenshell_wrapper.cvar: Any