diff --git a/ifcopenshell/__init__.py b/ifcopenshell/__init__.py deleted file mode 100644 index d573b57ac6..0000000000 --- a/ifcopenshell/__init__.py +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import sys - -if hasattr(os, 'uname'): - platform_system = os.uname()[0].lower() -else: - platform_system = 'windows' - -if sys.maxsize == (1 << 31) - 1: - platform_architecture = '32bit' -else: - platform_architecture = '64bit' - -python_version_tuple = tuple(sys.version.split(' ')[0].split('.')) - -python_distribution = os.path.join(platform_system, - platform_architecture, - 'python%s.%s' % python_version_tuple[:2]) -sys.path.append(os.path.abspath(os.path.join( - os.path.dirname(__file__), - 'lib', python_distribution))) - -try: - from . import ifcopenshell_wrapper -except Exception as e: - if int(python_version_tuple[0]) == 2: - # Only for py2, as py3 has exception chaining - import traceback - - traceback.print_exc() - print('-' * 64) - raise ImportError("IfcOpenShell not built for '%s'" % python_distribution) - -from . import guid -from .file import file -from .entity_instance import entity_instance - - -def open(fn): - f = ifcopenshell_wrapper.open(os.path.abspath(fn)) - if f.good(): - return file(f) - else: - raise IOError("Unable to open file for reading") - -def create_entity(type, *args, **kwargs): - e = entity_instance(type) - attrs = list(enumerate(args)) + \ - [(e.wrapped_data.get_argument_index(name), arg) for name, arg in kwargs.items()] - for idx, arg in attrs: - e[idx] = arg - return e - - -from .main import * diff --git a/ifcopenshell/_ifcopenshell_wrapper.so b/ifcopenshell/_ifcopenshell_wrapper.so deleted file mode 100644 index 87b46bfbc2..0000000000 Binary files a/ifcopenshell/_ifcopenshell_wrapper.so and /dev/null differ diff --git a/ifcopenshell/entity_instance.py b/ifcopenshell/entity_instance.py deleted file mode 100644 index 313e898e1f..0000000000 --- a/ifcopenshell/entity_instance.py +++ /dev/null @@ -1,254 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import functools -import numbers -import itertools - -from . import ifcopenshell_wrapper - -try: - import logging -except ImportError as e: - logging = type('logger', (object,), {'exception': staticmethod(lambda s: print(s))}) - - -class entity_instance(object): - """This is the base Python class for all IFC objects. - - An instantiated entity_instance will have methods of Python and the IFC class itself. - - Example:: - - ifc_file = ifcopenshell.open(file_path) - products = ifc_file.by_type("IfcProduct") - print(products[0].__class__) - >>> - print(products[0].Representation) - >>> #423=IfcProductDefinitionShape($,$,(#409,#421)) - """ - def __init__(self, e): - if isinstance(e, tuple): - e = ifcopenshell_wrapper.new_IfcBaseClass(*e) - super(entity_instance, self).__setattr__('wrapped_data', e) - - def __getattr__(self, name): - INVALID, FORWARD, INVERSE = range(3) - attr_cat = self.wrapped_data.get_attribute_category(name) - if attr_cat == FORWARD: - return entity_instance.wrap_value( - self.wrapped_data.get_argument(self.wrapped_data.get_argument_index(name))) - elif attr_cat == INVERSE: - return entity_instance.wrap_value(self.wrapped_data.get_inverse(name)) - else: - raise AttributeError( - "entity instance of type '%s' has no attribute '%s'" % (self.wrapped_data.is_a(), name)) - - @staticmethod - def walk(f, g, value): - if isinstance(value, (tuple, list)): - return tuple(map(functools.partial(entity_instance.walk, f, g), value)) - elif f(value): - return g(value) - else: - return value - - @staticmethod - def wrap_value(v): - def wrap(e): return entity_instance(e) - - def is_instance(e): return isinstance(e, ifcopenshell_wrapper.entity_instance) - - return entity_instance.walk(is_instance, wrap, v) - - @staticmethod - def unwrap_value(v): - def unwrap(e): return e.wrapped_data - - def is_instance(e): return isinstance(e, entity_instance) - - return entity_instance.walk(is_instance, unwrap, v) - - def attribute_type(self, attr): - """Return the data type of a positional attribute of the element - - :param attr: The index of the attribute - :type attr: int - :rtype: string - """ - attr_idx = attr if isinstance(attr, numbers.Integral) else self.wrapped_data.get_argument_index(attr) - return self.wrapped_data.get_argument_type(attr_idx) - - def attribute_name(self, attr_idx): - """Return the name of a positional attribute of the element - - :param attr_idx: The index of the attribute - :type attr_idx: int - :rtype: string - """ - return self.wrapped_data.get_argument_name(attr_idx) - - def __setattr__(self, key, value): - self[self.wrapped_data.get_argument_index(key)] = value - - def __getitem__(self, key): - if key < 0 or key >= len(self): - raise IndexError("Attribute index {} out of range for instance of type {}".format(key, self.is_a())) - return entity_instance.wrap_value(self.wrapped_data.get_argument(key)) - - def __setitem__(self, idx, value): - attr_type = real_attr_type = self.attribute_type(idx).title().replace(' ', '') - real_attr_type = real_attr_type.replace('Derived', 'None') - attr_type = attr_type.replace('Binary', 'String') - attr_type = attr_type.replace('Enumeration', 'String') - - if value is None: - if attr_type != "Derived": - self.wrapped_data.setArgumentAsNull(idx) - else: - valid = attr_type != "Derived" - if valid: - try: - if isinstance(value, unicode): - value = value.encode("utf-8") - except BaseException: - pass - - try: - if attr_type != "Derived": - getattr(self.wrapped_data, "setArgumentAs%s" % attr_type)(idx, entity_instance.unwrap_value(value)) - except BaseException as e: - valid = False - - if not valid: - raise ValueError("Expected %s for attribute %s.%s, got %r" % ( - real_attr_type, self.is_a(), self.attribute_name(idx), value)) - - return value - - def __len__(self): - return len(self.wrapped_data) - - def __repr__(self): - return repr(self.wrapped_data) - - def is_a(self, *args): - """Return the IFC class name of an instance, or checks if an instance belongs to a class. - - The check will also return true if a parent class name is provided. - - :param args: If specified, is a case insensitive IFC class name to check - :type args: string - :returns: Either the name of the class, or a boolean if it passes the check - :rtype: string|bool - - Example:: - - f = ifcopenshell.file() - f.create_entity('IfcPerson') - f.is_a() - >>> 'IfcPerson' - f.is_a('IfcPerson') - >>> True - """ - return self.wrapped_data.is_a(*args) - - def id(self): - """Return the STEP numerical identifier - - :rtype: int - """ - return self.wrapped_data.id() - - def __eq__(self, other): - if not isinstance(self, type(other)): - return False - return self.wrapped_data == other.wrapped_data - - def __hash__(self): - return hash((self.id(), self.wrapped_data.file_pointer())) - - def __dir__(self): - return sorted(set(itertools.chain( - dir(type(self)), - map(str, self.wrapped_data.get_attribute_names()), - map(str, self.wrapped_data.get_inverse_attribute_names()) - ))) - - def get_info(self, include_identifier=True, recursive=False, return_type=dict, ignore=()): - """Return a dictionary of the entity_instance's properties (Python and IFC) and their values. - - :param include_identifier: Whether or not to include the STEP numerical identifier - :type include_identifier: bool - :param recursive: Whether or not to convert referenced IFC elements into dictionaries too. All attributes also apply recursively - :type recursive: bool - :param return_type: The return data type to be casted into - :type return_type: dict|list|other - :param ignore: A list of attribute names to ignore - :type ignore: set|list - :returns: A dictionary of properties and their corresponding values - :rtype: dict - - Example:: - - ifc_file = ifcopenshell.open(file_path) - products = ifc_file.by_type("IfcProduct") - obj_info = products[0].get_info() - print(obj_info.keys()) - >>> dict_keys(['Description', 'Name', 'BuildingAddress', 'LongName', 'GlobalId', 'ObjectPlacement', 'OwnerHistory', 'ObjectType', - >>> ...'ElevationOfTerrain', 'CompositionType', 'id', 'Representation', 'type', 'ElevationOfRefHeight']) - """ - def _(): - try: - if include_identifier: - yield "id", self.id() - yield "type", self.is_a() - except BaseException: - logging.exception("unhandled exception while getting id / type info on {}".format(self)) - for i in range(len(self)): - try: - if self.wrapped_data.get_attribute_names()[i] in ignore: - continue - attr_value = self[i] - if recursive: - def is_instance(e): return isinstance(e, entity_instance) - - def get_info_(inst): - # for ty in ignore: - # if inst.is_a(ty): - # return None - return entity_instance.get_info(inst, - include_identifier=include_identifier, - recursive=recursive, - return_type=return_type, - ignore=ignore - ) - - attr_value = entity_instance.walk(is_instance, get_info_, attr_value) - yield self.attribute_name(i), attr_value - except BaseException: - logging.exception("unhandled exception occurred setting attribute name for {}".format(self)) - - return return_type(_()) - - __dict__ = property(get_info) diff --git a/ifcopenshell/file.py b/ifcopenshell/file.py deleted file mode 100644 index a16c7d6835..0000000000 --- a/ifcopenshell/file.py +++ /dev/null @@ -1,184 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import numbers -import functools - -from . import ifcopenshell_wrapper -from .entity_instance import entity_instance - -try: - # Python 2 - basestring -except NameError: - # Python 3 or newer - basestring = (str, bytes) - - -class file(object): - """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:: - - ifc_file = ifcopenshell.open(file_path) - products = ifc_file.by_type("IfcProduct") - print(products[0].id(), products[0].GlobalId) - >>> 122 2XQ$n5SLP5MBLyL442paFx - # Subscripting - print(products[0] == ifc_file[122] == ifc_file['2XQ$n5SLP5MBLyL442paFx']) - >>> True - """ - def __init__(self, f=None, schema=None): - if f is not None: - self.wrapped_data = f - else: - args = filter(None, [schema]) - args = map(ifcopenshell_wrapper.schema_by_name, args) - self.wrapped_data = ifcopenshell_wrapper.file(*args) - - def create_entity(self, type, *args, **kwargs): - """Create a new IFC entity in the file. - - :param type: Case insensitive name of the IFC class - :type type: string - :param args: The positional arguments of the IFC class - :param kwargs: The keyword arguments of the IFC class - :returns: An entity instance - :rtype: ifcopenshell.entity_instance.entity_instance - - Example:: - - f = ifcopenshell.file() - f.create_entity('IfcPerson') - >>> #1=IfcPerson($,$,$,$,$,$,$,$) - f.create_entity('IfcPerson', 'Foobar') - >>> #2=IfcPerson('Foobar',$,$,$,$,$,$,$) - f.create_entity('IfcPerson', Identification='Foobar') - >>> #3=IfcPerson('Foobar',$,$,$,$,$,$,$) - """ - e = entity_instance((self.schema, type)) - self.wrapped_data.add(e.wrapped_data) - e.wrapped_data.this.disown() - attrs = list(enumerate(args)) + \ - [(e.wrapped_data.get_argument_index(name), arg) for name, arg in kwargs.items()] - for idx, arg in attrs: - e[idx] = arg - return e - - def __getattr__(self, attr): - if attr[0:6] == 'create': - return functools.partial(self.create_entity, attr[6:]) - else: - return getattr(self.wrapped_data, attr) - - def __getitem__(self, key): - if isinstance(key, numbers.Integral): - return entity_instance(self.wrapped_data.by_id(key)) - elif isinstance(key, basestring): - return entity_instance(self.wrapped_data.by_guid(str(key))) - - def by_id(self, id): - """Return an IFC entity instance filtered by IFC ID. - - :param id: STEP numerical identifier - :type id: int - :returns: An ifcopenshell.entity_instance.entity_instance - :rtype: ifcopenshell.entity_instance.entity_instance - """ - return self[id] - - def by_guid(self, guid): - """Return an IFC entity instance filtered by IFC GUID. - - :param guid: GlobalId value in 22-character encoded form - :type guid: string - :returns: An ifcopenshell.entity_instance.entity_instance - :rtype: ifcopenshell.entity_instance.entity_instance - """ - return self[guid] - - def add(self, inst): - """Adds an entity including any dependent entities to an IFC file. - - If the entity already exists, it is not re-added.""" - inst.wrapped_data.this.disown() - return entity_instance(self.wrapped_data.add(inst.wrapped_data)) - - def by_type(self, type): - """Return IFC objects filtered by IFC Type and wrapped with the entity_instance class. - - If an IFC type class has subclasses, all entities of those subclasses are also returned. - - :param type: The case insensitive type of IFC class to return. - :type type: string - :returns: A list of ifcopenshell.entity_instance.entity_instance objects - :rtype: list - """ - return [entity_instance(e) for e in self.wrapped_data.by_type(type)] - - def traverse(self, inst, max_levels=None): - """Get a list of all referenced instances for a particular instance including itself - - :param inst: The entity instance to get all sub instances - :type inst: ifcopenshell.entity_instance.entity_instance - :param max_levels: How far deep to recursively fetch sub instances. None or -1 means infinite. - :type max_levels: None|int - :returns: A list of ifcopenshell.entity_instance.entity_instance objects - :rtype: list - """ - if max_levels is None: - max_levels = -1 - return [entity_instance(e) for e in self.wrapped_data.traverse(inst.wrapped_data, max_levels)] - - def get_inverse(self, inst): - """Return a list of entities that reference this entity - - :param inst: The entity instance to get inverse relationships - :type inst: ifcopenshell.entity_instance.entity_instance - :returns: A list of ifcopenshell.entity_instance.entity_instance objects - :rtype: list - """ - return [entity_instance(e) for e in self.wrapped_data.get_inverse(inst.wrapped_data)] - - def remove(self, inst): - """Deletes an IFC object in the file. - - Attribute values in other entity instances that reference the deleted - object will be set to null. In the case of a list or set of references, - the reference to the deleted will be removed from the aggregate. - - :param inst: The entity instance to delete - :type inst: ifcopenshell.entity_instance.entity_instance - :rtype: None - """ - return self.wrapped_data.remove(inst.wrapped_data) - - def __iter__(self): - return iter(self[id] for id in self.wrapped_data.entity_names()) - - @staticmethod - def from_string(s): - return file(ifcopenshell_wrapper.read(s)) diff --git a/ifcopenshell/geom/__init__.py b/ifcopenshell/geom/__init__.py deleted file mode 100644 index 04db49a6e2..0000000000 --- a/ifcopenshell/geom/__init__.py +++ /dev/null @@ -1,45 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -def _has_occ(): - try: - import OCC.Core.BRepTools - return True - except ImportError: - pass - - try: - import OCC.BRepTools - return True - except ImportError: - pass - - return False - - -has_occ = _has_occ() - -if has_occ: - from . import occ_utils as utils - -from .main import * diff --git a/ifcopenshell/geom/app.py b/ifcopenshell/geom/app.py deleted file mode 100644 index 16bfdb8349..0000000000 --- a/ifcopenshell/geom/app.py +++ /dev/null @@ -1,647 +0,0 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import sys -import time -import operator -import functools -import multiprocessing - -import OCC.AIS - -from collections import defaultdict, Iterable, OrderedDict - -try: - QString = unicode -except NameError: - # Python 3 - QString = str - -os.environ['QT_API'] = 'pyqt5' -try: - from pyqode.qt import QtCore -except BaseException: - pass - -from PyQt5 import QtCore, QtGui, QtWidgets - -from .code_editor_pane import code_edit - -try: - from OCC.Display.pyqt5Display import qtViewer3d -except BaseException: - import OCC.Display - - try: - import OCC.Display.backend - except BaseException: - pass - - try: - OCC.Display.backend.get_backend("qt-pyqt5") - except BaseException: - OCC.Display.backend.load_backend("qt-pyqt5") - - from OCC.Display.qtDisplay import qtViewer3d - -from .main import settings, iterator -from .occ_utils import display_shape - -from .. import open as open_ifc_file -from .. import version as ifcopenshell_version - -if ifcopenshell_version < "0.6": - # not yet ported - from .. import get_supertype - -class geometry_creation_signals(QtCore.QObject): - completed = QtCore.pyqtSignal('PyQt_PyObject') - progress = QtCore.pyqtSignal('PyQt_PyObject') - -class geometry_creation_thread(QtCore.QThread): - def __init__(self, signals, settings, f): - QtCore.QThread.__init__(self) - self.signals = signals - self.settings = settings - self.f = f - - def run(self): - t0 = time.time() - - # detect concurrency from hardware, we need to have - # at least two threads because otherwise the interface - # is different - # is different - it = iterator(self.settings, self.f, max(2, multiprocessing.cpu_count())) - if not it.initialize(): - self.signals.completed.emit([]) - return - - def _(): - - old_progress = -1 - while True: - shape = it.get() - - if shape: - yield shape - - if not it.next(): - break - - self.signals.completed.emit((it, self.f, list(_()))) - -class configuration(object): - def __init__(self): - try: - import ConfigParser - Cfg = ConfigParser.RawConfigParser - except BaseException: - import configparser - - def Cfg(): - return configparser.ConfigParser(interpolation=None) - - conf_file = os.path.expanduser(os.path.join("~", ".ifcopenshell", "app", "snippets.conf")) - if conf_file.startswith("~"): - conf_file = None - return - - self.config_encode = lambda s: s.replace("\\", "\\\\").replace("\n", "\n|") - self.config_decode = lambda s: s.replace("\n|", "\n").replace("\\\\", "\\") - - if not os.path.exists(os.path.dirname(conf_file)): - os.makedirs(os.path.dirname(conf_file)) - - if not os.path.exists(conf_file): - config = Cfg() - config.add_section("snippets") - config.set("snippets", "print all wall ids", self.config_encode(""" -########################################################################### -# A simple script that iterates over all walls in the current model # -# and prints their Globally unique IDs (GUIDS) to the console window # -########################################################################### - -for wall in model.by_type("IfcWall"): - print ("wall with global id: "+str(wall.GlobalId)) -""".lstrip())) - - config.set("snippets", "print properties of current selection", self.config_encode(""" -########################################################################### -# A simple script that iterates over all IfcPropertySets of the currently # -# selected object and prints them to the console # -########################################################################### - -# check if something is selected -if selection: - #get the IfcProduct that is stored in the global variable 'selection' - obj = selection - for relDefinesByProperties in obj.IsDefinedBy: - print("[{0}]".format(relDefinesByProperties.RelatingPropertyDefinition.Name)) - for prop in relDefinesByProperties.RelatingPropertyDefinition.HasProperties: - print ("{:<20} :{}".format(prop.Name,prop.NominalValue.wrappedValue)) - print ("\\n") -""".lstrip())) - with open(conf_file, 'w') as configfile: - config.write(configfile) - - self.config = Cfg() - self.config.read(conf_file) - - def options(self, s): - return OrderedDict([(k, self.config_decode(self.config.get(s, k))) for k in self.config.options(s)]) - - -class application(QtWidgets.QApplication): - """A pythonOCC, PyQt based IfcOpenShell application - with two tree views and a graphical 3d view""" - - class abstract_treeview(QtWidgets.QTreeWidget): - - """Base class for the two treeview controls""" - - instanceSelected = QtCore.pyqtSignal([object]) - instanceVisibilityChanged = QtCore.pyqtSignal([object, int]) - instanceDisplayModeChanged = QtCore.pyqtSignal([object, int]) - - def __init__(self): - QtWidgets.QTreeView.__init__(self) - self.setColumnCount(len(self.ATTRIBUTES)) - self.setHeaderLabels(self.ATTRIBUTES) - self.children = defaultdict(list) - - def get_children(self, inst): - c = [inst] - i = 0 - while i < len(c): - c.extend(self.children[c[i]]) - i += 1 - return c - - def contextMenuEvent(self, event): - menu = QtWidgets.QMenu(self) - visibility = [menu.addAction("Show"), menu.addAction("Hide")] - displaymode = [menu.addAction("Solid"), menu.addAction("Wireframe")] - action = menu.exec_(self.mapToGlobal(event.pos())) - index = self.selectionModel().currentIndex() - inst = index.data(QtCore.Qt.UserRole) - if hasattr(inst, 'toPyObject'): - inst = inst - if action in visibility: - self.instanceVisibilityChanged.emit(inst, visibility.index(action)) - elif action in displaymode: - self.instanceDisplayModeChanged.emit(inst, displaymode.index(action)) - - def clicked_(self, index): - inst = index.data(QtCore.Qt.UserRole) - if hasattr(inst, 'toPyObject'): - inst = inst - if inst: - self.instanceSelected.emit(inst) - - def select(self, product): - itm = self.product_to_item.get(product) - if itm is None: - return - self.selectionModel().setCurrentIndex(itm, - QtCore.QItemSelectionModel.SelectCurrent | QtCore.QItemSelectionModel.Rows) - - class decomposition_treeview(abstract_treeview): - - """Treeview with typical IFC decomposition relationships""" - - ATTRIBUTES = ['Entity', 'GlobalId', 'Name'] - - def parent(self, instance): - if instance.is_a("IfcOpeningElement"): - return instance.VoidsElements[0].RelatingBuildingElement - if instance.is_a("IfcElement"): - fills = instance.FillsVoids - if len(fills): - return fills[0].RelatingOpeningElement - containments = instance.ContainedInStructure - if len(containments): - return containments[0].RelatingStructure - if instance.is_a("IfcObjectDefinition"): - decompositions = instance.Decomposes - if len(decompositions): - return decompositions[0].RelatingObject - - def load_file(self, f, **kwargs): - products = list(f.by_type("IfcProduct")) + list(f.by_type("IfcProject")) - parents = list(map(self.parent, products)) - items = {} - skipped = 0 - ATTRS = self.ATTRIBUTES - while len(items) + skipped < len(products): - for product, parent in zip(products, parents): - if parent is None and not product.is_a("IfcProject"): - skipped += 1 - continue - if (parent is None or parent in items) and product not in items: - sl = [] - for attr in ATTRS: - if attr == 'Entity': - sl.append(product.is_a()) - else: - sl.append(getattr(product, attr) or '') - itm = items[product] = QtWidgets.QTreeWidgetItem(items.get(parent, self), sl) - itm.setData(0, QtCore.Qt.UserRole, product) - self.children[parent].append(product) - self.product_to_item = dict(zip(items.keys(), map(self.indexFromItem, items.values()))) - self.clicked.connect(self.clicked_) - self.expandAll() - - class type_treeview(abstract_treeview): - - """Treeview with typical IFC decomposition relationships""" - - ATTRIBUTES = ['Name'] - - def load_file(self, f, **kwargs): - products = list(f.by_type("IfcProduct")) - types = set(map(lambda i: i.is_a(), products)) - items = {} - for t in types: - def add(t): - s = get_supertype(t) - if s: - add(s) - s2, t2 = map(QString, (s, t)) - if t2 not in items: - itm = items[t2] = QtWidgets.QTreeWidgetItem(items.get(s2, self), [t2]) - itm.setData(0, QtCore.Qt.UserRole, t2) - self.children[s2].append(t2) - - if ifcopenshell_version < "0.6": - add(t) - - for p in products: - t = QString(p.is_a()) - itm = items[p] = QtWidgets.QTreeWidgetItem(items.get(t, self), [p.Name or '']) - itm.setData(0, QtCore.Qt.UserRole, t) - self.children[t].append(p) - - self.product_to_item = dict(zip(items.keys(), map(self.indexFromItem, items.values()))) - self.clicked.connect(self.clicked) - self.expandAll() - - class property_table(QtWidgets.QWidget): - - def __init__(self): - QtWidgets.QWidget.__init__(self) - self.layout = QtWidgets.QVBoxLayout(self) - self.setLayout(self.layout) - self.scroll = QtWidgets.QScrollArea(self) - self.layout.addWidget(self.scroll) - self.scroll.setWidgetResizable(True) - self.scrollContent = QtWidgets.QWidget(self.scroll) - self.scrollLayout = QtWidgets.QVBoxLayout(self.scrollContent) - self.scrollContent.setLayout(self.scrollLayout) - self.scroll.setWidget(self.scrollContent) - self.prop_dict = {} - - # triggered by selection event in either component of parent - def select(self, product): - - # Clear the old contents if any - while self.scrollLayout.count(): - child = self.scrollLayout.takeAt(0) - if child is not None: - if child.widget() is not None: - child.widget().deleteLater() - - self.scroll = QtWidgets.QScrollArea() - self.scroll.setWidgetResizable(True) - - prop_sets = self.prop_dict.get(str(product)) - - if prop_sets is not None: - for k, v in prop_sets: - group_box = QtWidgets.QGroupBox() - - group_box.setTitle(k) - group_layout = QtWidgets.QVBoxLayout() - group_box.setLayout(group_layout) - - for name, value in v.items(): - prop_name = str(name) - - value_str = value - if hasattr(value_str, "wrappedValue"): - value_str = value_str.wrappedValue - - if isinstance(value_str, unicode): - value_str = value_str.encode('utf-8') - else: - value_str = str(value_str) - - if hasattr(value, "is_a"): - type_str = " (%s)" % value.is_a() - else: - type_str = "" - label = QtWidgets.QLabel("%s: %s%s" % (prop_name, value_str, type_str)) - group_layout.addWidget(label) - - group_layout.addStretch() - self.scrollLayout.addWidget(group_box) - - self.scrollLayout.addStretch() - else: - label = QtWidgets.QLabel("No IfcPropertySets asscociated with selected entity instance") - self.scrollLayout.addWidget(label) - - def load_file(self, f, **kwargs): - for p in f.by_type("IfcProduct"): - propsets = [] - - def process_pset(prop_def): - if prop_def is not None: - prop_set_name = prop_def.Name - props = {} - if prop_def.is_a("IfcElementQuantity"): - for q in prop_def.Quantities: - if q.is_a("IfcPhysicalSimpleQuantity"): - props[q.Name] = q[3] - elif prop_def.is_a("IfcPropertySet"): - for prop in prop_def.HasProperties: - if prop.is_a("IfcPropertySingleValue"): - props[prop.Name] = prop.NominalValue - else: - # Entity introduced in IFC4 - # prop_def.is_a("IfcPreDefinedPropertySet"): - for prop in range(4, len(prop_def)): - props[prop_def.attribute_name(prop)] = prop_def[prop] - return prop_set_name, props - - try: - for is_def_by in p.IsDefinedBy: - if is_def_by.is_a("IfcRelDefinesByProperties"): - propsets.append(process_pset(is_def_by.RelatingPropertyDefinition)) - elif is_def_by.is_a("IfcRelDefinesByType"): - type_psets = is_def_by.RelatingType.HasPropertySets - if type_psets is None: - continue - for propset in type_psets: - propsets.append(process_pset(propset)) - except Exception as e: - import traceback - print("failed to load properties: {}".format(e)) - traceback.print_exc() - - if len(propsets): - self.prop_dict[str(p)] = propsets - - print("property set dictionary has {} entries".format(len(self.prop_dict))) - - class viewer(qtViewer3d): - - instanceSelected = QtCore.pyqtSignal([object]) - - @staticmethod - def ais_to_key(ais_handle): - def yield_shapes(): - ais = ais_handle.GetObject() - if hasattr(ais, 'Shape'): - yield ais.Shape() - return - shp = OCC.AIS.Handle_AIS_Shape.DownCast(ais_handle) - if not shp.IsNull(): - yield shp.Shape() - return - mult = ais_handle - if mult.IsNull(): - shp = OCC.AIS.Handle_AIS_Shape.DownCast(ais_handle) - if not shp.IsNull(): - yield shp - else: - li = mult.GetObject().ConnectedTo() - for i in range(li.Length()): - shp = OCC.AIS.Handle_AIS_Shape.DownCast(li.Value(i + 1)) - if not shp.IsNull(): - yield shp - - return tuple(shp.HashCode(1 << 24) for shp in yield_shapes()) - - def __init__(self, widget): - qtViewer3d.__init__(self, widget) - self.ais_to_product = {} - self.product_to_ais = {} - self.counter = 0 - self.window = widget - self.thread = None - - def initialize(self): - self.InitDriver() - self._display.Select = self.HandleSelection - - def finished(self, file_shapes): - it, f, shapes = file_shapes - v = self._display - - t = {0: time.time()} - - def update(dt=None): - t1 = time.time() - if dt is None or t1 - t[0] > dt: - v.FitAll() - v.Repaint() - t[0] = t1 - - for shape in shapes: - ais = display_shape(shape, viewer_handle=v) - product = f[shape.data.id] - - ais.GetObject().SetSelectionPriority(self.counter) - self.ais_to_product[self.counter] = product - self.product_to_ais[product] = ais - self.counter += 1 - - QtWidgets.QApplication.processEvents() - - if product.is_a() in {'IfcSpace', 'IfcOpeningElement'}: - v.Context.Erase(ais, True) - - update(1.) - - update() - - self.thread = None - - def load_file(self, f, setting=None): - - if self.thread is not None: - return - - if setting is None: - setting = settings() - setting.set(setting.INCLUDE_CURVES, True) - setting.set(setting.USE_PYTHON_OPENCASCADE, True) - - self.signals = geometry_creation_signals() - thread = self.thread = geometry_creation_thread(self.signals, setting, f) - self.window.window_closed.connect(lambda *args: thread.terminate()) - self.signals.completed.connect(self.finished) - self.thread.start() - - def select(self, product): - ais = self.product_to_ais.get(product) - if ais is None: - return - v = self._display.Context - v.ClearSelected(False) - v.SetSelected(ais, True) - - def toggle(self, product_or_products, fn): - if not isinstance(product_or_products, Iterable): - product_or_products = [product_or_products] - aiss = list(filter(None, map(self.product_to_ais.get, product_or_products))) - last = len(aiss) - 1 - for i, ais in enumerate(aiss): - fn(ais, i == last) - - def toggle_visibility(self, product_or_products, flag): - v = self._display.Context - if flag: - def visibility(ais, last): - v.Erase(ais, last) - else: - def visibility(ais, last): - v.Display(ais, last) - self.toggle(product_or_products, visibility) - - def toggle_wireframe(self, product_or_products, flag): - v = self._display.Context - if flag: - def wireframe(ais, last): - if v.IsDisplayed(ais): - v.SetDisplayMode(ais, 0, last) - else: - def wireframe(ais, last): - if v.IsDisplayed(ais): - v.SetDisplayMode(ais, 1, last) - self.toggle(product_or_products, wireframe) - - def HandleSelection(self, X, Y): - v = self._display.Context - v.Select() - v.InitSelected() - if v.MoreSelected(): - ais = v.SelectedInteractive() - inst = self.ais_to_product[ais.GetObject().SelectionPriority()] - self.instanceSelected.emit(inst) - - class window(QtWidgets.QMainWindow): - - TITLE = "IfcOpenShell IFC viewer" - - window_closed = QtCore.pyqtSignal([]) - - def __init__(self): - QtWidgets.QMainWindow.__init__(self) - self.setWindowTitle(self.TITLE) - self.menu = self.menuBar() - self.menus = {} - - def closeEvent(self, *args): - self.window_closed.emit() - - def add_menu_item(self, menu, label, callback, icon=None, shortcut=None): - m = self.menus.get(menu) - if m is None: - m = self.menu.addMenu(menu) - self.menus[menu] = m - - if icon: - a = QtWidgets.QAction(QtGui.QIcon(icon), label, self) - else: - a = QtWidgets.QAction(label, self) - - if shortcut: - a.setShortcut(shortcut) - - a.triggered.connect(callback) - m.addAction(a) - - def makeSelectionHandler(self, component): - def handler(inst): - for c in self.components: - if c != component: - c.select(inst) - - return handler - - def __init__(self, settings=None): - QtWidgets.QApplication.__init__(self, sys.argv) - self.window = application.window() - self.tree = application.decomposition_treeview() - self.tree2 = application.type_treeview() - self.propview = self.property_table() - self.canvas = application.viewer(self.window) - self.tabs = QtWidgets.QTabWidget() - self.window.resize(800, 600) - splitter = QtWidgets.QSplitter(QtCore.Qt.Horizontal) - splitter.addWidget(self.tabs) - self.tabs.addTab(self.tree, 'Decomposition') - self.tabs.addTab(self.tree2, 'Types') - self.tabs.addTab(self.propview, "Properties") - splitter2 = QtWidgets.QSplitter(QtCore.Qt.Vertical) - splitter2.addWidget(self.canvas) - self.editor = code_edit(self.canvas, configuration().options('snippets')) - splitter2.addWidget(self.editor) - splitter.addWidget(splitter2) - splitter.setSizes([200, 600]) - splitter2.setSizes([400, 200]) - self.window.setCentralWidget(splitter) - self.canvas.initialize() - self.components = [self.tree, self.tree2, self.canvas, self.propview, self.editor] - self.files = {} - - self.window.add_menu_item('File', '&Open', self.browse, shortcut='CTRL+O') - self.window.add_menu_item('File', '&Close', self.clear, shortcut='CTRL+W') - self.window.add_menu_item('File', '&Exit', self.window.close, shortcut='ALT+F4') - - self.tree.instanceSelected.connect(self.makeSelectionHandler(self.tree)) - self.tree2.instanceSelected.connect(self.makeSelectionHandler(self.tree2)) - self.canvas.instanceSelected.connect(self.makeSelectionHandler(self.canvas)) - for t in [self.tree, self.tree2]: - t.instanceVisibilityChanged.connect(functools.partial(self.change_visibility, t)) - t.instanceDisplayModeChanged.connect(functools.partial(self.change_displaymode, t)) - - self.settings = settings - - def change_visibility(self, tree, inst, flag): - insts = tree.get_children(inst) - self.canvas.toggle_visibility(insts, flag) - - def change_displaymode(self, tree, inst, flag): - insts = tree.get_children(inst) - self.canvas.toggle_wireframe(insts, flag) - - def start(self): - self.window.show() - sys.exit(self.exec_()) - - def browse(self): - filename = QtWidgets.QFileDialog.getOpenFileName(self.window, 'Open file', ".", - "Industry Foundation Classes (*.ifc)")[0] - self.load(filename) - - def clear(self): - self.canvas._display.Context.RemoveAll() - self.tree.clear() - self.files.clear() - - def load(self, fn): - if fn in self.files: - return - f = open_ifc_file(str(fn)) - self.files[fn] = f - for c in self.components: - c.load_file(f, setting=self.settings) - - -if __name__ == "__main__": - application().start() diff --git a/ifcopenshell/geom/client.py b/ifcopenshell/geom/client.py deleted file mode 100644 index d4eca22783..0000000000 --- a/ifcopenshell/geom/client.py +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -""" -Rough draft of a client application for the C++ IfcGeomServer binary -""" - -import os -import numpy -import subprocess - -from collections import namedtuple - -class message_headers(object): - HELLO = 0xff00 - IFC_MODEL = HELLO + 1 - GET = IFC_MODEL + 1 - ENTITY = GET + 1 - MORE = ENTITY + 1 - NEXT = MORE + 1 - BYE = NEXT + 1 - GET_LOG = BYE + 1 - LOG = GET_LOG + 1 - DEFLECTION = LOG + 1 - SETTING = DEFLECTION + 1 - -message = namedtuple("message", ("header", "contents")) - -def process(geomserver_exe, ifc_filename): - - proc = subprocess.Popen([geomserver_exe], stdout=subprocess.PIPE, stdin=subprocess.PIPE) - - def cast(data, dtype, n=None): - arr = numpy.frombuffer(data, dtype=dtype) - if n is None: return arr[0] - else: return arr - - def read(dtype, n=None): - data = proc.stdout.read(dtype().nbytes * (n or 1)) - return cast(data, dtype, n) - - def read_message(header_assertion=None): - header, size = read(numpy.int32, 2) - assert header_assertion is None or header_assertion == header - contents = b"" - if size > 0: - contents = proc.stdout.read(size) - return message(header, contents) - - def write(header, contents=None): - if contents is None: contents = [] - proc.stdin.write(numpy.int32(header).tobytes()) - integers_as_int32 = list(map(lambda s: numpy.int32(s) if isinstance(s, int) else s, contents)) - to_bytes = list(map(lambda s: s.tobytes() if hasattr(s, 'tobytes') else s, integers_as_int32)) - total_length = numpy.int32(sum(map(len, to_bytes))) - proc.stdin.write(total_length.tobytes()) - for b in to_bytes: - proc.stdin.write(b) - proc.stdin.flush() - - read_message(message_headers.HELLO) - - # @todo: no need to read the entire file in memory - s = open(ifc_filename, "rb").read() - - write(message_headers.SETTING, [numpy.int32((1 << 4)), numpy.int32(1)]) - write(message_headers.IFC_MODEL, [numpy.int32(len(s)), s, b"\x00" * ((4 - (len(s) % 4)) % 4)]) - - while True: - has_more = cast(read_message(message_headers.MORE).contents, numpy.int32) == 1 - if not has_more: break - write(message_headers.GET) - print(read_message(message_headers.ENTITY).contents) - write(message_headers.NEXT) - - write(message_headers.BYE) - read_message(message_headers.BYE) - proc.wait() - assert proc.returncode == 0 - -if __name__ == "__main__": - import sys - import platform - exe_extension = ".exe" if platform.system() == 'Windows' else "" - exe = os.environ.get("IFCGEOMSERVER") or ("IfcGeomServer" + exe_extension) - for fn in sys.argv[1:]: - process(exe, fn) diff --git a/ifcopenshell/geom/code_editor_pane.py b/ifcopenshell/geom/code_editor_pane.py deleted file mode 100644 index b64787f32b..0000000000 --- a/ifcopenshell/geom/code_editor_pane.py +++ /dev/null @@ -1,149 +0,0 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import sys -import logging - -from code import InteractiveConsole -from PyQt5 import QtCore, QtGui, QtWidgets - -try: - from PyQt5 import QtWidgets -except BaseException: - QtWidgets = QtGui - -try: - from pyqode.core.panels import CheckerPanel - from pyqode.core import api - from pyqode.core import modes - from pyqode.core import panels - from pyqode.core.api import CodeEdit, ColorScheme - from pyqode.python.modes import PyAutoIndentMode, PythonSH - from pyqode.python.backend import server - from pyqode.python import modes as pymodes, panels as pypanels, widgets - from pyqode.python.widgets import PyInteractiveConsole - - has_pyqode = True -except BaseException: - has_pyqode = False - CodeEdit = QtWidgets.QPlainTextEdit - - -class StdoutRedirector(object): - """A class for redirecting stdout to this Text widget.""" - - def __init__(self, widget): - self.widget = widget - self.isError = False - - def write(self, myStr): - self.widget.moveCursor(QtGui.QTextCursor.End) - if self.isError: - self.widget.setTextColor(QtCore.Qt.red) - else: - self.widget.setTextColor(QtCore.Qt.white) - self.widget.insertPlainText(myStr) - self.widget.moveCursor(QtGui.QTextCursor.End) - - -class code_edit(QtWidgets.QWidget): - class Console(InteractiveConsole): - def __init__(*args): - InteractiveConsole.__init__(*args) - - def enter(self, source): - self.runcode(source) - - def runCode(self): - sys.stdout = StdoutRedirector(self.output) - sys.stderr = StdoutRedirector(self.output) - sys.stderr.isError = True - - if not self.model: - print("please load a model first", file=sys.stderr) - else: - self.c.enter(str(self.editor.toPlainText())) - - sys.stdout = sys.__stdout__ - sys.stderr = sys.__stderr__ - - def select(self, product): - self.c = self.Console({'model': self.model, 'viewer': self.viewer, 'selection': product}) - - def __init__(self, viewer, snippets=None): - self.model = None - self.viewer = viewer - QtWidgets.QWidget.__init__(self) - self.layout = QtWidgets.QVBoxLayout(self) - self.setLayout(self.layout) - self.c = None - self.tools = QtWidgets.QHBoxLayout(self) - self.layout.addLayout(self.tools) - self.runbutton = QtWidgets.QPushButton("Run") - width = self.runbutton.fontMetrics().boundingRect("Run").width() + 20 - self.runbutton.setMaximumWidth(width) - self.tools.addWidget(self.runbutton) - self.runbutton.clicked.connect(self.runCode) - - editor = CodeEdit() - if has_pyqode: - editor.backend.start(server.__file__) - editor.panels.append(panels.FoldingPanel()) - editor.panels.append(panels.LineNumberPanel()) - editor.panels.append(panels.SearchAndReplacePanel(), - panels.SearchAndReplacePanel.Position.BOTTOM) - editor.panels.append(panels.EncodingPanel(), api.Panel.Position.TOP) - editor.add_separator() - editor.panels.append(pypanels.QuickDocPanel(), api.Panel.Position.BOTTOM) - sh = editor.modes.append(PythonSH(editor.document())) - editor.modes.append(modes.CaretLineHighlighterMode()) - editor.modes.append(modes.CodeCompletionMode()) - editor.modes.append(modes.ExtendedSelectionMode()) - editor.modes.append(modes.FileWatcherMode()) - editor.modes.append(modes.OccurrencesHighlighterMode()) - editor.modes.append(modes.RightMarginMode()) - editor.modes.append(modes.SmartBackSpaceMode()) - editor.modes.append(modes.SymbolMatcherMode()) - editor.modes.append(modes.ZoomMode()) - editor.modes.append(pymodes.CommentsMode()) - editor.modes.append(pymodes.CalltipsMode()) - auto = pymodes.PyAutoCompleteMode() - auto.logger.setLevel(logging.CRITICAL) - editor.modes.append(auto) - editor.modes.append(pymodes.PyAutoIndentMode()) - editor.modes.append(pymodes.PyIndenterMode()) - editor.show() - else: - editor.setStyleSheet('font-size: 10pt; font-family: Consolas, Courier;') - - self.editor = editor - self.snippets = snippets - if self.snippets: - self.list = QtWidgets.QComboBox(self) - self.replace_snippet(0) - for snip_name in self.snippets.keys(): - self.list.addItem(snip_name) - self.tools.addWidget(self.list) - self.list.currentIndexChanged[int].connect(self.replace_snippet) - - self.layout.addWidget(self.editor) - self.output = QtWidgets.QTextEdit() - self.output.setReadOnly(True) - self.output.setStyleSheet('font-size: 10pt; font-family: Consolas, Courier; background-color: #444;') - self.layout.addWidget(self.output) - - def replace_snippet(self, number=None): - snip = list(self.snippets.values())[number] - if has_pyqode: - self.editor.setPlainText(snip, "", "") - else: - self.editor.setPlainText(snip) - - def load_file(self, f, **kwargs): - output = [] - sys.stdout = StdoutRedirector(self.output) - self.model = f - self.c = self.Console({'model': self.model, 'selection': None, 'viewer': self.viewer}) - sys.stdout = sys.__stdout__ diff --git a/ifcopenshell/geom/main.py b/ifcopenshell/geom/main.py deleted file mode 100644 index 8421a389b7..0000000000 --- a/ifcopenshell/geom/main.py +++ /dev/null @@ -1,193 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import sys - -from .. import ifcopenshell_wrapper -from ..file import file -from ..entity_instance import entity_instance - -from . import has_occ - - -def wrap_shape_creation(settings, shape): - return shape - - -if has_occ: - from . import occ_utils as utils - - try: - from OCC.Core import TopoDS - except ImportError: - from OCC import TopoDS - - def wrap_shape_creation(settings, shape): - if getattr(settings, 'use_python_opencascade', False): - return utils.create_shape_from_serialization(shape) - else: - return shape - -# Subclass the settings module to provide an additional -# setting to enable pythonOCC when available -class settings(ifcopenshell_wrapper.settings): - if has_occ: - USE_PYTHON_OPENCASCADE = -1 - - def set(self, *args): - setting, value = args - if setting == settings.USE_PYTHON_OPENCASCADE: - self.set(settings.USE_BREP_DATA, value) - self.set(settings.USE_WORLD_COORDS, value) - self.set(settings.DISABLE_TRIANGULATION, value) - self.use_python_opencascade = value - else: - ifcopenshell_wrapper.settings.set(self, *args) - - -# Assert templated precision to match Python's internal float type -assert ifcopenshell_wrapper.iterator_double_precision.mantissa_size() == sys.float_info.mant_dig -_iterator = ifcopenshell_wrapper.iterator_double_precision - -# Make sure people are able to use python's platform agnostic paths -class iterator(_iterator): - def __init__(self, settings, file_or_filename, num_threads = 1): - self.settings = settings - if isinstance(file_or_filename, file): - file_or_filename = file_or_filename.wrapped_data - else: - file_or_filename = os.path.abspath(file_or_filename) - _iterator.__init__(self, settings, file_or_filename, num_threads) - - if has_occ: - def get(self): - return wrap_shape_creation(self.settings, _iterator.get(self)) - - def __iter__(self): - if self.initialize(): - while True: - yield self.get() - if not self.next(): break - -class tree(ifcopenshell_wrapper.tree): - - def __init__(self, file=None, settings=None): - args = [self] - if file is not None: - args.append(file.wrapped_data) - if settings is not None: - args.append(settings) - ifcopenshell_wrapper.tree.__init__(*args) - - def add_file(self, file, settings): - ifcopenshell_wrapper.tree.add_file(self, file.wrapped_data, settings) - - def select(self, value, **kwargs): - def unwrap(value): - if isinstance(value, entity_instance): - return value.wrapped_data - elif all(map(lambda v: hasattr(value, v), "XYZ")): - return value.X(), value.Y(), value.Z() - return value - - args = [self, unwrap(value)] - if isinstance(value, entity_instance): - args.append(kwargs.get("completely_within", False)) - elif has_occ: - if isinstance(value, TopoDS.TopoDS_Shape): - args[1] = utils.serialize_shape(value) - return [entity_instance(e) for e in ifcopenshell_wrapper.tree.select(*args)] - - def select_box(self, value, **kwargs): - def unwrap(value): - if isinstance(value, entity_instance): - return value.wrapped_data - elif hasattr(value, "Get"): - return value.Get()[:3], value.Get()[3:] - return value - - args = [self, unwrap(value)] - if "extend" in kwargs or "completely_within" in kwargs: - args.append(kwargs.get("completely_within", False)) - if "extend" in kwargs: - args.append(kwargs.get("extend", -1.e-5)) - return [entity_instance(e) for e in ifcopenshell_wrapper.tree.select_box(*args)] - - -def create_shape(settings, inst, repr=None): - """ - Return a geometric representation from STEP-based IFCREPRESENTATIONSHAPE - or - Return an OpenCASCADE BRep if settings.USE_PYTHON_OPENCASCADE == True - - example: - - settings = ifcopenshell.geom.settings() - settings.set(settings.USE_PYTHON_OPENCASCADE, True) - - ifc_file = ifcopenshell.open(file_path) - products = ifc_file.by_type("IfcProduct") - - for i, product in enumerate(products): - if product.Representation is not None: - try: - shape = geom.create_shape(settings, inst=product).geometry - shape_gpXYZ = shape.Location().Transformation().TranslationPart() # These are methods of the TopoDS_Shape class from pythonOCC - print(shape_gpXYZ.X(), shape_gpXYZ.Y(), shape_gpXYZ.Z()) # These are methods of the gpXYZ class from pythonOCC - """ - return wrap_shape_creation( - settings, - ifcopenshell_wrapper.create_shape( - settings, - inst.wrapped_data, - repr.wrapped_data if repr is not None else None - )) - - -def iterate(settings, filename): - it = iterator(settings, filename) - if it.initialize(): - while True: - yield it.get() - if not it.next(): - break - - -def make_shape_function(fn): - def entity_instance_or_none(e): - return None if e is None else entity_instance(e) - - if has_occ: - def _(schema, string_or_shape, *args): - if isinstance(string_or_shape, TopoDS.TopoDS_Shape): - string_or_shape = utils.serialize_shape(string_or_shape) - return entity_instance_or_none(fn(schema, string_or_shape, *args)) - else: - def _(schema, string, *args): - return entity_instance_or_none(fn(schema, string, *args)) - return _ - - -serialise = make_shape_function(ifcopenshell_wrapper.serialise) -tesselate = make_shape_function(ifcopenshell_wrapper.tesselate) diff --git a/ifcopenshell/geom/occ_utils.py b/ifcopenshell/geom/occ_utils.py deleted file mode 100644 index 0565f836fb..0000000000 --- a/ifcopenshell/geom/occ_utils.py +++ /dev/null @@ -1,233 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import random -import operator -import warnings - -from collections import namedtuple, Iterable - -try: - from OCC.Core import V3d, TopoDS, gp, AIS, Quantity, BRepTools, Graphic3d -except ImportError: - from OCC import V3d, TopoDS, gp, AIS, Quantity, BRepTools, Graphic3d - -shape_tuple = namedtuple('shape_tuple', ('data', 'geometry', 'styles')) - -handle, main_loop, add_menu, add_function_to_menu = None, None, None, None - -DEFAULT_STYLES = { - "DEFAULT": (.7, .7, .7), - "IfcWall": (.8, .8, .8), - "IfcSite": (.75, .8, .65), - "IfcSlab": (.4, .4, .4), - "IfcWallStandardCase": (.9, .9, .9), - "IfcWall": (.9, .9, .9), - "IfcWindow": (.75, .8, .75, .3), - "IfcDoor": (.55, .3, .15), - "IfcBeam": (.75, .7, .7), - "IfcRailing": (.65, .6, .6), - "IfcMember": (.65, .6, .6), - "IfcPlate": (.8, .8, .8) -} - - -def initialize_display(): - import OCC.Display.SimpleGui - - global handle, main_loop, add_menu, add_function_to_menu - handle, main_loop, add_menu, add_function_to_menu = OCC.Display.SimpleGui.init_display() - - def setup(): - viewer_handle = handle.GetViewer() - viewer = viewer_handle.GetObject() if hasattr(viewer_handle, "GetObject") else viewer_handle - - def lights(): - viewer.InitActiveLights() - for _ in range(2): - try: - active_light = viewer.ActiveLight() - except BaseException: - break - yield active_light - viewer.NextActiveLights() - - lights = list(lights()) - for l in lights: - viewer.DelLight(l) - - for dir in [V3d.V3d_TypeOfOrientation_Yup_AxoRight, V3d.V3d_TypeOfOrientation_Zup_AxoRight]: - light = V3d.V3d_DirectionalLight(viewer_handle) - light.SetDirection(dir) - viewer.SetLightOn(light) - - setup() - return handle - - -def yield_subshapes(shape): - it = TopoDS.TopoDS_Iterator(shape) - while it.More(): - yield it.Value() - it.Next() - - -def display_shape(shape, clr=None, viewer_handle=None): - if viewer_handle is None: - viewer_handle = handle - - if isinstance(shape, shape_tuple): - shape, representation = shape.geometry, shape - else: - representation = None - - material = Graphic3d.Graphic3d_MaterialAspect(Graphic3d.Graphic3d_NOM_PLASTER) - - if representation and not clr: - if len(set(representation.styles)) == 1: - clr = representation.styles[0] - if min(clr) < 0. or max(clr) > 1.: - clr = DEFAULT_STYLES.get(representation.data.type, DEFAULT_STYLES["DEFAULT"]) - - if clr: - ais = AIS.AIS_Shape(shape) - ais.SetMaterial(material) - - if isinstance(clr, str): - qclr = getattr(Quantity, "Quantity_NOC_%s" % clr.upper(), - getattr(Quantity, "Quantity_NOC_%s1" % clr.upper(), None)) - if qclr is None: - raise Exception("No color named '%s'" % clr.upper()) - elif isinstance(clr, Iterable): - clr = tuple(clr) - if len(clr) < 3 or len(clr) > 4: - raise Exception("Need 3 or 4 color components. Got '%r'." % len(clr)) - qclr = Quantity.Quantity_Color(clr[0], clr[1], clr[2], Quantity.Quantity_TOC_RGB) - elif isinstance(clr, Quantity.Quantity_Color): - qclr = clr - else: - raise Exception("Object of type %r cannot be used as a color." % type(clr)) - - ais.SetColor(qclr) - if isinstance(clr, tuple) and len(clr) == 4 and clr[3] < 1.: - ais.SetTransparency(1. - clr[3]) - - elif representation and hasattr(AIS, "AIS_MultipleConnectedShape"): - default_style_applied = None - - ais = AIS.AIS_MultipleConnectedShape(shape) - - subshapes = list(yield_subshapes(shape)) - lens = len(representation.styles), len(subshapes) - if lens[0] != lens[1]: - warnings.warn("Unable to assign styles to subshapes. Encountered %d styles for %d shapes." % lens) - else: - for shp, stl in zip(subshapes, representation.styles): - subshape = AIS.AIS_Shape(shp) - if min(stl) < 0. or max(stl) > 1.: - default_style_applied = stl = DEFAULT_STYLES.get(representation.data.type, - DEFAULT_STYLES["DEFAULT"]) - subshape.SetColor(Quantity.Quantity_Color(stl[0], stl[1], stl[2], Quantity.Quantity_TOC_RGB)) - subshape.SetMaterial(material) - if len(stl) == 4 and stl[3] < 1.: - subshape.SetTransparency(1. - stl[3]) - ais.Connect(subshape.GetHandle()) - - # For some reason it is necessary to set transparency here again - # in order for transparency to be rendered on the subshape. - applied_styles = representation.styles - if default_style_applied: - if len(default_style_applied) == 3: - default_style_applied += (1.,) - applied_styles += (default_style_applied,) - - if len(applied_styles): - # The only way for this not to be true if is the entire shape is NULL - min_transp = min(map(operator.itemgetter(3), applied_styles)) - if min_transp < 1.: - ais.SetTransparency(1.) - - else: - ais = AIS.AIS_Shape(shape) - ais.SetMaterial(material) - - def r(): - return random.random() * 0.3 + 0.7 - - clr = Quantity.Quantity_Color(r(), r(), r(), Quantity.Quantity_TOC_RGB) - ais.SetColor(clr) - - ais_handle = ais - viewer_handle.Context.Display(ais_handle, False) - - return ais_handle - - -def set_shape_transparency(ais, t): - handle.Context.SetTransparency(ais, t) - - -def get_bounding_box_center(bbox): - bbmin = [0.] * 3 - bbmax = [0.] * 3 - bbmin[0], bbmin[1], bbmin[2], bbmax[0], bbmax[1], bbmax[2] = bbox.Get() - return gp.gp_Pnt(*map(lambda xy: (xy[0] + xy[1]) / 2., zip(bbmin, bbmax))) - - -def serialize_shape(shape): - shapes = BRepTools.BRepTools_ShapeSet() - shapes.Add(shape) - return shapes.WriteToString() - - -def create_shape_from_serialization(brep_object): - brep_data, occ_shape, styles = None, None, () - - is_product_shape = True - try: - brep_data = brep_object.geometry.brep_data - styles = brep_object.geometry.surface_styles - except BaseException: - try: - brep_data = brep_object.brep_data - styles = brep_object.surface_styles - is_product_shape = False - except BaseException: - pass - - styles = tuple(styles[i:i + 4] for i in range(0, len(styles), 4)) - - if not brep_data: - return shape_tuple(brep_object, None, styles) - - try: - ss = BRepTools.BRepTools_ShapeSet() - ss.ReadFromString(brep_data) - occ_shape = ss.Shape(ss.NbShapes()) - except BaseException: - pass - - if is_product_shape: - return shape_tuple(brep_object, occ_shape, styles) - else: - return occ_shape diff --git a/ifcopenshell/guid.py b/ifcopenshell/guid.py deleted file mode 100644 index b14ce43f4e..0000000000 --- a/ifcopenshell/guid.py +++ /dev/null @@ -1,57 +0,0 @@ -############################################################################### -# # -# This file is part of IfcOpenShell. # -# # -# IfcOpenShell is free software: you can redistribute it and/or modify # -# it under the terms of the Lesser GNU General Public License as published by # -# the Free Software Foundation, either version 3.0 of the License, or # -# (at your option) any later version. # -# # -# IfcOpenShell is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# Lesser GNU General Public License for more details. # -# # -# You should have received a copy of the Lesser GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import uuid -import string - -from functools import reduce - -chars = string.digits + string.ascii_uppercase + string.ascii_lowercase + '_$' - - -def compress(g): - bs = [int(g[i:i + 2], 16) for i in range(0, len(g), 2)] - - def b64(v, l=4): - return ''.join([chars[(v // (64 ** i)) % 64] for i in range(l)][::-1]) - - return ''.join([b64(bs[0], 2)] + [b64((bs[i] << 16) + (bs[i + 1] << 8) + bs[i + 2]) for i in range(1, 16, 3)]) - - -def expand(g): - def b64(v): - return reduce(lambda a, b: a * 64 + b, map(lambda c: chars.index(c), v)) - - bs = [b64(g[0:2])] - for i in range(5): - d = b64(g[2 + 4 * i:6 + 4 * i]) - bs += [(d >> (8 * (2 - j))) % 256 for j in range(3)] - return ''.join(['%02x' % b for b in bs]) - - -def split(g): - return '{%s-%s-%s-%s-%s}' % (g[:8], g[8:12], g[12:16], g[16:20], g[20:]) - - -def new(): - return compress(uuid.uuid4().hex) diff --git a/ifcopenshell/ifcopenshell_wrapper.py b/ifcopenshell/ifcopenshell_wrapper.py deleted file mode 100644 index f30ef71574..0000000000 --- a/ifcopenshell/ifcopenshell_wrapper.py +++ /dev/null @@ -1,2417 +0,0 @@ -# This file was automatically generated by SWIG (http://www.swig.org). -# Version 3.0.12 -# -# Do not make changes to this file unless you know what you are doing--modify -# the SWIG interface file instead. - -from sys import version_info as _swig_python_version_info -if _swig_python_version_info >= (2, 7, 0): - def swig_import_helper(): - import importlib - pkg = __name__.rpartition('.')[0] - mname = '.'.join((pkg, '_ifcopenshell_wrapper')).lstrip('.') - try: - return importlib.import_module(mname) - except ImportError: - return importlib.import_module('_ifcopenshell_wrapper') - _ifcopenshell_wrapper = swig_import_helper() - del swig_import_helper -elif _swig_python_version_info >= (2, 6, 0): - def swig_import_helper(): - from os.path import dirname - import imp - fp = None - try: - fp, pathname, description = imp.find_module('_ifcopenshell_wrapper', [dirname(__file__)]) - except ImportError: - import _ifcopenshell_wrapper - return _ifcopenshell_wrapper - try: - _mod = imp.load_module('_ifcopenshell_wrapper', fp, pathname, description) - finally: - if fp is not None: - fp.close() - return _mod - _ifcopenshell_wrapper = swig_import_helper() - del swig_import_helper -else: - import _ifcopenshell_wrapper -del _swig_python_version_info - -try: - _swig_property = property -except NameError: - pass # Python < 2.2 doesn't have 'property'. - -try: - import builtins as __builtin__ -except ImportError: - import __builtin__ - -def _swig_setattr_nondynamic(self, class_type, name, value, static=1): - if (name == "thisown"): - return self.this.own(value) - if (name == "this"): - if type(value).__name__ == 'SwigPyObject': - self.__dict__[name] = value - return - method = class_type.__swig_setmethods__.get(name, None) - if method: - return method(self, value) - if (not static): - if _newclass: - object.__setattr__(self, name, value) - else: - self.__dict__[name] = value - else: - raise AttributeError("You cannot add attributes to %s" % self) - - -def _swig_setattr(self, class_type, name, value): - return _swig_setattr_nondynamic(self, class_type, name, value, 0) - - -def _swig_getattr(self, class_type, name): - if (name == "thisown"): - return self.this.own() - method = class_type.__swig_getmethods__.get(name, None) - if method: - return method(self) - raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) - - -def _swig_repr(self): - try: - strthis = "proxy of " + self.this.__repr__() - except __builtin__.Exception: - strthis = "" - return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) - -try: - _object = object - _newclass = 1 -except __builtin__.Exception: - class _object: - pass - _newclass = 0 - -class settings(_object): - """Proxy of C++ IfcGeom::IteratorSettings class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, settings, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, settings, name) - __repr__ = _swig_repr - WELD_VERTICES = _ifcopenshell_wrapper.settings_WELD_VERTICES - USE_WORLD_COORDS = _ifcopenshell_wrapper.settings_USE_WORLD_COORDS - CONVERT_BACK_UNITS = _ifcopenshell_wrapper.settings_CONVERT_BACK_UNITS - USE_BREP_DATA = _ifcopenshell_wrapper.settings_USE_BREP_DATA - SEW_SHELLS = _ifcopenshell_wrapper.settings_SEW_SHELLS - FASTER_BOOLEANS = _ifcopenshell_wrapper.settings_FASTER_BOOLEANS - DISABLE_OPENING_SUBTRACTIONS = _ifcopenshell_wrapper.settings_DISABLE_OPENING_SUBTRACTIONS - DISABLE_TRIANGULATION = _ifcopenshell_wrapper.settings_DISABLE_TRIANGULATION - APPLY_DEFAULT_MATERIALS = _ifcopenshell_wrapper.settings_APPLY_DEFAULT_MATERIALS - INCLUDE_CURVES = _ifcopenshell_wrapper.settings_INCLUDE_CURVES - EXCLUDE_SOLIDS_AND_SURFACES = _ifcopenshell_wrapper.settings_EXCLUDE_SOLIDS_AND_SURFACES - NO_NORMALS = _ifcopenshell_wrapper.settings_NO_NORMALS - GENERATE_UVS = _ifcopenshell_wrapper.settings_GENERATE_UVS - APPLY_LAYERSETS = _ifcopenshell_wrapper.settings_APPLY_LAYERSETS - SEARCH_FLOOR = _ifcopenshell_wrapper.settings_SEARCH_FLOOR - SITE_LOCAL_PLACEMENT = _ifcopenshell_wrapper.settings_SITE_LOCAL_PLACEMENT - BUILDING_LOCAL_PLACEMENT = _ifcopenshell_wrapper.settings_BUILDING_LOCAL_PLACEMENT - VALIDATE_QUANTITIES = _ifcopenshell_wrapper.settings_VALIDATE_QUANTITIES - NUM_SETTINGS = _ifcopenshell_wrapper.settings_NUM_SETTINGS - - def __init__(self): - """__init__(IfcGeom::IteratorSettings self) -> settings""" - this = _ifcopenshell_wrapper.new_settings() - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def deflection_tolerance(self): - """deflection_tolerance(settings self) -> double""" - return _ifcopenshell_wrapper.settings_deflection_tolerance(self) - - - def set_deflection_tolerance(self, value): - """set_deflection_tolerance(settings self, double value)""" - return _ifcopenshell_wrapper.settings_set_deflection_tolerance(self, value) - - - def get(self, setting): - """get(settings self, IfcGeom::IteratorSettings::SettingField setting) -> bool""" - return _ifcopenshell_wrapper.settings_get(self, setting) - - - def set(self, setting, value): - """set(settings self, IfcGeom::IteratorSettings::SettingField setting, bool value)""" - return _ifcopenshell_wrapper.settings_set(self, setting, value) - - - attrs = ("convert_back_units", "deflection_tolerance", "disable_opening_subtractions", "disable_triangulation", "faster_booleans", "sew_shells", "use_brep_data", "use_world_coords", "weld_vertices") - def __repr__(self): - return "%s(%s)"%(self.__class__.__name__, ",".join(tuple("%s=%r"%(a, getattr(self, a)()) for a in self.attrs))) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_settings - __del__ = lambda self: None -settings_swigregister = _ifcopenshell_wrapper.settings_swigregister -settings_swigregister(settings) - -class ElementSettings(settings): - """Proxy of C++ IfcGeom::ElementSettings class.""" - - __swig_setmethods__ = {} - for _s in [settings]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, ElementSettings, name, value) - __swig_getmethods__ = {} - for _s in [settings]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, ElementSettings, name) - __repr__ = _swig_repr - - def __init__(self, settings, unit_magnitude, element_type): - """__init__(IfcGeom::ElementSettings self, settings settings, double unit_magnitude, std::string const & element_type) -> ElementSettings""" - this = _ifcopenshell_wrapper.new_ElementSettings(settings, unit_magnitude, element_type) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def unit_magnitude(self): - """unit_magnitude(ElementSettings self) -> double""" - return _ifcopenshell_wrapper.ElementSettings_unit_magnitude(self) - - - def element_type(self): - """element_type(ElementSettings self) -> std::string const &""" - return _ifcopenshell_wrapper.ElementSettings_element_type(self) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_ElementSettings - __del__ = lambda self: None -ElementSettings_swigregister = _ifcopenshell_wrapper.ElementSettings_swigregister -ElementSettings_swigregister(ElementSettings) - -class Material(_object): - """Proxy of C++ IfcGeom::Material class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, Material, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, Material, name) - __repr__ = _swig_repr - - def __init__(self, style=None): - """ - __init__(IfcGeom::Material self, IfcGeom::SurfaceStyle const * style=None) -> Material - __init__(IfcGeom::Material self) -> Material - """ - this = _ifcopenshell_wrapper.new_Material(style) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def hasDiffuse(self): - """hasDiffuse(Material self) -> bool""" - return _ifcopenshell_wrapper.Material_hasDiffuse(self) - - - def hasSpecular(self): - """hasSpecular(Material self) -> bool""" - return _ifcopenshell_wrapper.Material_hasSpecular(self) - - - def hasTransparency(self): - """hasTransparency(Material self) -> bool""" - return _ifcopenshell_wrapper.Material_hasTransparency(self) - - - def hasSpecularity(self): - """hasSpecularity(Material self) -> bool""" - return _ifcopenshell_wrapper.Material_hasSpecularity(self) - - - def diffuse(self): - """diffuse(Material self) -> double const *""" - return _ifcopenshell_wrapper.Material_diffuse(self) - - - def specular(self): - """specular(Material self) -> double const *""" - return _ifcopenshell_wrapper.Material_specular(self) - - - def transparency(self): - """transparency(Material self) -> double""" - return _ifcopenshell_wrapper.Material_transparency(self) - - - def specularity(self): - """specularity(Material self) -> double""" - return _ifcopenshell_wrapper.Material_specularity(self) - - - def name(self): - """name(Material self) -> std::string const &""" - return _ifcopenshell_wrapper.Material_name(self) - - - def original_name(self): - """original_name(Material self) -> std::string const &""" - return _ifcopenshell_wrapper.Material_original_name(self) - - - def __eq__(self, other): - """__eq__(Material self, Material other) -> bool""" - return _ifcopenshell_wrapper.Material___eq__(self, other) - - - # Hide the getters with read-only property implementations - has_diffuse = property(hasDiffuse) - has_specular = property(hasSpecular) - has_transparency = property(hasTransparency) - has_specularity = property(hasSpecularity) - diffuse = property(diffuse) - specular = property(specular) - transparency = property(transparency) - specularity = property(specularity) - name = property(name) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_Material - __del__ = lambda self: None -Material_swigregister = _ifcopenshell_wrapper.Material_swigregister -Material_swigregister(Material) - -class Representation(_object): - """Proxy of C++ IfcGeom::Representation::Representation class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, Representation, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, Representation, name) - __repr__ = _swig_repr - - def __init__(self, settings): - """__init__(IfcGeom::Representation::Representation self, ElementSettings settings) -> Representation""" - this = _ifcopenshell_wrapper.new_Representation(settings) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def settings(self): - """settings(Representation self) -> ElementSettings""" - return _ifcopenshell_wrapper.Representation_settings(self) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_Representation - __del__ = lambda self: None -Representation_swigregister = _ifcopenshell_wrapper.Representation_swigregister -Representation_swigregister(Representation) - -class BRep(Representation): - """Proxy of C++ IfcGeom::Representation::BRep class.""" - - __swig_setmethods__ = {} - for _s in [Representation]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, BRep, name, value) - __swig_getmethods__ = {} - for _s in [Representation]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, BRep, name) - __repr__ = _swig_repr - - def __init__(self, settings, id, shapes): - """__init__(IfcGeom::Representation::BRep self, ElementSettings settings, std::string const & id, IfcGeom::IfcRepresentationShapeItems const & shapes) -> BRep""" - this = _ifcopenshell_wrapper.new_BRep(settings, id, shapes) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_BRep - __del__ = lambda self: None - - def begin(self): - """begin(BRep self) -> IfcGeom::IfcRepresentationShapeItems::const_iterator""" - return _ifcopenshell_wrapper.BRep_begin(self) - - - def end(self): - """end(BRep self) -> IfcGeom::IfcRepresentationShapeItems::const_iterator""" - return _ifcopenshell_wrapper.BRep_end(self) - - - def shapes(self): - """shapes(BRep self) -> IfcGeom::IfcRepresentationShapeItems const &""" - return _ifcopenshell_wrapper.BRep_shapes(self) - - - def id(self): - """id(BRep self) -> std::string const &""" - return _ifcopenshell_wrapper.BRep_id(self) - - - def as_compound(self, force_meters=False): - """ - as_compound(BRep self, bool force_meters=False) -> TopoDS_Compound - as_compound(BRep self) -> TopoDS_Compound - """ - return _ifcopenshell_wrapper.BRep_as_compound(self, force_meters) - - - def calculate_volume(self, arg2): - """calculate_volume(BRep self, double & arg2) -> bool""" - return _ifcopenshell_wrapper.BRep_calculate_volume(self, arg2) - - - def calculate_surface_area(self, arg2): - """calculate_surface_area(BRep self, double & arg2) -> bool""" - return _ifcopenshell_wrapper.BRep_calculate_surface_area(self, arg2) - - - def calculate_projected_surface_area(self, ax, along_x, along_y, along_z): - """calculate_projected_surface_area(BRep self, gp_Ax3 const & ax, double & along_x, double & along_y, double & along_z) -> bool""" - return _ifcopenshell_wrapper.BRep_calculate_projected_surface_area(self, ax, along_x, along_y, along_z) - -BRep_swigregister = _ifcopenshell_wrapper.BRep_swigregister -BRep_swigregister(BRep) - -class Serialization(Representation): - """Proxy of C++ IfcGeom::Representation::Serialization class.""" - - __swig_setmethods__ = {} - for _s in [Representation]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, Serialization, name, value) - __swig_getmethods__ = {} - for _s in [Representation]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, Serialization, name) - __repr__ = _swig_repr - - def brep_data(self): - """brep_data(Serialization self) -> std::string const &""" - return _ifcopenshell_wrapper.Serialization_brep_data(self) - - - def surface_styles(self): - """surface_styles(Serialization self) -> std::vector< double > const &""" - return _ifcopenshell_wrapper.Serialization_surface_styles(self) - - - def __init__(self, brep): - """__init__(IfcGeom::Representation::Serialization self, BRep brep) -> Serialization""" - this = _ifcopenshell_wrapper.new_Serialization(brep) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_Serialization - __del__ = lambda self: None - - def id(self): - """id(Serialization self) -> std::string const &""" - return _ifcopenshell_wrapper.Serialization_id(self) - - - # Hide the getters with read-only property implementations - id = property(id) - brep_data = property(brep_data) - surface_styles = property(surface_styles) - -Serialization_swigregister = _ifcopenshell_wrapper.Serialization_swigregister -Serialization_swigregister(Serialization) - -class tree(_object): - """Proxy of C++ IfcGeom::tree class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, tree, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, tree, name) - __repr__ = _swig_repr - - def __init__(self, *args): - """ - __init__(IfcGeom::tree self) -> tree - __init__(IfcGeom::tree self, file f) -> tree - __init__(IfcGeom::tree self, file f, settings settings) -> tree - """ - this = _ifcopenshell_wrapper.new_tree(*args) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def add_file(self, f, settings): - """add_file(tree self, file f, settings settings)""" - return _ifcopenshell_wrapper.tree_add_file(self, f, settings) - - - def vector_to_list(ps): - """vector_to_list(std::vector< IfcUtil::IfcBaseEntity * > const & ps) -> IfcEntityList::ptr""" - return _ifcopenshell_wrapper.tree_vector_to_list(ps) - - vector_to_list = staticmethod(vector_to_list) - - def select_box(self, *args): - """ - select_box(tree self, entity_instance e, bool completely_within=False, double extend=-1.e-5) -> IfcEntityList::ptr - select_box(tree self, entity_instance e, bool completely_within=False) -> IfcEntityList::ptr - select_box(tree self, entity_instance e) -> IfcEntityList::ptr - select_box(tree self, gp_Pnt const & p) -> IfcEntityList::ptr - select_box(tree self, Bnd_Box const & b, bool completely_within=False) -> IfcEntityList::ptr - select_box(tree self, Bnd_Box const & b) -> IfcEntityList::ptr - """ - return _ifcopenshell_wrapper.tree_select_box(self, *args) - - - def select(self, *args): - """ - select(tree self, entity_instance e, bool completely_within=False) -> IfcEntityList::ptr - select(tree self, entity_instance e) -> IfcEntityList::ptr - select(tree self, gp_Pnt const & p) -> IfcEntityList::ptr - select(tree self, std::string const & shape_serialization) -> IfcEntityList::ptr - """ - return _ifcopenshell_wrapper.tree_select(self, *args) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_tree - __del__ = lambda self: None -tree_swigregister = _ifcopenshell_wrapper.tree_swigregister -tree_swigregister(tree) - -def tree_vector_to_list(ps): - """tree_vector_to_list(std::vector< IfcUtil::IfcBaseEntity * > const & ps) -> IfcEntityList::ptr""" - return _ifcopenshell_wrapper.tree_vector_to_list(ps) - - -def create_shape(settings, instance, representation=None): - """ - create_shape(settings settings, entity_instance instance, entity_instance representation=None) -> boost::variant< IfcGeom::Element< double,double > *,IfcGeom::Representation::Representation * > - create_shape(settings settings, entity_instance instance) -> boost::variant< IfcGeom::Element< double,double > *,IfcGeom::Representation::Representation * > - """ - return _ifcopenshell_wrapper.create_shape(settings, instance, representation) - -def serialise(schema_name, shape_str, advanced=True): - """ - serialise(std::string const & schema_name, std::string const & shape_str, bool advanced=True) -> entity_instance - serialise(std::string const & schema_name, std::string const & shape_str) -> entity_instance - """ - return _ifcopenshell_wrapper.serialise(schema_name, shape_str, advanced) - -def tesselate(schema_name, shape_str, d): - """tesselate(std::string const & schema_name, std::string const & shape_str, double d) -> entity_instance""" - return _ifcopenshell_wrapper.tesselate(schema_name, shape_str, d) -class iterator_double_precision(_object): - """Proxy of C++ IfcGeom::Iterator<(double)> class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, iterator_double_precision, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, iterator_double_precision, name) - __repr__ = _swig_repr - - def __init__(self, *args): - """ - __init__(IfcGeom::Iterator<(double)> self, settings settings, file file, int num_threads=1) -> iterator_double_precision - __init__(IfcGeom::Iterator<(double)> self, settings settings, file file) -> iterator_double_precision - __init__(IfcGeom::Iterator<(double)> self, settings settings, file file, std::vector< IfcGeom::filter_t > const & filters, size_t num_threads=1) -> iterator_double_precision - __init__(IfcGeom::Iterator<(double)> self, settings settings, file file, std::vector< IfcGeom::filter_t > const & filters) -> iterator_double_precision - """ - this = _ifcopenshell_wrapper.new_iterator_double_precision(*args) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def initialize(self): - """initialize(iterator_double_precision self) -> bool""" - return _ifcopenshell_wrapper.iterator_double_precision_initialize(self) - - - def progress(self): - """progress(iterator_double_precision self) -> int""" - return _ifcopenshell_wrapper.iterator_double_precision_progress(self) - - - def compute_bounds(self): - """compute_bounds(iterator_double_precision self)""" - return _ifcopenshell_wrapper.iterator_double_precision_compute_bounds(self) - - - def bounds_min(self): - """bounds_min(iterator_double_precision self) -> gp_XYZ const &""" - return _ifcopenshell_wrapper.iterator_double_precision_bounds_min(self) - - - def bounds_max(self): - """bounds_max(iterator_double_precision self) -> gp_XYZ const &""" - return _ifcopenshell_wrapper.iterator_double_precision_bounds_max(self) - - - def unit_name(self): - """unit_name(iterator_double_precision self) -> std::string const &""" - return _ifcopenshell_wrapper.iterator_double_precision_unit_name(self) - - - def unit_magnitude(self): - """unit_magnitude(iterator_double_precision self) -> double""" - return _ifcopenshell_wrapper.iterator_double_precision_unit_magnitude(self) - - - def file(self): - """file(iterator_double_precision self) -> file""" - return _ifcopenshell_wrapper.iterator_double_precision_file(self) - - - def next(self): - """next(iterator_double_precision self) -> entity_instance""" - return _ifcopenshell_wrapper.iterator_double_precision_next(self) - - - def get(self): - """get(iterator_double_precision self) -> element_double_precision""" - return _ifcopenshell_wrapper.iterator_double_precision_get(self) - - - def get_native(self): - """get_native(iterator_double_precision self) -> IfcGeom::BRepElement< double,double > *""" - return _ifcopenshell_wrapper.iterator_double_precision_get_native(self) - - - def get_object(self, id): - """get_object(iterator_double_precision self, int id) -> element_double_precision""" - return _ifcopenshell_wrapper.iterator_double_precision_get_object(self, id) - - - def create(self): - """create(iterator_double_precision self) -> entity_instance""" - return _ifcopenshell_wrapper.iterator_double_precision_create(self) - - - def mantissa_size(): - """mantissa_size() -> int""" - return _ifcopenshell_wrapper.iterator_double_precision_mantissa_size() - - mantissa_size = staticmethod(mantissa_size) - __swig_destroy__ = _ifcopenshell_wrapper.delete_iterator_double_precision - __del__ = lambda self: None -iterator_double_precision_swigregister = _ifcopenshell_wrapper.iterator_double_precision_swigregister -iterator_double_precision_swigregister(iterator_double_precision) - -def iterator_double_precision_mantissa_size(): - """iterator_double_precision_mantissa_size() -> int""" - return _ifcopenshell_wrapper.iterator_double_precision_mantissa_size() - -class element_double_precision(_object): - """Proxy of C++ IfcGeom::Element<(double)> class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, element_double_precision, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, element_double_precision, name) - __repr__ = _swig_repr - - def id(self): - """id(element_double_precision self) -> int""" - return _ifcopenshell_wrapper.element_double_precision_id(self) - - - def parent_id(self): - """parent_id(element_double_precision self) -> int""" - return _ifcopenshell_wrapper.element_double_precision_parent_id(self) - - - def name(self): - """name(element_double_precision self) -> std::string const &""" - return _ifcopenshell_wrapper.element_double_precision_name(self) - - - def type(self): - """type(element_double_precision self) -> std::string const &""" - return _ifcopenshell_wrapper.element_double_precision_type(self) - - - def guid(self): - """guid(element_double_precision self) -> std::string const &""" - return _ifcopenshell_wrapper.element_double_precision_guid(self) - - - def context(self): - """context(element_double_precision self) -> std::string const &""" - return _ifcopenshell_wrapper.element_double_precision_context(self) - - - def unique_id(self): - """unique_id(element_double_precision self) -> std::string const &""" - return _ifcopenshell_wrapper.element_double_precision_unique_id(self) - - - def transformation(self): - """transformation(element_double_precision self) -> transformation_double_precision""" - return _ifcopenshell_wrapper.element_double_precision_transformation(self) - - - def product(self): - """product(element_double_precision self) -> IfcBaseEntity""" - return _ifcopenshell_wrapper.element_double_precision_product(self) - - - def parents(self): - """parents(element_double_precision self) -> std::vector< IfcGeom::Element< double,double > const * > const""" - return _ifcopenshell_wrapper.element_double_precision_parents(self) - - - def SetParents(self, newparents): - """SetParents(element_double_precision self, std::vector< IfcGeom::Element< double,double > const * > newparents)""" - return _ifcopenshell_wrapper.element_double_precision_SetParents(self, newparents) - - - def __init__(self, settings, id, parent_id, name, type, guid, context, trsf, product): - """__init__(IfcGeom::Element<(double)> self, ElementSettings settings, int id, int parent_id, std::string const & name, std::string const & type, std::string const & guid, std::string const & context, gp_Trsf const & trsf, IfcBaseEntity product) -> element_double_precision""" - this = _ifcopenshell_wrapper.new_element_double_precision(settings, id, parent_id, name, type, guid, context, trsf, product) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_element_double_precision - __del__ = lambda self: None - - def product_(self): - """product_(element_double_precision self) -> entity_instance""" - return _ifcopenshell_wrapper.element_double_precision_product_(self) - - - # Hide the getters with read-only property implementations - id = property(id) - parent_id = property(parent_id) - name = property(name) - type = property(type) - guid = property(guid) - context = property(context) - unique_id = property(unique_id) - transformation = property(transformation) - product = property(product_) - -element_double_precision_swigregister = _ifcopenshell_wrapper.element_double_precision_swigregister -element_double_precision_swigregister(element_double_precision) - -def __eq__(*args): - """ - __eq__(Element< P,PP > const & element1, Element< P,PP > const & element2) -> bool - __eq__(element_double_precision element1, element_double_precision element2) -> bool - """ - return _ifcopenshell_wrapper.__eq__(*args) - -def __lt__(*args): - """ - __lt__(Element< P,PP > const & element1, Element< P,PP > const & element2) -> bool - __lt__(element_double_precision element1, element_double_precision element2) -> bool - """ - return _ifcopenshell_wrapper.__lt__(*args) - -class triangulation_element_double_precision(element_double_precision): - """Proxy of C++ IfcGeom::TriangulationElement<(double)> class.""" - - __swig_setmethods__ = {} - for _s in [element_double_precision]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, triangulation_element_double_precision, name, value) - __swig_getmethods__ = {} - for _s in [element_double_precision]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, triangulation_element_double_precision, name) - __repr__ = _swig_repr - - def geometry(self): - """geometry(triangulation_element_double_precision self) -> triangulation_double_precision""" - return _ifcopenshell_wrapper.triangulation_element_double_precision_geometry(self) - - - def geometry_pointer(self): - """geometry_pointer(triangulation_element_double_precision self) -> boost::shared_ptr< IfcGeom::Representation::Triangulation< double > > const &""" - return _ifcopenshell_wrapper.triangulation_element_double_precision_geometry_pointer(self) - - - def __init__(self, *args): - """ - __init__(IfcGeom::TriangulationElement<(double)> self, IfcGeom::BRepElement< double,double > const & shape_model) -> triangulation_element_double_precision - __init__(IfcGeom::TriangulationElement<(double)> self, element_double_precision element, boost::shared_ptr< IfcGeom::Representation::Triangulation< double > > const & geometry) -> triangulation_element_double_precision - """ - this = _ifcopenshell_wrapper.new_triangulation_element_double_precision(*args) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - # Hide the getters with read-only property implementations - geometry = property(geometry) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_triangulation_element_double_precision - __del__ = lambda self: None -triangulation_element_double_precision_swigregister = _ifcopenshell_wrapper.triangulation_element_double_precision_swigregister -triangulation_element_double_precision_swigregister(triangulation_element_double_precision) - -class serialized_element_double_precision(element_double_precision): - """Proxy of C++ IfcGeom::SerializedElement<(double)> class.""" - - __swig_setmethods__ = {} - for _s in [element_double_precision]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, serialized_element_double_precision, name, value) - __swig_getmethods__ = {} - for _s in [element_double_precision]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, serialized_element_double_precision, name) - __repr__ = _swig_repr - - def geometry(self): - """geometry(serialized_element_double_precision self) -> Serialization""" - return _ifcopenshell_wrapper.serialized_element_double_precision_geometry(self) - - - def __init__(self, shape_model): - """__init__(IfcGeom::SerializedElement<(double)> self, IfcGeom::BRepElement< double,double > const & shape_model) -> serialized_element_double_precision""" - this = _ifcopenshell_wrapper.new_serialized_element_double_precision(shape_model) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_serialized_element_double_precision - __del__ = lambda self: None - - # Hide the getters with read-only property implementations - geometry = property(geometry) - -serialized_element_double_precision_swigregister = _ifcopenshell_wrapper.serialized_element_double_precision_swigregister -serialized_element_double_precision_swigregister(serialized_element_double_precision) - -class transformation_double_precision(_object): - """Proxy of C++ IfcGeom::Transformation<(double)> class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, transformation_double_precision, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, transformation_double_precision, name) - __repr__ = _swig_repr - - def __init__(self, settings, trsf): - """__init__(IfcGeom::Transformation<(double)> self, ElementSettings settings, gp_Trsf const & trsf) -> transformation_double_precision""" - this = _ifcopenshell_wrapper.new_transformation_double_precision(settings, trsf) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def data(self): - """data(transformation_double_precision self) -> gp_Trsf const &""" - return _ifcopenshell_wrapper.transformation_double_precision_data(self) - - - def matrix(self): - """matrix(transformation_double_precision self) -> matrix_double_precision""" - return _ifcopenshell_wrapper.transformation_double_precision_matrix(self) - - - def inverted(self): - """inverted(transformation_double_precision self) -> transformation_double_precision""" - return _ifcopenshell_wrapper.transformation_double_precision_inverted(self) - - - def multiplied(self, other): - """multiplied(transformation_double_precision self, transformation_double_precision other) -> transformation_double_precision""" - return _ifcopenshell_wrapper.transformation_double_precision_multiplied(self, other) - - - # Hide the getters with read-only property implementations - matrix = property(matrix) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_transformation_double_precision - __del__ = lambda self: None -transformation_double_precision_swigregister = _ifcopenshell_wrapper.transformation_double_precision_swigregister -transformation_double_precision_swigregister(transformation_double_precision) - -class matrix_double_precision(_object): - """Proxy of C++ IfcGeom::Matrix<(double)> class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, matrix_double_precision, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, matrix_double_precision, name) - __repr__ = _swig_repr - - def __init__(self, settings, trsf): - """__init__(IfcGeom::Matrix<(double)> self, ElementSettings settings, gp_Trsf const & trsf) -> matrix_double_precision""" - this = _ifcopenshell_wrapper.new_matrix_double_precision(settings, trsf) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def data(self): - """data(matrix_double_precision self) -> std::vector< double > const &""" - return _ifcopenshell_wrapper.matrix_double_precision_data(self) - - - # Hide the getters with read-only property implementations - data = property(data) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_matrix_double_precision - __del__ = lambda self: None -matrix_double_precision_swigregister = _ifcopenshell_wrapper.matrix_double_precision_swigregister -matrix_double_precision_swigregister(matrix_double_precision) - -class triangulation_double_precision(Representation): - """Proxy of C++ IfcGeom::Representation::Triangulation<(double)> class.""" - - __swig_setmethods__ = {} - for _s in [Representation]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, triangulation_double_precision, name, value) - __swig_getmethods__ = {} - for _s in [Representation]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, triangulation_double_precision, name) - __repr__ = _swig_repr - - def id(self): - """id(triangulation_double_precision self) -> std::string const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_id(self) - - - def verts(self): - """verts(triangulation_double_precision self) -> std::vector< double > const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_verts(self) - - - def faces(self): - """faces(triangulation_double_precision self) -> std::vector< int > const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_faces(self) - - - def edges(self): - """edges(triangulation_double_precision self) -> std::vector< int > const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_edges(self) - - - def normals(self): - """normals(triangulation_double_precision self) -> std::vector< double > const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_normals(self) - - - def uvs(self): - """uvs(triangulation_double_precision self) -> std::vector< double > const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_uvs(self) - - - def material_ids(self): - """material_ids(triangulation_double_precision self) -> std::vector< int > const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_material_ids(self) - - - def materials(self): - """materials(triangulation_double_precision self) -> std::vector< IfcGeom::Material > const &""" - return _ifcopenshell_wrapper.triangulation_double_precision_materials(self) - - - def __init__(self, shape_model): - """__init__(IfcGeom::Representation::Triangulation<(double)> self, BRep shape_model) -> triangulation_double_precision""" - this = _ifcopenshell_wrapper.new_triangulation_double_precision(shape_model) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_triangulation_double_precision - __del__ = lambda self: None - - def box_project_uvs(vertices, normals): - """box_project_uvs(std::vector< double > const & vertices, std::vector< double > const & normals) -> std::vector< double >""" - return _ifcopenshell_wrapper.triangulation_double_precision_box_project_uvs(vertices, normals) - - box_project_uvs = staticmethod(box_project_uvs) - - # Hide the getters with read-only property implementations - id = property(id) - faces = property(faces) - edges = property(edges) - material_ids = property(material_ids) - materials = property(materials) - - - # Hide the getters with read-only property implementations - verts = property(verts) - normals = property(normals) - -triangulation_double_precision_swigregister = _ifcopenshell_wrapper.triangulation_double_precision_swigregister -triangulation_double_precision_swigregister(triangulation_double_precision) - -def triangulation_double_precision_box_project_uvs(vertices, normals): - """triangulation_double_precision_box_project_uvs(std::vector< double > const & vertices, std::vector< double > const & normals) -> std::vector< double >""" - return _ifcopenshell_wrapper.triangulation_double_precision_box_project_uvs(vertices, normals) - -class IfcEntityInstanceData(_object): - """Proxy of C++ IfcEntityInstanceData class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, IfcEntityInstanceData, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, IfcEntityInstanceData, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined") - __repr__ = _swig_repr - __swig_destroy__ = _ifcopenshell_wrapper.delete_IfcEntityInstanceData - __del__ = lambda self: None -IfcEntityInstanceData_swigregister = _ifcopenshell_wrapper.IfcEntityInstanceData_swigregister -IfcEntityInstanceData_swigregister(IfcEntityInstanceData) - -class HeaderEntity(IfcEntityInstanceData): - """Proxy of C++ IfcParse::HeaderEntity class.""" - - __swig_setmethods__ = {} - for _s in [IfcEntityInstanceData]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, HeaderEntity, name, value) - __swig_getmethods__ = {} - for _s in [IfcEntityInstanceData]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, HeaderEntity, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined") - __repr__ = _swig_repr - - def getArgumentCount(self): - """getArgumentCount(HeaderEntity self) -> unsigned int""" - return _ifcopenshell_wrapper.HeaderEntity_getArgumentCount(self) - - - def toString(self, upper=False): - """ - toString(HeaderEntity self, bool upper=False) -> std::string - toString(HeaderEntity self) -> std::string - """ - return _ifcopenshell_wrapper.HeaderEntity_toString(self, upper) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_HeaderEntity - __del__ = lambda self: None -HeaderEntity_swigregister = _ifcopenshell_wrapper.HeaderEntity_swigregister -HeaderEntity_swigregister(HeaderEntity) - -class FileDescription(HeaderEntity): - """Proxy of C++ IfcParse::FileDescription class.""" - - __swig_setmethods__ = {} - for _s in [HeaderEntity]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, FileDescription, name, value) - __swig_getmethods__ = {} - for _s in [HeaderEntity]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, FileDescription, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined") - __repr__ = _swig_repr - - def description(self, *args): - """ - description(FileDescription self) -> std::vector< std::string > - description(FileDescription self, std::vector< std::string > const & value) - """ - return _ifcopenshell_wrapper.FileDescription_description(self, *args) - - - def implementation_level(self, *args): - """ - implementation_level(FileDescription self) -> std::string - implementation_level(FileDescription self, std::string const & value) - """ - return _ifcopenshell_wrapper.FileDescription_implementation_level(self, *args) - - - # Hide the getters with read-write property implementations - description = property(description, description) - implementation_level = property(implementation_level, implementation_level) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_FileDescription - __del__ = lambda self: None -FileDescription_swigregister = _ifcopenshell_wrapper.FileDescription_swigregister -FileDescription_swigregister(FileDescription) - -class FileName(HeaderEntity): - """Proxy of C++ IfcParse::FileName class.""" - - __swig_setmethods__ = {} - for _s in [HeaderEntity]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, FileName, name, value) - __swig_getmethods__ = {} - for _s in [HeaderEntity]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, FileName, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined") - __repr__ = _swig_repr - - def name(self, *args): - """ - name(FileName self) -> std::string - name(FileName self, std::string const & value) - """ - return _ifcopenshell_wrapper.FileName_name(self, *args) - - - def time_stamp(self, *args): - """ - time_stamp(FileName self) -> std::string - time_stamp(FileName self, std::string const & value) - """ - return _ifcopenshell_wrapper.FileName_time_stamp(self, *args) - - - def author(self, *args): - """ - author(FileName self) -> std::vector< std::string > - author(FileName self, std::vector< std::string > const & value) - """ - return _ifcopenshell_wrapper.FileName_author(self, *args) - - - def organization(self, *args): - """ - organization(FileName self) -> std::vector< std::string > - organization(FileName self, std::vector< std::string > const & value) - """ - return _ifcopenshell_wrapper.FileName_organization(self, *args) - - - def preprocessor_version(self, *args): - """ - preprocessor_version(FileName self) -> std::string - preprocessor_version(FileName self, std::string const & value) - """ - return _ifcopenshell_wrapper.FileName_preprocessor_version(self, *args) - - - def originating_system(self, *args): - """ - originating_system(FileName self) -> std::string - originating_system(FileName self, std::string const & value) - """ - return _ifcopenshell_wrapper.FileName_originating_system(self, *args) - - - def authorization(self, *args): - """ - authorization(FileName self) -> std::string - authorization(FileName self, std::string const & value) - """ - return _ifcopenshell_wrapper.FileName_authorization(self, *args) - - - name = property(name, name) - time_stamp = property(time_stamp, time_stamp) - author = property(author, author) - organization = property(organization, organization) - preprocessor_version = property(preprocessor_version, preprocessor_version) - originating_system = property(originating_system, originating_system) - authorization = property(authorization, authorization) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_FileName - __del__ = lambda self: None -FileName_swigregister = _ifcopenshell_wrapper.FileName_swigregister -FileName_swigregister(FileName) - -class FileSchema(HeaderEntity): - """Proxy of C++ IfcParse::FileSchema class.""" - - __swig_setmethods__ = {} - for _s in [HeaderEntity]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, FileSchema, name, value) - __swig_getmethods__ = {} - for _s in [HeaderEntity]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, FileSchema, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined") - __repr__ = _swig_repr - - def schema_identifiers(self, *args): - """ - schema_identifiers(FileSchema self) -> std::vector< std::string > - schema_identifiers(FileSchema self, std::vector< std::string > const & value) - """ - return _ifcopenshell_wrapper.FileSchema_schema_identifiers(self, *args) - - - # Hide the getters with read-write property implementations - schema_identifiers = property(schema_identifiers, schema_identifiers) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_FileSchema - __del__ = lambda self: None -FileSchema_swigregister = _ifcopenshell_wrapper.FileSchema_swigregister -FileSchema_swigregister(FileSchema) - -class IfcSpfHeader(_object): - """Proxy of C++ IfcParse::IfcSpfHeader class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, IfcSpfHeader, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, IfcSpfHeader, name) - __repr__ = _swig_repr - - def __init__(self, file=None): - """ - __init__(IfcParse::IfcSpfHeader self, file file=None) -> IfcSpfHeader - __init__(IfcParse::IfcSpfHeader self) -> IfcSpfHeader - """ - this = _ifcopenshell_wrapper.new_IfcSpfHeader(file) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_IfcSpfHeader - __del__ = lambda self: None - - def file(self, *args): - """ - file(IfcSpfHeader self) -> file - file(IfcSpfHeader self, file file) - """ - return _ifcopenshell_wrapper.IfcSpfHeader_file(self, *args) - - - def read(self): - """read(IfcSpfHeader self)""" - return _ifcopenshell_wrapper.IfcSpfHeader_read(self) - - - def tryRead(self): - """tryRead(IfcSpfHeader self) -> bool""" - return _ifcopenshell_wrapper.IfcSpfHeader_tryRead(self) - - - def write(self, os): - """write(IfcSpfHeader self, std::ostream & os)""" - return _ifcopenshell_wrapper.IfcSpfHeader_write(self, os) - - - def file_description(self, *args): - """ - file_description(IfcSpfHeader self) -> FileDescription - file_description(IfcSpfHeader self) -> FileDescription - """ - return _ifcopenshell_wrapper.IfcSpfHeader_file_description(self, *args) - - - def file_name(self, *args): - """ - file_name(IfcSpfHeader self) -> FileName - file_name(IfcSpfHeader self) -> FileName - """ - return _ifcopenshell_wrapper.IfcSpfHeader_file_name(self, *args) - - - def file_schema(self, *args): - """ - file_schema(IfcSpfHeader self) -> FileSchema - file_schema(IfcSpfHeader self) -> FileSchema - """ - return _ifcopenshell_wrapper.IfcSpfHeader_file_schema(self, *args) - - - # Hide the getters with read-only property implementations - file_description = property(file_description) - file_name = property(file_name) - file_schema = property(file_schema) - -IfcSpfHeader_swigregister = _ifcopenshell_wrapper.IfcSpfHeader_swigregister -IfcSpfHeader_swigregister(IfcSpfHeader) - -class file(_object): - """Proxy of C++ IfcParse::IfcFile class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, file, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, file, name) - __repr__ = _swig_repr - __swig_setmethods__["stream"] = _ifcopenshell_wrapper.file_stream_set - __swig_getmethods__["stream"] = _ifcopenshell_wrapper.file_stream_get - if _newclass: - stream = _swig_property(_ifcopenshell_wrapper.file_stream_get, _ifcopenshell_wrapper.file_stream_set) - - def __init__(self, *args): - """ - __init__(IfcParse::IfcFile self, std::string const & fn) -> file - __init__(IfcParse::IfcFile self, std::istream & fn, int len) -> file - __init__(IfcParse::IfcFile self, void * data, int len) -> file - __init__(IfcParse::IfcFile self, IfcParse::IfcSpfStream * f) -> file - __init__(IfcParse::IfcFile self, schema_definition schema) -> file - __init__(IfcParse::IfcFile self) -> file - """ - this = _ifcopenshell_wrapper.new_file(*args) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_file - __del__ = lambda self: None - - def good(self): - """good(file self) -> bool""" - return _ifcopenshell_wrapper.file_good(self) - - - def types_begin(self): - """types_begin(file self) -> IfcParse::IfcFile::type_iterator""" - return _ifcopenshell_wrapper.file_types_begin(self) - - - def types_end(self): - """types_end(file self) -> IfcParse::IfcFile::type_iterator""" - return _ifcopenshell_wrapper.file_types_end(self) - - - def types_incl_super_begin(self): - """types_incl_super_begin(file self) -> IfcParse::IfcFile::type_iterator""" - return _ifcopenshell_wrapper.file_types_incl_super_begin(self) - - - def types_incl_super_end(self): - """types_incl_super_end(file self) -> IfcParse::IfcFile::type_iterator""" - return _ifcopenshell_wrapper.file_types_incl_super_end(self) - - - def instances_by_type_excl_subtypes(self, arg2): - """instances_by_type_excl_subtypes(file self, declaration arg2) -> IfcEntityList::ptr""" - return _ifcopenshell_wrapper.file_instances_by_type_excl_subtypes(self, arg2) - - - def by_type(self, *args): - """ - by_type(file self, declaration arg2) -> IfcEntityList::ptr - by_type(file self, std::string const & t) -> IfcEntityList::ptr - """ - return _ifcopenshell_wrapper.file_by_type(self, *args) - - - def instances_by_reference(self, id): - """instances_by_reference(file self, int id) -> IfcEntityList::ptr""" - return _ifcopenshell_wrapper.file_instances_by_reference(self, id) - - - def by_id(self, id): - """by_id(file self, int id) -> entity_instance""" - return _ifcopenshell_wrapper.file_by_id(self, id) - - - def instance_by_guid(self, guid): - """instance_by_guid(file self, std::string const & guid) -> entity_instance""" - return _ifcopenshell_wrapper.file_instance_by_guid(self, guid) - - - def traverse(self, instance, max_level=-1): - """ - traverse(file self, entity_instance instance, int max_level=-1) -> IfcEntityList::ptr - traverse(file self, entity_instance instance) -> IfcEntityList::ptr - """ - return _ifcopenshell_wrapper.file_traverse(self, instance, max_level) - - - def getInverse(self, instance_id, type, attribute_index): - """getInverse(file self, int instance_id, declaration type, int attribute_index) -> IfcEntityList::ptr""" - return _ifcopenshell_wrapper.file_getInverse(self, instance_id, type, attribute_index) - - - def mark_entity_as_modified(self, id): - """mark_entity_as_modified(file self, int id)""" - return _ifcopenshell_wrapper.file_mark_entity_as_modified(self, id) - - - def FreshId(self): - """FreshId(file self) -> unsigned int""" - return _ifcopenshell_wrapper.file_FreshId(self) - - - def add(self, entity): - """add(file self, entity_instance entity) -> entity_instance""" - return _ifcopenshell_wrapper.file_add(self, entity) - - - def addEntities(self, es): - """addEntities(file self, IfcEntityList::ptr es)""" - return _ifcopenshell_wrapper.file_addEntities(self, es) - - - def remove(self, entity): - """remove(file self, entity_instance entity)""" - return _ifcopenshell_wrapper.file_remove(self, entity) - - - def header(self, *args): - """ - header(file self) -> IfcSpfHeader - header(file self) -> IfcSpfHeader - """ - return _ifcopenshell_wrapper.file_header(self, *args) - - - def createTimestamp(self): - """createTimestamp(file self) -> std::string""" - return _ifcopenshell_wrapper.file_createTimestamp(self) - - - def load(self, entity_instance_name, attributes, num_attributes): - """load(file self, unsigned int entity_instance_name, Argument **& attributes, size_t num_attributes) -> size_t""" - return _ifcopenshell_wrapper.file_load(self, entity_instance_name, attributes, num_attributes) - - - def seek_to(self, data): - """seek_to(file self, IfcEntityInstanceData data)""" - return _ifcopenshell_wrapper.file_seek_to(self, data) - - - def try_read_semicolon(self): - """try_read_semicolon(file self)""" - return _ifcopenshell_wrapper.file_try_read_semicolon(self) - - - def getUnit(self, unit_type): - """getUnit(file self, std::string const & unit_type) -> std::pair< IfcUtil::IfcBaseClass *,double >""" - return _ifcopenshell_wrapper.file_getUnit(self, unit_type) - - - def parsing_complete(self, *args): - """ - parsing_complete(file self) -> bool - parsing_complete(file self) -> bool & - """ - return _ifcopenshell_wrapper.file_parsing_complete(self, *args) - - - def build_inverses(self): - """build_inverses(file self)""" - return _ifcopenshell_wrapper.file_build_inverses(self) - - - def by_guid(self, guid): - """by_guid(file self, std::string const & guid) -> entity_instance""" - return _ifcopenshell_wrapper.file_by_guid(self, guid) - - - def get_inverse(self, e): - """get_inverse(file self, entity_instance e) -> IfcEntityList::ptr""" - return _ifcopenshell_wrapper.file_get_inverse(self, e) - - - def write(self, fn): - """write(file self, std::string const & fn)""" - return _ifcopenshell_wrapper.file_write(self, fn) - - - def to_string(self): - """to_string(file self) -> std::string""" - return _ifcopenshell_wrapper.file_to_string(self) - - - def entity_names(self): - """entity_names(file self) -> std::vector< unsigned int >""" - return _ifcopenshell_wrapper.file_entity_names(self) - - - def types(self): - """types(file self) -> std::vector< std::string >""" - return _ifcopenshell_wrapper.file_types(self) - - - def types_with_super(self): - """types_with_super(file self) -> std::vector< std::string >""" - return _ifcopenshell_wrapper.file_types_with_super(self) - - - def schema_name(self): - """schema_name(file self) -> std::string""" - return _ifcopenshell_wrapper.file_schema_name(self) - - - # Hide the getters with read-only property implementations - header = property(header) - schema = property(schema_name) - -file_swigregister = _ifcopenshell_wrapper.file_swigregister -file_swigregister(file) - -class entity_instance(_object): - """Proxy of C++ IfcUtil::IfcBaseClass class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, entity_instance, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, entity_instance, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined - class is abstract") - __swig_destroy__ = _ifcopenshell_wrapper.delete_entity_instance - __del__ = lambda self: None - - def data(self, *args): - """ - data(entity_instance self) -> IfcEntityInstanceData - data(entity_instance self) -> IfcEntityInstanceData - data(entity_instance self, IfcEntityInstanceData d) - """ - return _ifcopenshell_wrapper.entity_instance_data(self, *args) - - - def declaration(self): - """declaration(entity_instance self) -> declaration""" - return _ifcopenshell_wrapper.entity_instance_declaration(self) - - - def get_attribute_category(self, name): - """get_attribute_category(entity_instance self, std::string const & name) -> int""" - return _ifcopenshell_wrapper.entity_instance_get_attribute_category(self, name) - - - def id(self): - """id(entity_instance self) -> int""" - return _ifcopenshell_wrapper.entity_instance_id(self) - - - def __len__(self): - """__len__(entity_instance self) -> int""" - return _ifcopenshell_wrapper.entity_instance___len__(self) - - - def get_attribute_names(self): - """get_attribute_names(entity_instance self) -> std::vector< std::string >""" - return _ifcopenshell_wrapper.entity_instance_get_attribute_names(self) - - - def get_inverse_attribute_names(self): - """get_inverse_attribute_names(entity_instance self) -> std::vector< std::string >""" - return _ifcopenshell_wrapper.entity_instance_get_inverse_attribute_names(self) - - - def is_a(self, *args): - """ - is_a(entity_instance self, std::string const & s) -> bool - is_a(entity_instance self) -> std::string - """ - return _ifcopenshell_wrapper.entity_instance_is_a(self, *args) - - - def get_argument(self, *args): - """ - get_argument(entity_instance self, unsigned int i) -> std::pair< IfcUtil::ArgumentType,Argument * > - get_argument(entity_instance self, std::string const & a) -> std::pair< IfcUtil::ArgumentType,Argument * > - """ - return _ifcopenshell_wrapper.entity_instance_get_argument(self, *args) - - - def __eq__(self, other): - """__eq__(entity_instance self, entity_instance other) -> bool""" - return _ifcopenshell_wrapper.entity_instance___eq__(self, other) - - - def __repr__(self): - """__repr__(entity_instance self) -> std::string""" - return _ifcopenshell_wrapper.entity_instance___repr__(self) - - - def file_pointer(self): - """file_pointer(entity_instance self) -> size_t""" - return _ifcopenshell_wrapper.entity_instance_file_pointer(self) - - - def get_argument_index(self, a): - """get_argument_index(entity_instance self, std::string const & a) -> unsigned int""" - return _ifcopenshell_wrapper.entity_instance_get_argument_index(self, a) - - - def get_inverse(self, a): - """get_inverse(entity_instance self, std::string const & a) -> IfcEntityList::ptr""" - return _ifcopenshell_wrapper.entity_instance_get_inverse(self, a) - - - def get_argument_type(self, i): - """get_argument_type(entity_instance self, unsigned int i) -> char const *const""" - return _ifcopenshell_wrapper.entity_instance_get_argument_type(self, i) - - - def get_argument_name(self, i): - """get_argument_name(entity_instance self, unsigned int i) -> std::string const &""" - return _ifcopenshell_wrapper.entity_instance_get_argument_name(self, i) - - - def setArgumentAsNull(self, i): - """setArgumentAsNull(entity_instance self, unsigned int i)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsNull(self, i) - - - def setArgumentAsInt(self, i, v): - """setArgumentAsInt(entity_instance self, unsigned int i, int v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsInt(self, i, v) - - - def setArgumentAsBool(self, i, v): - """setArgumentAsBool(entity_instance self, unsigned int i, bool v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsBool(self, i, v) - - - def setArgumentAsDouble(self, i, v): - """setArgumentAsDouble(entity_instance self, unsigned int i, double v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsDouble(self, i, v) - - - def setArgumentAsString(self, i, a): - """setArgumentAsString(entity_instance self, unsigned int i, std::string const & a)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsString(self, i, a) - - - def setArgumentAsAggregateOfInt(self, i, v): - """setArgumentAsAggregateOfInt(entity_instance self, unsigned int i, std::vector< int > const & v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfInt(self, i, v) - - - def setArgumentAsAggregateOfDouble(self, i, v): - """setArgumentAsAggregateOfDouble(entity_instance self, unsigned int i, std::vector< double > const & v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfDouble(self, i, v) - - - def setArgumentAsAggregateOfString(self, i, v): - """setArgumentAsAggregateOfString(entity_instance self, unsigned int i, std::vector< std::string > const & v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfString(self, i, v) - - - def setArgumentAsEntityInstance(self, i, v): - """setArgumentAsEntityInstance(entity_instance self, unsigned int i, entity_instance v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsEntityInstance(self, i, v) - - - def setArgumentAsAggregateOfEntityInstance(self, i, v): - """setArgumentAsAggregateOfEntityInstance(entity_instance self, unsigned int i, IfcEntityList::ptr v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfEntityInstance(self, i, v) - - - def setArgumentAsAggregateOfAggregateOfInt(self, i, v): - """setArgumentAsAggregateOfAggregateOfInt(entity_instance self, unsigned int i, std::vector< std::vector< int > > const & v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfAggregateOfInt(self, i, v) - - - def setArgumentAsAggregateOfAggregateOfDouble(self, i, v): - """setArgumentAsAggregateOfAggregateOfDouble(entity_instance self, unsigned int i, std::vector< std::vector< double > > const & v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfAggregateOfDouble(self, i, v) - - - def setArgumentAsAggregateOfAggregateOfEntityInstance(self, i, v): - """setArgumentAsAggregateOfAggregateOfEntityInstance(entity_instance self, unsigned int i, IfcEntityListList::ptr v)""" - return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfAggregateOfEntityInstance(self, i, v) - -entity_instance_swigregister = _ifcopenshell_wrapper.entity_instance_swigregister -entity_instance_swigregister(entity_instance) - -class IfcBaseEntity(entity_instance): - """Proxy of C++ IfcUtil::IfcBaseEntity class.""" - - __swig_setmethods__ = {} - for _s in [entity_instance]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, IfcBaseEntity, name, value) - __swig_getmethods__ = {} - for _s in [entity_instance]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, IfcBaseEntity, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined - class is abstract") - __repr__ = _swig_repr - - def declaration(self): - """declaration(IfcBaseEntity self) -> entity""" - return _ifcopenshell_wrapper.IfcBaseEntity_declaration(self) - - - def get(self, name): - """get(IfcBaseEntity self, std::string const & name) -> Argument *""" - return _ifcopenshell_wrapper.IfcBaseEntity_get(self, name) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_IfcBaseEntity - __del__ = lambda self: None -IfcBaseEntity_swigregister = _ifcopenshell_wrapper.IfcBaseEntity_swigregister -IfcBaseEntity_swigregister(IfcBaseEntity) - -class IfcBaseType(entity_instance): - """Proxy of C++ IfcUtil::IfcBaseType class.""" - - __swig_setmethods__ = {} - for _s in [entity_instance]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, IfcBaseType, name, value) - __swig_getmethods__ = {} - for _s in [entity_instance]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, IfcBaseType, name) - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined - class is abstract") - __repr__ = _swig_repr - - def declaration(self): - """declaration(IfcBaseType self) -> type_declaration""" - return _ifcopenshell_wrapper.IfcBaseType_declaration(self) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_IfcBaseType - __del__ = lambda self: None -IfcBaseType_swigregister = _ifcopenshell_wrapper.IfcBaseType_swigregister -IfcBaseType_swigregister(IfcBaseType) - -class parameter_type(_object): - """Proxy of C++ IfcParse::parameter_type class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, parameter_type, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, parameter_type, name) - __repr__ = _swig_repr - - def as_named_type(self): - """as_named_type(parameter_type self) -> named_type""" - return _ifcopenshell_wrapper.parameter_type_as_named_type(self) - - - def as_simple_type(self): - """as_simple_type(parameter_type self) -> simple_type""" - return _ifcopenshell_wrapper.parameter_type_as_simple_type(self) - - - def as_aggregation_type(self): - """as_aggregation_type(parameter_type self) -> aggregation_type""" - return _ifcopenshell_wrapper.parameter_type_as_aggregation_type(self) - - - def _is(self, *args): - """ - _is(parameter_type self, std::string const & arg2) -> bool - _is(parameter_type self, declaration arg2) -> bool - """ - return _ifcopenshell_wrapper.parameter_type__is(self, *args) - - - def __init__(self): - """__init__(IfcParse::parameter_type self) -> parameter_type""" - this = _ifcopenshell_wrapper.new_parameter_type() - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_parameter_type - __del__ = lambda self: None -parameter_type_swigregister = _ifcopenshell_wrapper.parameter_type_swigregister -parameter_type_swigregister(parameter_type) - -class named_type(parameter_type): - """Proxy of C++ IfcParse::named_type class.""" - - __swig_setmethods__ = {} - for _s in [parameter_type]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, named_type, name, value) - __swig_getmethods__ = {} - for _s in [parameter_type]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, named_type, name) - __repr__ = _swig_repr - - def __init__(self, declared_type): - """__init__(IfcParse::named_type self, declaration declared_type) -> named_type""" - this = _ifcopenshell_wrapper.new_named_type(declared_type) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def declared_type(self): - """declared_type(named_type self) -> declaration""" - return _ifcopenshell_wrapper.named_type_declared_type(self) - - - def as_named_type(self): - """as_named_type(named_type self) -> named_type""" - return _ifcopenshell_wrapper.named_type_as_named_type(self) - - - def _is(self, *args): - """ - _is(named_type self, std::string const & name) -> bool - _is(named_type self, declaration decl) -> bool - """ - return _ifcopenshell_wrapper.named_type__is(self, *args) - - - def __repr__(self): - return repr(self.declared_type()) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_named_type - __del__ = lambda self: None -named_type_swigregister = _ifcopenshell_wrapper.named_type_swigregister -named_type_swigregister(named_type) - -class simple_type(parameter_type): - """Proxy of C++ IfcParse::simple_type class.""" - - __swig_setmethods__ = {} - for _s in [parameter_type]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, simple_type, name, value) - __swig_getmethods__ = {} - for _s in [parameter_type]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, simple_type, name) - __repr__ = _swig_repr - binary_type = _ifcopenshell_wrapper.simple_type_binary_type - boolean_type = _ifcopenshell_wrapper.simple_type_boolean_type - integer_type = _ifcopenshell_wrapper.simple_type_integer_type - logical_type = _ifcopenshell_wrapper.simple_type_logical_type - number_type = _ifcopenshell_wrapper.simple_type_number_type - real_type = _ifcopenshell_wrapper.simple_type_real_type - string_type = _ifcopenshell_wrapper.simple_type_string_type - datatype_COUNT = _ifcopenshell_wrapper.simple_type_datatype_COUNT - - def __init__(self, declared_type): - """__init__(IfcParse::simple_type self, IfcParse::simple_type::data_type declared_type) -> simple_type""" - this = _ifcopenshell_wrapper.new_simple_type(declared_type) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def declared_type(self): - """declared_type(simple_type self) -> IfcParse::simple_type::data_type""" - return _ifcopenshell_wrapper.simple_type_declared_type(self) - - - def as_simple_type(self): - """as_simple_type(simple_type self) -> simple_type""" - return _ifcopenshell_wrapper.simple_type_as_simple_type(self) - - - def __repr__(self): - return "<%s>" % self.declared_type() - - __swig_destroy__ = _ifcopenshell_wrapper.delete_simple_type - __del__ = lambda self: None -simple_type_swigregister = _ifcopenshell_wrapper.simple_type_swigregister -simple_type_swigregister(simple_type) - -class aggregation_type(parameter_type): - """Proxy of C++ IfcParse::aggregation_type class.""" - - __swig_setmethods__ = {} - for _s in [parameter_type]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, aggregation_type, name, value) - __swig_getmethods__ = {} - for _s in [parameter_type]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, aggregation_type, name) - __repr__ = _swig_repr - array_type = _ifcopenshell_wrapper.aggregation_type_array_type - bag_type = _ifcopenshell_wrapper.aggregation_type_bag_type - list_type = _ifcopenshell_wrapper.aggregation_type_list_type - set_type = _ifcopenshell_wrapper.aggregation_type_set_type - - def __init__(self, type_of_aggregation, bound1, bound2, type_of_element): - """__init__(IfcParse::aggregation_type self, IfcParse::aggregation_type::aggregate_type type_of_aggregation, int bound1, int bound2, parameter_type type_of_element) -> aggregation_type""" - this = _ifcopenshell_wrapper.new_aggregation_type(type_of_aggregation, bound1, bound2, type_of_element) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def type_of_aggregation(self): - """type_of_aggregation(aggregation_type self) -> IfcParse::aggregation_type::aggregate_type""" - return _ifcopenshell_wrapper.aggregation_type_type_of_aggregation(self) - - - def bound1(self): - """bound1(aggregation_type self) -> int""" - return _ifcopenshell_wrapper.aggregation_type_bound1(self) - - - def bound2(self): - """bound2(aggregation_type self) -> int""" - return _ifcopenshell_wrapper.aggregation_type_bound2(self) - - - def type_of_element(self): - """type_of_element(aggregation_type self) -> parameter_type""" - return _ifcopenshell_wrapper.aggregation_type_type_of_element(self) - - - def as_aggregation_type(self): - """as_aggregation_type(aggregation_type self) -> aggregation_type""" - return _ifcopenshell_wrapper.aggregation_type_as_aggregation_type(self) - - - def type_of_aggregation_string(self): - """type_of_aggregation_string(aggregation_type self) -> std::string""" - return _ifcopenshell_wrapper.aggregation_type_type_of_aggregation_string(self) - - - def __repr__(self): - format_bound = lambda i: "?" if i == -1 else str(i) - return "<%s [%s:%s] of %r>" % ( - self.type_of_aggregation_string(), - format_bound(self.bound1()), - format_bound(self.bound2()), - self.type_of_element() - ) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_aggregation_type - __del__ = lambda self: None -aggregation_type_swigregister = _ifcopenshell_wrapper.aggregation_type_swigregister -aggregation_type_swigregister(aggregation_type) - -class declaration(_object): - """Proxy of C++ IfcParse::declaration class.""" - - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, declaration, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, declaration, name) - __repr__ = _swig_repr - - def __init__(self, name, index_in_schema): - """__init__(IfcParse::declaration self, std::string const & name, int index_in_schema) -> declaration""" - this = _ifcopenshell_wrapper.new_declaration(name, index_in_schema) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _ifcopenshell_wrapper.delete_declaration - __del__ = lambda self: None - - def name(self): - """name(declaration self) -> std::string const &""" - return _ifcopenshell_wrapper.declaration_name(self) - - - def name_lc(self): - """name_lc(declaration self) -> std::string const &""" - return _ifcopenshell_wrapper.declaration_name_lc(self) - - - def as_type_declaration(self): - """as_type_declaration(declaration self) -> type_declaration""" - return _ifcopenshell_wrapper.declaration_as_type_declaration(self) - - - def as_select_type(self): - """as_select_type(declaration self) -> select_type""" - return _ifcopenshell_wrapper.declaration_as_select_type(self) - - - def as_enumeration_type(self): - """as_enumeration_type(declaration self) -> enumeration_type""" - return _ifcopenshell_wrapper.declaration_as_enumeration_type(self) - - - def as_entity(self): - """as_entity(declaration self) -> entity""" - return _ifcopenshell_wrapper.declaration_as_entity(self) - - - def _is(self, *args): - """ - _is(declaration self, std::string const & name) -> bool - _is(declaration self, declaration decl) -> bool - """ - return _ifcopenshell_wrapper.declaration__is(self, *args) - - - def index_in_schema(self): - """index_in_schema(declaration self) -> int""" - return _ifcopenshell_wrapper.declaration_index_in_schema(self) - - - def type(self): - """type(declaration self) -> int""" - return _ifcopenshell_wrapper.declaration_type(self) - - - def schema(self): - """schema(declaration self) -> schema_definition""" - return _ifcopenshell_wrapper.declaration_schema(self) - -declaration_swigregister = _ifcopenshell_wrapper.declaration_swigregister -declaration_swigregister(declaration) - -class type_declaration(declaration): - """Proxy of C++ IfcParse::type_declaration class.""" - - __swig_setmethods__ = {} - for _s in [declaration]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, type_declaration, name, value) - __swig_getmethods__ = {} - for _s in [declaration]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, type_declaration, name) - __repr__ = _swig_repr - - def __init__(self, name, index_in_schema, declared_type): - """__init__(IfcParse::type_declaration self, std::string const & name, int index_in_schema, parameter_type declared_type) -> type_declaration""" - this = _ifcopenshell_wrapper.new_type_declaration(name, index_in_schema, declared_type) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def declared_type(self): - """declared_type(type_declaration self) -> parameter_type""" - return _ifcopenshell_wrapper.type_declaration_declared_type(self) - - - def as_type_declaration(self): - """as_type_declaration(type_declaration self) -> type_declaration""" - return _ifcopenshell_wrapper.type_declaration_as_type_declaration(self) - - - def __repr__(self): - return "" % (self.name(), self.declared_type()) - - __swig_destroy__ = _ifcopenshell_wrapper.delete_type_declaration - __del__ = lambda self: None -type_declaration_swigregister = _ifcopenshell_wrapper.type_declaration_swigregister -type_declaration_swigregister(type_declaration) - -class select_type(declaration): - """Proxy of C++ IfcParse::select_type class.""" - - __swig_setmethods__ = {} - for _s in [declaration]: - __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, select_type, name, value) - __swig_getmethods__ = {} - for _s in [declaration]: - __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, select_type, name) - __repr__ = _swig_repr - - def __init__(self, name, index_in_schema, select_list): - """__init__(IfcParse::select_type self, std::string const & name, int index_in_schema, std::vector< IfcParse::declaration const * > const & select_list) -> select_type""" - this = _ifcopenshell_wrapper.new_select_type(name, index_in_schema, select_list) - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - - def select_list(self): - """select_list(select_type self) -> std::vector< IfcParse::declaration const * > const &""" - return _ifcopenshell_wrapper.select_type_select_list(self) - - - def as_select_type(self): - """as_select_type(select_type self) -> select_type""" - return _ifcopenshell_wrapper.select_type_as_select_type(self) - - - def __repr__(self): - return "