diff --git a/src/ifcblenderexport/README.md b/src/ifcblenderexport/README.md new file mode 100644 index 0000000000..6e47d406b9 --- /dev/null +++ b/src/ifcblenderexport/README.md @@ -0,0 +1,65 @@ +# Blender BIM IFC + +_Under heavy development!_ + +Let's use Blender to create BIM models, because why not? + +## Features + + - IFC4 is a first-class citizen. IFC4 has been an ISO standard since 2013, with + the latest published in 2018. In contrast, other programs are dragging their + feet with IFC2X3, published back in 2005. + - Use Blender to do digital modeling! Blender is an amazing open-source + software that supports the full 3D content creation pipeline that the CG + industry uses. Don't let your designs fall short just because your modeling + tool isn't good enough! + - Create complex spatial structures with multiple sites, buildings, facilities, + bridges, and building parts. In contrast, some BIM tools (uh, Revit?) don't + even allow you to specify buildings. + - Classify any geometry as any IFC type. Just because it is a wall doesn't + mean you should be limited to modeling it in a certain way. Easily change + from one type to another without damaging your geometry. + - Support element compositions and decompositions with full control over the + classifications of their parts. Most BIM programs don't give this + flexibility. + - Allow BIM objects to instance a shared geometric representations. This allows + you to place the same shape in multiple objects without drastically + increasing your filesize. + - Provide a custom value to any simple IFC attribute of an IFC product. + - Create product types that regular IFC products can inherit attributes from. + - Define your own property sets with control over exactly how the data in the + property sets are stored. + - Applies array modifiers to create instances. + +## Demo + +It's only just started, so everything can and will change. But if you want to +check it out: + + 1. Install [Blender](https://www.blender.org/). + 2. Install [IfcOpenShell](https://github.com/IfcOpenShell/IfcOpenShell), + ensuring that is is compiled to the same Python version and architecture of + your Blender installation. + 3. Launch Blender. Open `untitled.blend`. You should see the `export.py` + script already loaded. Change the hardcoded paths from + `/home/dion/Projects/blender-bim-ifc/` to wherever you've cloned this + repository. + 4. Ensure `ifcopenshell` is in your Blender Python's path, so that it can + `import ifcopenshell`. You can run + `sys.path.append('/path/to/your/ifcopenshell/module')` in the Blender Python + console to do this. + 5. Select all objects that you want to export. Press `Run Script`, and you will + get the results in `output.ifc`. + +A naming convention of `IfcClass/IfcName` is enforced. If you name your object +`IfcWall/Foo`, it will turn into an `IfcWall` with the name attribute set to +`Foo`. You can override object attributes using Blender's `Custom Properties`. +Your objects must live in a top level `Collection` defined as a context class, +usually something like `IfcProject/Foo`. You can then nest spatial structures +underneath to create a hierarchy. + +![Blender screenshot](blender-screenshot.png) + +... this Blender files creates this IFC file ... + +![IfcOpenShell screenshot](ifcopenshell-screenshot.png) diff --git a/src/ifcblenderexport/blender-screenshot.png b/src/ifcblenderexport/blender-screenshot.png new file mode 100644 index 0000000000..167a1614e0 Binary files /dev/null and b/src/ifcblenderexport/blender-screenshot.png differ diff --git a/src/ifcblenderexport/data/Pset_FurnitureTypeCommon/monkey.csv b/src/ifcblenderexport/data/Pset_FurnitureTypeCommon/monkey.csv new file mode 100644 index 0000000000..1ccb116cde --- /dev/null +++ b/src/ifcblenderexport/data/Pset_FurnitureTypeCommon/monkey.csv @@ -0,0 +1,9 @@ +PropertyType,ValueType,Name,Description,NominalValue,Unit +IfcPropertySingleValue,IfcIdentifier,Reference,,Some reference, +IfcPropertySingleValue,IfcLabel,Status,,EXISTING, +IfcPropertySingleValue,IfcLabel,Style,,Some style, +IfcPropertySingleValue,IfcPositiveLengthMeasure,NominalHeight,,1.2, +IfcPropertySingleValue,IfcPositiveLengthMeasure,NominalLength,,1.3, +IfcPropertySingleValue,IfcPositiveLengthMeasure,NominalDepth,,1.5, +IfcPropertySingleValue,IfcLabel,MainColor,,Blue, +IfcPropertySingleValue,IfcBoolean,IsBuiltIn,,Uh-huh, diff --git a/src/ifcblenderexport/export.py b/src/ifcblenderexport/export.py new file mode 100644 index 0000000000..975bf4b3ae --- /dev/null +++ b/src/ifcblenderexport/export.py @@ -0,0 +1,480 @@ +import ifcopenshell +import bpy +import csv +import json +import time +from pathlib import Path +from mathutils import Vector + +class ArrayModifier: + count: int + offset: Vector + +class IfcParser(): + def __init__(self): + self.data_dir = '/home/dion/Projects/blender-bim-ifc/data/' + self.schema_dir = '/home/dion/Projects/blender-bim-ifc/schema/' + + with open(self.schema_dir + 'ifc_types_IFC4.json') as f: + self.type_map = json.load(f) + + self.already_parsed_collections = [] + + self.selected_products = [] + self.selected_types = [] + + self.psets = [] + self.aggregates = {} + self.spatial_structure_elements = [] + self.spatial_structure_elements_tree = [] + self.rel_contained_in_spatial_structure = {} + self.rel_defines_by_type = {} + self.rel_aggregates = {} + self.representations = [] + self.type_products = [] + self.context = {} + self.products = [] + + def parse(self): + self.sort_into_products_and_types(bpy.context.selected_objects) + self.psets = self.get_psets() + self.spatial_structure_elements = self.get_spatial_structure_elements() + self.representations = self.get_representations() + self.type_products = self.get_type_products() + + self.collection_name_filter = [] + self.get_products() + + self.context = self.get_context() + self.spatial_structure_elements_tree = self.get_spatial_structure_elements_tree( + self.context['raw'].children, self.collection_name_filter) + + def get_object_attributes(self, object): + attributes = { 'Name': self.get_ifc_name(object.name) } + attributes.update({ key[3:]: object[key] for key in object.keys() if key[0:3] == 'Ifc'}) + return attributes + + def get_products(self): + index = 0 + for object in self.selected_products: + self.products.append(self.get_product(object, index)) + index += 1 + + instance_objects = [(object, object.location)] + for instance in self.get_instances(object): + created_instances = [] + for n in range(instance.count-1): + for o in instance_objects: + location = o[1] + ((n+1) * instance.offset) + self.products.append(self.get_product(o[0], index, + {'location': location})) + index += 1 + created_instances.append((o[0], location)) + instance_objects.extend(created_instances) + + def get_product(self, object, index, attribute_override={}): + product = { + 'ifc': None, + 'raw': object, + 'location': object.location, + 'up_axis': object.matrix_world.to_quaternion() @ Vector((0, 0, 1)), + 'forward_axis': object.matrix_world.to_quaternion() @ Vector((1, 0, 0)), + 'class': self.get_ifc_class(object.name), + 'relating_structure': None, + 'representation': self.get_representation_reference_from_object(object), + 'attributes': self.get_object_attributes(object) + } + product.update(attribute_override) + + for collection in product['raw'].users_collection: + self.parse_product_collection(product, index, collection) + + if object.instance_type == 'COLLECTION' \ + and self.is_a_rel_aggregates(self.get_ifc_class(object.instance_collection.name)): + self.rel_aggregates[index] = object.instance_collection.name + + if object.parent \ + and self.is_a_type(self.get_ifc_class(object.parent.name)): + reference = self.get_type_product_reference(object.parent.name) + self.rel_defines_by_type.setdefault(reference, []).append(index) + return product + + def parse_product_collection(self, product, index, collection): + class_name = self.get_ifc_class(collection.name) + if self.is_a_spatial_structure_element(class_name): + reference = self.get_spatial_structure_element_reference(collection.name) + self.rel_contained_in_spatial_structure.setdefault(reference, []).append(index) + product['relating_structure'] = reference + self.collection_name_filter.append(collection.name) + elif self.is_a_rel_aggregates(class_name): + self.aggregates.setdefault(collection.name, []).append(index) + else: + self.parse_product_collection(product, index, self.get_parent_collection(collection)) + + def get_parent_collection(self, child_collection): + for parent_collection in bpy.data.collections: + for child in parent_collection.children: + if child.name == child_collection.name: + return parent_collection + + def get_instances(self, object): + instances = [] + for m in object.modifiers: + if m.type == 'ARRAY': + array = ArrayModifier() + world_rotation = object.matrix_world.decompose()[1] + array.offset = world_rotation @ Vector( + (m.constant_offset_displace[0], m.constant_offset_displace[1], m.constant_offset_displace[2])) + if m.fit_type == 'FIXED_COUNT': + array.count = m.count + elif m.fit_type == 'FIT_LENGTH': + array.count = int(m.fit_length / array.offset.length) + instances.append(array) + return instances + + def sort_into_products_and_types(self, objects_to_sort): + for object in objects_to_sort: + if self.is_object_in_types_collection(object): + self.selected_types.append(object) + else: + self.selected_products.append(object) + if object.instance_type == 'COLLECTION' \ + and object.instance_collection.name not in self.already_parsed_collections: + self.already_parsed_collections.append(object.instance_collection.name) + self.sort_into_products_and_types(object.instance_collection.objects) + + def get_psets(self): + psets = [] + for filename in Path(self.data_dir).glob('**/*.csv'): + with open(filename, 'r') as f: + psets.append({ + 'ifc': None, + 'raw': list(csv.reader(f)), + 'attributes': { + 'Name': filename.parts[-2], + 'Description': filename.stem } + }) + return psets + + def is_object_in_types_collection(self, object): + for collection in object.users_collection: + if self.is_a_types_collection(self.get_ifc_class(collection.name)): + return True + return False + + def get_context(self): + for collection in bpy.data.collections: + if self.is_a_context(self.get_ifc_class(collection.name)): + return { + 'ifc': None, + 'raw': collection, + 'class': self.get_ifc_class(collection.name), + 'attributes': { 'Name': self.get_ifc_name(collection.name) } + } + + def get_spatial_structure_elements(self): + elements = [] + for collection in bpy.data.collections: + if self.is_a_spatial_structure_element(self.get_ifc_class(collection.name)): + elements.append({ + 'ifc': None, + 'raw': collection, + 'class': self.get_ifc_class(collection.name), + 'attributes': { 'Name': self.get_ifc_name(collection.name)} + }) + return elements + + def get_representations(self): + representations = {} + for object in self.selected_products + self.selected_types: + if not object.data: + continue + representations[object.data.name] = object.data + results = [] + for name, value in representations.items(): + results.append({ + 'ifc': None, + 'raw': value, + 'attributes': { 'Name': name } + }) + return results + + def get_type_products(self): + if not self.selected_types: + return [] + return [{ + 'ifc': None, + 'raw': object, + 'location': object.location, + 'up_axis': object.matrix_world.to_quaternion() @ Vector((0, 0, 1)), + 'forward_axis': object.matrix_world.to_quaternion() @ Vector((1, 0, 0)), + 'class': self.get_ifc_class(object.name), + 'representation': self.get_representation_reference_from_object(object), + 'attributes': self.get_object_attributes(object) + } for object in self.selected_types ] + + def get_representation_reference_from_object(self, object): + if not object.data: + return None + return self.get_representation_reference(object.data.name) + + def get_representation_reference(self, name): + return [ r['attributes']['Name'] for r in self.representations ].index(name) + + def get_spatial_structure_elements_tree(self, collections, name_filter): + collection_tree = [] + + for collection in collections: + if not self.is_a_spatial_structure_element(self.get_ifc_class(collection.name)): + continue + children = self.get_spatial_structure_elements_tree( + collection.children, name_filter) + if collection.name in name_filter \ + or children: + collection_tree.append({ + 'reference': self.get_spatial_structure_element_reference(collection.name), + 'children': children + }) + + return collection_tree + + def get_spatial_structure_element_reference(self, name): + return [ e['attributes']['Name'] for e in self.spatial_structure_elements ].index(self.get_ifc_name(name)) + + def get_type_product_reference(self, name): + return [ p['attributes']['Name'] for p in self.type_products ].index(self.get_ifc_name(name)) + + def get_ifc_class(self, name): + return name.split('/')[0] + + def get_ifc_name(self, name): + try: + return name.split('/')[1] + except IndexError: + print('ERROR: Name "{}" does not follow the format of "IfcClass/Name"'.format(name)) + + def is_a_spatial_structure_element(self, class_name): + # We assume that any collection we can't identify is a spatial structure + return class_name[0:3] == 'Ifc' \ + and not self.is_a_context(class_name) \ + and not self.is_a_types_collection(class_name) \ + and not self.is_a_rel_aggregates(class_name) + + def is_a_rel_aggregates(self, class_name): + return class_name == 'IfcRelAggregates' + + def is_a_context(self, class_name): + return class_name in ['IfcProject', 'IfcProjectLibrary'] + + def is_a_type(self, class_name): + return class_name[0:3] == 'Ifc' and class_name[-4:] == 'Type' + + def is_a_types_collection(self, class_name): + return class_name == 'IfcTypeProduct' + +class IfcExporter(): + def __init__(self, ifc_parser): + self.template_file = '/home/dion/Projects/blender-bim-ifc/template.ifc' + self.output_file = '/home/dion/Projects/blender-bim-ifc/output.ifc' + self.ifc_parser = ifc_parser + + def export(self): + self.file = ifcopenshell.open(self.template_file) + self.set_common_definitions() + self.ifc_parser.parse() + self.create_psets() + self.create_rep_context() + self.create_context() + self.create_representations() + self.create_type_products() + self.create_spatial_structure_elements(self.ifc_parser.spatial_structure_elements_tree) + self.create_products() + self.relate_objects_to_objects() + self.relate_elements_to_spatial_structures() + self.relate_objects_to_types() + self.file.write(self.output_file) + + def set_common_definitions(self): + self.origin = self.file.by_type("IfcAxis2Placement3D")[0] + # Owner history doesn't actually work like this, but for now, it does :) + self.owner_history = self.file.by_type("ifcownerhistory")[0] + + def create_psets(self): + for pset in self.ifc_parser.psets: + properties = self.create_pset_properties(pset) + if not properties: + continue + pset['attributes'].update({ + 'GlobalId': ifcopenshell.guid.new(), + 'OwnerHistory': self.owner_history, + 'HasProperties': properties + }) + pset['ifc'] = self.file.create_entity('IfcPropertySet', **pset['attributes']) + + def create_pset_properties(self, pset): + properties = [] + headers = pset['raw'].pop(0)[2:] + for data in pset['raw']: + type = data[1] + value = self.cast_to_base_type(type, data[4]) + nominal_value = self.file.create_entity(type, value) + attributes = { header: data[i+2] if data[i+2] else None for i, header in enumerate(headers)} + attributes['NominalValue'] = nominal_value + properties.append(self.file.create_entity(data[0], **attributes)) + return properties + + def cast_to_base_type(self, type, value): + if self.ifc_parser.type_map[type] == 'float': + return float(value) + elif self.ifc_parser.type_map[type] == 'integer': + return int(value) + elif self.ifc_parser.type_map[type] == 'bool': + return True if value.lower() in ['1', 't', 'true', 'yes', 'y', 'uh-huh'] else False + return str(value) + + def create_rep_context(self): + self.ifc_rep_context = self.file.createIfcGeometricRepresentationContext( + None, "Model", + 3, 1.0E-05, + self.origin, + self.file.createIfcDirection((0., 1., 0.))) + + self.ifc_rep_subcontext = self.file.createIfcGeometricRepresentationSubContext( + "Body", "Model", + None, None, None, None, + self.ifc_rep_context, None, "MODEL_VIEW", None) + + def create_context(self): + context = self.ifc_parser.context + attributes = context['attributes'] + attributes.update({ + 'GlobalId': ifcopenshell.guid.new(), + 'RepresentationContexts': [self.ifc_rep_context], + 'UnitsInContext': self.file.by_type("IfcUnitAssignment")[0] + }) + self.ifc_parser.context['ifc'] = self.file.create_entity(self.ifc_parser.context['class'], **attributes) + + def create_type_products(self): + for product in self.ifc_parser.type_products: + representation = self.ifc_parser.representations[product['representation']]['ifc'] + placement = self.create_ifc_axis_2_placement_3d(product['location'], product['up_axis'], product['forward_axis']) + representation_map = self.file.createIfcRepresentationMap(placement, representation) + product['attributes'].update({ + 'GlobalId': ifcopenshell.guid.new(), + 'RepresentationMaps': [representation_map] + }) + try: + product['ifc'] = self.file.create_entity(product['class'], **product['attributes']) + except RuntimeError as e: + print('The type product "{}/{}" could not be created: {}'.format(product['class'], product['attributes']['Name'], e.args)) + + def relate_objects_to_objects(self): + for relating_object, related_objects in self.ifc_parser.rel_aggregates.items(): + relating_object = self.ifc_parser.products[relating_object] + related_objects = [ self.ifc_parser.products[o]['ifc'] for o in self.ifc_parser.aggregates[related_objects] ] + self.file.createIfcRelAggregates( + ifcopenshell.guid.new(), self.owner_history, relating_object['attributes']['Name'], None, + relating_object['ifc'], related_objects) + + def create_spatial_structure_elements(self, element_tree, relating_object=None): + if relating_object == None: + relating_object = self.ifc_parser.context['ifc'] + placement_rel_to = None + else: + placement_rel_to = relating_object.ObjectPlacement + related_objects = [] + for node in element_tree: + element = self.ifc_parser.spatial_structure_elements[node['reference']] + element['attributes'].update({ + 'GlobalId': ifcopenshell.guid.new(), # TODO: unhardcode + 'OwnerHistory': self.owner_history, # TODO: unhardcode + 'ObjectPlacement': self.file.createIfcLocalPlacement(placement_rel_to, self.origin) + }) + element['ifc'] = self.file.create_entity(element['class'], **element['attributes']) + related_objects.append(element['ifc']) + self.create_spatial_structure_elements(node['children'], element['ifc']) + if related_objects: + self.file.createIfcRelAggregates( + ifcopenshell.guid.new(), + self.owner_history, None, None, relating_object, related_objects) + + def create_representations(self): + for representation in self.ifc_parser.representations: + representation['ifc'] = self.create_representation(representation['raw']) + + def create_products(self): + for product in self.ifc_parser.products: + self.create_product(product) + + def create_product(self, product): + if product['relating_structure']: + placement_rel_to = self.ifc_parser.spatial_structure_elements[product['relating_structure']]['ifc'].ObjectPlacement + else: + placement_rel_to = None + + placement = self.file.createIfcLocalPlacement(placement_rel_to, + self.create_ifc_axis_2_placement_3d(product['location'], + product['up_axis'], + product['forward_axis'])) + + try: + shape = self.file.createIfcProductDefinitionShape(None, None, + [self.ifc_parser.representations[product['representation']]['ifc']]) + except: + shape = None + + product['attributes'].update({ + 'GlobalId': ifcopenshell.guid.new(), # TODO: unhardcode + 'OwnerHistory': self.owner_history, # TODO: unhardcode + 'ObjectPlacement': placement, + 'Representation': shape + }) + + try: + product['ifc'] = self.file.create_entity(product['class'], **product['attributes']) + except RuntimeError as e: + print('The product "{}/{}" could not be created: {}'.format(product['class'], product['attributes']['Name'], e.args)) + + def create_ifc_axis_2_placement_3d(self, point, up, forward): + return self.file.createIfcAxis2Placement3D( + self.file.createIfcCartesianPoint((point.x, point.y, point.z)), + self.file.createIfcDirection((up.x, up.y, up.z)), + self.file.createIfcDirection((forward.x, forward.y, forward.z))) + + def create_representation(self, mesh): + ifc_vertices = [] + ifc_faces = [] + + for vertice in mesh.vertices: + ifc_vertices.append( + self.file.createIfcCartesianPoint((vertice.co.x, vertice.co.y, vertice.co.z))) + for polygon in mesh.polygons: + ifc_faces.append(self.file.createIfcFace([ + self.file.createIfcFaceOuterBound( + self.file.createIfcPolyLoop([ifc_vertices[vertice] for vertice in polygon.vertices]), + True)])) + + return self.file.createIfcShapeRepresentation( + self.ifc_rep_subcontext, 'Body', 'Brep', + [self.file.createIfcFacetedBrep(self.file.createIfcClosedShell(ifc_faces))]) + + def relate_elements_to_spatial_structures(self): + for relating_structure, related_elements in self.ifc_parser.rel_contained_in_spatial_structure.items(): + self.file.createIfcRelContainedInSpatialStructure( + ifcopenshell.guid.new(), self.owner_history, None, None, + [ self.ifc_parser.products[e]['ifc'] for e in related_elements], + self.ifc_parser.spatial_structure_elements[relating_structure]['ifc']) + + def relate_objects_to_types(self): + for relating_type, related_objects in self.ifc_parser.rel_defines_by_type.items(): + self.file.createIfcRelDefinesByType( + ifcopenshell.guid.new(), self.owner_history, None, None, + [ self.ifc_parser.products[o]['ifc'] for o in related_objects], + self.ifc_parser.type_products[relating_type]['ifc']) + +print('# Starting export') +start = time.time() +ifc_parser = IfcParser() +ifc_exporter = IfcExporter(ifc_parser) +ifc_exporter.export() +print('# Export finished in {:.2f} seconds'.format(time.time() - start)) diff --git a/src/ifcblenderexport/ifcopenshell-screenshot.png b/src/ifcblenderexport/ifcopenshell-screenshot.png new file mode 100644 index 0000000000..17b74d1b57 Binary files /dev/null and b/src/ifcblenderexport/ifcopenshell-screenshot.png differ diff --git a/src/ifcblenderexport/output.ifc b/src/ifcblenderexport/output.ifc new file mode 100644 index 0000000000..2ece3184d0 --- /dev/null +++ b/src/ifcblenderexport/output.ifc @@ -0,0 +1,2053 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('$filename','2019-05-12T12:33:45',('$owner','$email'),('$company'),'IfcOpenShell','IfcOpenShell',''); +FILE_SCHEMA(('IFC2X3')); +ENDSEC; +DATA; +#1=IFCPERSON($,$,'$owner',$,$,$,$,$); +#2=IFCORGANIZATION($,'$company',$,$,$); +#3=IFCPERSONANDORGANIZATION(#1,#2,$); +#4=IFCAPPLICATION(#2,'$version','FreeCAD','118df2cf_ed21_438e_a41'); +#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,$now); +#6=IFCDIRECTION((1.,0.,0.)); +#7=IFCDIRECTION((0.,0.,1.)); +#8=IFCCARTESIANPOINT((0.,0.,0.)); +#9=IFCAXIS2PLACEMENT3D(#8,#7,#6); +#10=IFCDIRECTION((0.,1.,0.)); +#12=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#13=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#14=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#15=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#16=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#17=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295),#16); +#18=IFCCONVERSIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'DEGREE',#17); +#19=IFCUNITASSIGNMENT((#13,#14,#15,#18)); +#20=IFCDIRECTION((0.,1.,0.)); +#21=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#9,#20); +#22=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#21,$,.MODEL_VIEW.,$); +#23=IFCPROJECT('2dOdNgQ_D0Ogns4_rGOik$',#5,'Name',$,$,$,$,(#21),#19); +#24=IFCLOCALPLACEMENT($,#9); +#25=IFCBUILDING('1OVAxRnKLDefm1osVZTyj9',#5,'My building',$,$,#24,$,$,.ELEMENT.,$,$,$); +#26=IFCLOCALPLACEMENT(#24,#9); +#27=IFCBUILDINGSTOREY('1Oa4U3ZhP4BRUc5VKCZdex',#5,'Ground floor',$,$,#26,$,$,.ELEMENT.,$); +#28=IFCRELAGGREGATES('3jJrISFX90J8nb31_ujwCP',#5,$,$,#25,(#27)); +#29=IFCRELAGGREGATES('3EJBmZ_6111xKn8Hn2IDBS',#5,$,$,#23,(#25)); +#30=IFCCARTESIANPOINT((0.4375,-0.765625,0.1640625)); +#31=IFCCARTESIANPOINT((-0.4375,-0.765625,0.1640625)); +#32=IFCCARTESIANPOINT((0.5,-0.6875,0.09375)); +#33=IFCCARTESIANPOINT((-0.5,-0.6875,0.09375)); +#34=IFCCARTESIANPOINT((0.546875,-0.578125,0.0546875)); +#35=IFCCARTESIANPOINT((-0.546875,-0.578125,0.0546875)); +#36=IFCCARTESIANPOINT((0.3515625,-0.6171875,-0.0234375)); +#37=IFCCARTESIANPOINT((-0.3515625,-0.6171875,-0.0234375)); +#38=IFCCARTESIANPOINT((0.3515625,-0.71875,0.03125)); +#39=IFCCARTESIANPOINT((-0.3515625,-0.71875,0.03125)); +#40=IFCCARTESIANPOINT((0.3515625,-0.78125,0.1328125)); +#41=IFCCARTESIANPOINT((-0.3515625,-0.78125,0.1328125)); +#42=IFCCARTESIANPOINT((0.2734375,-0.796875,0.1640625)); +#43=IFCCARTESIANPOINT((-0.2734375,-0.796875,0.1640625)); +#44=IFCCARTESIANPOINT((0.203125,-0.7421875,0.09375)); +#45=IFCCARTESIANPOINT((-0.203125,-0.7421875,0.09375)); +#46=IFCCARTESIANPOINT((0.15625,-0.6484375,0.0546875)); +#47=IFCCARTESIANPOINT((-0.15625,-0.6484375,0.0546875)); +#48=IFCCARTESIANPOINT((0.078125,-0.65625,0.2421875)); +#49=IFCCARTESIANPOINT((-0.078125,-0.65625,0.2421875)); +#50=IFCCARTESIANPOINT((0.140625,-0.7421875,0.2421875)); +#51=IFCCARTESIANPOINT((-0.140625,-0.7421875,0.2421875)); +#52=IFCCARTESIANPOINT((0.2421875,-0.796875,0.2421875)); +#53=IFCCARTESIANPOINT((-0.2421875,-0.796875,0.2421875)); +#54=IFCCARTESIANPOINT((0.2734375,-0.796875,0.328125)); +#55=IFCCARTESIANPOINT((-0.2734375,-0.796875,0.328125)); +#56=IFCCARTESIANPOINT((0.203125,-0.7421875,0.390625)); +#57=IFCCARTESIANPOINT((-0.203125,-0.7421875,0.390625)); +#58=IFCCARTESIANPOINT((0.15625,-0.6484375,0.4375)); +#59=IFCCARTESIANPOINT((-0.15625,-0.6484375,0.4375)); +#60=IFCCARTESIANPOINT((0.3515625,-0.6171875,0.515625)); +#61=IFCCARTESIANPOINT((-0.3515625,-0.6171875,0.515625)); +#62=IFCCARTESIANPOINT((0.3515625,-0.71875,0.453125)); +#63=IFCCARTESIANPOINT((-0.3515625,-0.71875,0.453125)); +#64=IFCCARTESIANPOINT((0.3515625,-0.78125,0.359375)); +#65=IFCCARTESIANPOINT((-0.3515625,-0.78125,0.359375)); +#66=IFCCARTESIANPOINT((0.4375,-0.765625,0.328125)); +#67=IFCCARTESIANPOINT((-0.4375,-0.765625,0.328125)); +#68=IFCCARTESIANPOINT((0.5,-0.6875,0.390625)); +#69=IFCCARTESIANPOINT((-0.5,-0.6875,0.390625)); +#70=IFCCARTESIANPOINT((0.546875,-0.578125,0.4375)); +#71=IFCCARTESIANPOINT((-0.546875,-0.578125,0.4375)); +#72=IFCCARTESIANPOINT((0.625,-0.5625,0.2421875)); +#73=IFCCARTESIANPOINT((-0.625,-0.5625,0.2421875)); +#74=IFCCARTESIANPOINT((0.5625,-0.671875,0.2421875)); +#75=IFCCARTESIANPOINT((-0.5625,-0.671875,0.2421875)); +#76=IFCCARTESIANPOINT((0.46875,-0.7578125,0.2421875)); +#77=IFCCARTESIANPOINT((-0.46875,-0.7578125,0.2421875)); +#78=IFCCARTESIANPOINT((0.4765625,-0.7734375,0.2421875)); +#79=IFCCARTESIANPOINT((-0.4765625,-0.7734375,0.2421875)); +#80=IFCCARTESIANPOINT((0.4453125,-0.78125,0.3359375)); +#81=IFCCARTESIANPOINT((-0.4453125,-0.78125,0.3359375)); +#82=IFCCARTESIANPOINT((0.3515625,-0.8046875,0.375)); +#83=IFCCARTESIANPOINT((-0.3515625,-0.8046875,0.375)); +#84=IFCCARTESIANPOINT((0.265625,-0.8203125,0.3359375)); +#85=IFCCARTESIANPOINT((-0.265625,-0.8203125,0.3359375)); +#86=IFCCARTESIANPOINT((0.2265625,-0.8203125,0.2421875)); +#87=IFCCARTESIANPOINT((-0.2265625,-0.8203125,0.2421875)); +#88=IFCCARTESIANPOINT((0.265625,-0.8203125,0.15625)); +#89=IFCCARTESIANPOINT((-0.265625,-0.8203125,0.15625)); +#90=IFCCARTESIANPOINT((0.3515625,-0.828125,0.2421875)); +#91=IFCCARTESIANPOINT((-0.3515625,-0.828125,0.2421875)); +#92=IFCCARTESIANPOINT((0.3515625,-0.8046875,0.1171875)); +#93=IFCCARTESIANPOINT((-0.3515625,-0.8046875,0.1171875)); +#94=IFCCARTESIANPOINT((0.4453125,-0.78125,0.15625)); +#95=IFCCARTESIANPOINT((-0.4453125,-0.78125,0.15625)); +#96=IFCCARTESIANPOINT((0.,-0.7421875,0.4296875)); +#97=IFCCARTESIANPOINT((0.,-0.8203125,0.3515625)); +#98=IFCCARTESIANPOINT((0.,-0.734375,-0.6796875)); +#99=IFCCARTESIANPOINT((0.,-0.78125,-0.3203125)); +#100=IFCCARTESIANPOINT((0.,-0.796875,-0.1875)); +#101=IFCCARTESIANPOINT((0.,-0.71875,-0.7734375)); +#102=IFCCARTESIANPOINT((0.,-0.6015625,0.40625)); +#103=IFCCARTESIANPOINT((0.,-0.5703125,0.5703125)); +#104=IFCCARTESIANPOINT((0.,0.546875,0.8984375)); +#105=IFCCARTESIANPOINT((0.,0.8515625,0.5625)); +#106=IFCCARTESIANPOINT((0.,0.828125,0.0703125)); +#107=IFCCARTESIANPOINT((0.,0.3515625,-0.3828125)); +#108=IFCCARTESIANPOINT((0.203125,-0.5625,-0.1875)); +#109=IFCCARTESIANPOINT((-0.203125,-0.5625,-0.1875)); +#110=IFCCARTESIANPOINT((0.3125,-0.5703125,-0.4375)); +#111=IFCCARTESIANPOINT((-0.3125,-0.5703125,-0.4375)); +#112=IFCCARTESIANPOINT((0.3515625,-0.5703125,-0.6953125)); +#113=IFCCARTESIANPOINT((-0.3515625,-0.5703125,-0.6953125)); +#114=IFCCARTESIANPOINT((0.3671875,-0.53125,-0.890625)); +#115=IFCCARTESIANPOINT((-0.3671875,-0.53125,-0.890625)); +#116=IFCCARTESIANPOINT((0.328125,-0.5234375,-0.9453125)); +#117=IFCCARTESIANPOINT((-0.328125,-0.5234375,-0.9453125)); +#118=IFCCARTESIANPOINT((0.1796875,-0.5546875,-0.96875)); +#119=IFCCARTESIANPOINT((-0.1796875,-0.5546875,-0.96875)); +#120=IFCCARTESIANPOINT((0.,-0.578125,-0.984375)); +#121=IFCCARTESIANPOINT((0.4375,-0.53125,-0.140625)); +#122=IFCCARTESIANPOINT((-0.4375,-0.53125,-0.140625)); +#123=IFCCARTESIANPOINT((0.6328125,-0.5390625,-0.0390625)); +#124=IFCCARTESIANPOINT((-0.6328125,-0.5390625,-0.0390625)); +#125=IFCCARTESIANPOINT((0.828125,-0.4453125,0.1484375)); +#126=IFCCARTESIANPOINT((-0.828125,-0.4453125,0.1484375)); +#127=IFCCARTESIANPOINT((0.859375,-0.59375,0.4296875)); +#128=IFCCARTESIANPOINT((-0.859375,-0.59375,0.4296875)); +#129=IFCCARTESIANPOINT((0.7109375,-0.625,0.484375)); +#130=IFCCARTESIANPOINT((-0.7109375,-0.625,0.484375)); +#131=IFCCARTESIANPOINT((0.4921875,-0.6875,0.6015625)); +#132=IFCCARTESIANPOINT((-0.4921875,-0.6875,0.6015625)); +#133=IFCCARTESIANPOINT((0.3203125,-0.734375,0.7578125)); +#134=IFCCARTESIANPOINT((-0.3203125,-0.734375,0.7578125)); +#135=IFCCARTESIANPOINT((0.15625,-0.7578125,0.71875)); +#136=IFCCARTESIANPOINT((-0.15625,-0.7578125,0.71875)); +#137=IFCCARTESIANPOINT((0.0625,-0.75,0.4921875)); +#138=IFCCARTESIANPOINT((-0.0625,-0.75,0.4921875)); +#139=IFCCARTESIANPOINT((0.1640625,-0.7734375,0.4140625)); +#140=IFCCARTESIANPOINT((-0.1640625,-0.7734375,0.4140625)); +#141=IFCCARTESIANPOINT((0.125,-0.765625,0.3046875)); +#142=IFCCARTESIANPOINT((-0.125,-0.765625,0.3046875)); +#143=IFCCARTESIANPOINT((0.203125,-0.7421875,0.09375)); +#144=IFCCARTESIANPOINT((-0.203125,-0.7421875,0.09375)); +#145=IFCCARTESIANPOINT((0.375,-0.703125,0.015625)); +#146=IFCCARTESIANPOINT((-0.375,-0.703125,0.015625)); +#147=IFCCARTESIANPOINT((0.4921875,-0.671875,0.0625)); +#148=IFCCARTESIANPOINT((-0.4921875,-0.671875,0.0625)); +#149=IFCCARTESIANPOINT((0.625,-0.6484375,0.1875)); +#150=IFCCARTESIANPOINT((-0.625,-0.6484375,0.1875)); +#151=IFCCARTESIANPOINT((0.640625,-0.6484375,0.296875)); +#152=IFCCARTESIANPOINT((-0.640625,-0.6484375,0.296875)); +#153=IFCCARTESIANPOINT((0.6015625,-0.6640625,0.375)); +#154=IFCCARTESIANPOINT((-0.6015625,-0.6640625,0.375)); +#155=IFCCARTESIANPOINT((0.4296875,-0.71875,0.4375)); +#156=IFCCARTESIANPOINT((-0.4296875,-0.71875,0.4375)); +#157=IFCCARTESIANPOINT((0.25,-0.7578125,0.46875)); +#158=IFCCARTESIANPOINT((-0.25,-0.7578125,0.46875)); +#159=IFCCARTESIANPOINT((0.,-0.734375,-0.765625)); +#160=IFCCARTESIANPOINT((0.109375,-0.734375,-0.71875)); +#161=IFCCARTESIANPOINT((-0.109375,-0.734375,-0.71875)); +#162=IFCCARTESIANPOINT((0.1171875,-0.7109375,-0.8359375)); +#163=IFCCARTESIANPOINT((-0.1171875,-0.7109375,-0.8359375)); +#164=IFCCARTESIANPOINT((0.0625,-0.6953125,-0.8828125)); +#165=IFCCARTESIANPOINT((-0.0625,-0.6953125,-0.8828125)); +#166=IFCCARTESIANPOINT((0.,-0.6875,-0.890625)); +#167=IFCCARTESIANPOINT((0.,-0.75,-0.1953125)); +#168=IFCCARTESIANPOINT((0.,-0.7421875,-0.140625)); +#169=IFCCARTESIANPOINT((0.1015625,-0.7421875,-0.1484375)); +#170=IFCCARTESIANPOINT((-0.1015625,-0.7421875,-0.1484375)); +#171=IFCCARTESIANPOINT((0.125,-0.75,-0.2265625)); +#172=IFCCARTESIANPOINT((-0.125,-0.75,-0.2265625)); +#173=IFCCARTESIANPOINT((0.0859375,-0.7421875,-0.2890625)); +#174=IFCCARTESIANPOINT((-0.0859375,-0.7421875,-0.2890625)); +#175=IFCCARTESIANPOINT((0.3984375,-0.671875,-0.046875)); +#176=IFCCARTESIANPOINT((-0.3984375,-0.671875,-0.046875)); +#177=IFCCARTESIANPOINT((0.6171875,-0.625,0.0546875)); +#178=IFCCARTESIANPOINT((-0.6171875,-0.625,0.0546875)); +#179=IFCCARTESIANPOINT((0.7265625,-0.6015625,0.203125)); +#180=IFCCARTESIANPOINT((-0.7265625,-0.6015625,0.203125)); +#181=IFCCARTESIANPOINT((0.7421875,-0.65625,0.375)); +#182=IFCCARTESIANPOINT((-0.7421875,-0.65625,0.375)); +#183=IFCCARTESIANPOINT((0.6875,-0.7265625,0.4140625)); +#184=IFCCARTESIANPOINT((-0.6875,-0.7265625,0.4140625)); +#185=IFCCARTESIANPOINT((0.4375,-0.796875,0.546875)); +#186=IFCCARTESIANPOINT((-0.4375,-0.796875,0.546875)); +#187=IFCCARTESIANPOINT((0.3125,-0.8359375,0.640625)); +#188=IFCCARTESIANPOINT((-0.3125,-0.8359375,0.640625)); +#189=IFCCARTESIANPOINT((0.203125,-0.8515625,0.6171875)); +#190=IFCCARTESIANPOINT((-0.203125,-0.8515625,0.6171875)); +#191=IFCCARTESIANPOINT((0.1015625,-0.84375,0.4296875)); +#192=IFCCARTESIANPOINT((-0.1015625,-0.84375,0.4296875)); +#193=IFCCARTESIANPOINT((0.125,-0.8125,-0.1015625)); +#194=IFCCARTESIANPOINT((-0.125,-0.8125,-0.1015625)); +#195=IFCCARTESIANPOINT((0.2109375,-0.7109375,-0.4453125)); +#196=IFCCARTESIANPOINT((-0.2109375,-0.7109375,-0.4453125)); +#197=IFCCARTESIANPOINT((0.25,-0.6875,-0.703125)); +#198=IFCCARTESIANPOINT((-0.25,-0.6875,-0.703125)); +#199=IFCCARTESIANPOINT((0.265625,-0.6640625,-0.8203125)); +#200=IFCCARTESIANPOINT((-0.265625,-0.6640625,-0.8203125)); +#201=IFCCARTESIANPOINT((0.234375,-0.6328125,-0.9140625)); +#202=IFCCARTESIANPOINT((-0.234375,-0.6328125,-0.9140625)); +#203=IFCCARTESIANPOINT((0.1640625,-0.6328125,-0.9296875)); +#204=IFCCARTESIANPOINT((-0.1640625,-0.6328125,-0.9296875)); +#205=IFCCARTESIANPOINT((0.,-0.640625,-0.9453125)); +#206=IFCCARTESIANPOINT((0.,-0.7265625,0.046875)); +#207=IFCCARTESIANPOINT((0.,-0.765625,0.2109375)); +#208=IFCCARTESIANPOINT((0.328125,-0.7421875,0.4765625)); +#209=IFCCARTESIANPOINT((-0.328125,-0.7421875,0.4765625)); +#210=IFCCARTESIANPOINT((0.1640625,-0.75,0.140625)); +#211=IFCCARTESIANPOINT((-0.1640625,-0.75,0.140625)); +#212=IFCCARTESIANPOINT((0.1328125,-0.7578125,0.2109375)); +#213=IFCCARTESIANPOINT((-0.1328125,-0.7578125,0.2109375)); +#214=IFCCARTESIANPOINT((0.1171875,-0.734375,-0.6875)); +#215=IFCCARTESIANPOINT((-0.1171875,-0.734375,-0.6875)); +#216=IFCCARTESIANPOINT((0.078125,-0.75,-0.4453125)); +#217=IFCCARTESIANPOINT((-0.078125,-0.75,-0.4453125)); +#218=IFCCARTESIANPOINT((0.,-0.75,-0.4453125)); +#219=IFCCARTESIANPOINT((0.,-0.7421875,-0.328125)); +#220=IFCCARTESIANPOINT((0.09375,-0.78125,-0.2734375)); +#221=IFCCARTESIANPOINT((-0.09375,-0.78125,-0.2734375)); +#222=IFCCARTESIANPOINT((0.1328125,-0.796875,-0.2265625)); +#223=IFCCARTESIANPOINT((-0.1328125,-0.796875,-0.2265625)); +#224=IFCCARTESIANPOINT((0.109375,-0.78125,-0.1328125)); +#225=IFCCARTESIANPOINT((-0.109375,-0.78125,-0.1328125)); +#226=IFCCARTESIANPOINT((0.0390625,-0.78125,-0.125)); +#227=IFCCARTESIANPOINT((-0.0390625,-0.78125,-0.125)); +#228=IFCCARTESIANPOINT((0.,-0.828125,-0.203125)); +#229=IFCCARTESIANPOINT((0.046875,-0.8125,-0.1484375)); +#230=IFCCARTESIANPOINT((-0.046875,-0.8125,-0.1484375)); +#231=IFCCARTESIANPOINT((0.09375,-0.8125,-0.15625)); +#232=IFCCARTESIANPOINT((-0.09375,-0.8125,-0.15625)); +#233=IFCCARTESIANPOINT((0.109375,-0.828125,-0.2265625)); +#234=IFCCARTESIANPOINT((-0.109375,-0.828125,-0.2265625)); +#235=IFCCARTESIANPOINT((0.078125,-0.8046875,-0.25)); +#236=IFCCARTESIANPOINT((-0.078125,-0.8046875,-0.25)); +#237=IFCCARTESIANPOINT((0.,-0.8046875,-0.2890625)); +#238=IFCCARTESIANPOINT((0.2578125,-0.5546875,-0.3125)); +#239=IFCCARTESIANPOINT((-0.2578125,-0.5546875,-0.3125)); +#240=IFCCARTESIANPOINT((0.1640625,-0.7109375,-0.2421875)); +#241=IFCCARTESIANPOINT((-0.1640625,-0.7109375,-0.2421875)); +#242=IFCCARTESIANPOINT((0.1796875,-0.7109375,-0.3125)); +#243=IFCCARTESIANPOINT((-0.1796875,-0.7109375,-0.3125)); +#244=IFCCARTESIANPOINT((0.234375,-0.5546875,-0.25)); +#245=IFCCARTESIANPOINT((-0.234375,-0.5546875,-0.25)); +#246=IFCCARTESIANPOINT((0.,-0.6875,-0.875)); +#247=IFCCARTESIANPOINT((0.046875,-0.6875,-0.8671875)); +#248=IFCCARTESIANPOINT((-0.046875,-0.6875,-0.8671875)); +#249=IFCCARTESIANPOINT((0.09375,-0.7109375,-0.8203125)); +#250=IFCCARTESIANPOINT((-0.09375,-0.7109375,-0.8203125)); +#251=IFCCARTESIANPOINT((0.09375,-0.7265625,-0.7421875)); +#252=IFCCARTESIANPOINT((-0.09375,-0.7265625,-0.7421875)); +#253=IFCCARTESIANPOINT((0.,-0.65625,-0.78125)); +#254=IFCCARTESIANPOINT((0.09375,-0.6640625,-0.75)); +#255=IFCCARTESIANPOINT((-0.09375,-0.6640625,-0.75)); +#256=IFCCARTESIANPOINT((0.09375,-0.640625,-0.8125)); +#257=IFCCARTESIANPOINT((-0.09375,-0.640625,-0.8125)); +#258=IFCCARTESIANPOINT((0.046875,-0.6328125,-0.8515625)); +#259=IFCCARTESIANPOINT((-0.046875,-0.6328125,-0.8515625)); +#260=IFCCARTESIANPOINT((0.,-0.6328125,-0.859375)); +#261=IFCCARTESIANPOINT((0.171875,-0.78125,0.21875)); +#262=IFCCARTESIANPOINT((-0.171875,-0.78125,0.21875)); +#263=IFCCARTESIANPOINT((0.1875,-0.7734375,0.15625)); +#264=IFCCARTESIANPOINT((-0.1875,-0.7734375,0.15625)); +#265=IFCCARTESIANPOINT((0.3359375,-0.7578125,0.4296875)); +#266=IFCCARTESIANPOINT((-0.3359375,-0.7578125,0.4296875)); +#267=IFCCARTESIANPOINT((0.2734375,-0.7734375,0.421875)); +#268=IFCCARTESIANPOINT((-0.2734375,-0.7734375,0.421875)); +#269=IFCCARTESIANPOINT((0.421875,-0.7734375,0.3984375)); +#270=IFCCARTESIANPOINT((-0.421875,-0.7734375,0.3984375)); +#271=IFCCARTESIANPOINT((0.5625,-0.6953125,0.3515625)); +#272=IFCCARTESIANPOINT((-0.5625,-0.6953125,0.3515625)); +#273=IFCCARTESIANPOINT((0.5859375,-0.6875,0.2890625)); +#274=IFCCARTESIANPOINT((-0.5859375,-0.6875,0.2890625)); +#275=IFCCARTESIANPOINT((0.578125,-0.6796875,0.1953125)); +#276=IFCCARTESIANPOINT((-0.578125,-0.6796875,0.1953125)); +#277=IFCCARTESIANPOINT((0.4765625,-0.71875,0.1015625)); +#278=IFCCARTESIANPOINT((-0.4765625,-0.71875,0.1015625)); +#279=IFCCARTESIANPOINT((0.375,-0.7421875,0.0625)); +#280=IFCCARTESIANPOINT((-0.375,-0.7421875,0.0625)); +#281=IFCCARTESIANPOINT((0.2265625,-0.78125,0.109375)); +#282=IFCCARTESIANPOINT((-0.2265625,-0.78125,0.109375)); +#283=IFCCARTESIANPOINT((0.1796875,-0.78125,0.296875)); +#284=IFCCARTESIANPOINT((-0.1796875,-0.78125,0.296875)); +#285=IFCCARTESIANPOINT((0.2109375,-0.78125,0.375)); +#286=IFCCARTESIANPOINT((-0.2109375,-0.78125,0.375)); +#287=IFCCARTESIANPOINT((0.234375,-0.7578125,0.359375)); +#288=IFCCARTESIANPOINT((-0.234375,-0.7578125,0.359375)); +#289=IFCCARTESIANPOINT((0.1953125,-0.7578125,0.296875)); +#290=IFCCARTESIANPOINT((-0.1953125,-0.7578125,0.296875)); +#291=IFCCARTESIANPOINT((0.2421875,-0.7578125,0.125)); +#292=IFCCARTESIANPOINT((-0.2421875,-0.7578125,0.125)); +#293=IFCCARTESIANPOINT((0.375,-0.7265625,0.0859375)); +#294=IFCCARTESIANPOINT((-0.375,-0.7265625,0.0859375)); +#295=IFCCARTESIANPOINT((0.4609375,-0.703125,0.1171875)); +#296=IFCCARTESIANPOINT((-0.4609375,-0.703125,0.1171875)); +#297=IFCCARTESIANPOINT((0.546875,-0.671875,0.2109375)); +#298=IFCCARTESIANPOINT((-0.546875,-0.671875,0.2109375)); +#299=IFCCARTESIANPOINT((0.5546875,-0.671875,0.28125)); +#300=IFCCARTESIANPOINT((-0.5546875,-0.671875,0.28125)); +#301=IFCCARTESIANPOINT((0.53125,-0.6796875,0.3359375)); +#302=IFCCARTESIANPOINT((-0.53125,-0.6796875,0.3359375)); +#303=IFCCARTESIANPOINT((0.4140625,-0.75,0.390625)); +#304=IFCCARTESIANPOINT((-0.4140625,-0.75,0.390625)); +#305=IFCCARTESIANPOINT((0.28125,-0.765625,0.3984375)); +#306=IFCCARTESIANPOINT((-0.28125,-0.765625,0.3984375)); +#307=IFCCARTESIANPOINT((0.3359375,-0.75,0.40625)); +#308=IFCCARTESIANPOINT((-0.3359375,-0.75,0.40625)); +#309=IFCCARTESIANPOINT((0.203125,-0.75,0.171875)); +#310=IFCCARTESIANPOINT((-0.203125,-0.75,0.171875)); +#311=IFCCARTESIANPOINT((0.1953125,-0.75,0.2265625)); +#312=IFCCARTESIANPOINT((-0.1953125,-0.75,0.2265625)); +#313=IFCCARTESIANPOINT((0.109375,-0.609375,0.4609375)); +#314=IFCCARTESIANPOINT((-0.109375,-0.609375,0.4609375)); +#315=IFCCARTESIANPOINT((0.1953125,-0.6171875,0.6640625)); +#316=IFCCARTESIANPOINT((-0.1953125,-0.6171875,0.6640625)); +#317=IFCCARTESIANPOINT((0.3359375,-0.59375,0.6875)); +#318=IFCCARTESIANPOINT((-0.3359375,-0.59375,0.6875)); +#319=IFCCARTESIANPOINT((0.484375,-0.5546875,0.5546875)); +#320=IFCCARTESIANPOINT((-0.484375,-0.5546875,0.5546875)); +#321=IFCCARTESIANPOINT((0.6796875,-0.4921875,0.453125)); +#322=IFCCARTESIANPOINT((-0.6796875,-0.4921875,0.453125)); +#323=IFCCARTESIANPOINT((0.796875,-0.4609375,0.40625)); +#324=IFCCARTESIANPOINT((-0.796875,-0.4609375,0.40625)); +#325=IFCCARTESIANPOINT((0.7734375,-0.375,0.1640625)); +#326=IFCCARTESIANPOINT((-0.7734375,-0.375,0.1640625)); +#327=IFCCARTESIANPOINT((0.6015625,-0.4140625,0.)); +#328=IFCCARTESIANPOINT((-0.6015625,-0.4140625,0.)); +#329=IFCCARTESIANPOINT((0.4375,-0.46875,-0.09375)); +#330=IFCCARTESIANPOINT((-0.4375,-0.46875,-0.09375)); +#331=IFCCARTESIANPOINT((0.,-0.2890625,0.8984375)); +#332=IFCCARTESIANPOINT((0.,0.078125,0.984375)); +#333=IFCCARTESIANPOINT((0.,0.671875,-0.1953125)); +#334=IFCCARTESIANPOINT((0.,-0.1875,-0.4609375)); +#335=IFCCARTESIANPOINT((0.,-0.4609375,-0.9765625)); +#336=IFCCARTESIANPOINT((0.,-0.34375,-0.8046875)); +#337=IFCCARTESIANPOINT((0.,-0.3203125,-0.5703125)); +#338=IFCCARTESIANPOINT((0.,-0.28125,-0.484375)); +#339=IFCCARTESIANPOINT((0.8515625,-0.0546875,0.234375)); +#340=IFCCARTESIANPOINT((-0.8515625,-0.0546875,0.234375)); +#341=IFCCARTESIANPOINT((0.859375,0.046875,0.3203125)); +#342=IFCCARTESIANPOINT((-0.859375,0.046875,0.3203125)); +#343=IFCCARTESIANPOINT((0.7734375,0.4375,0.265625)); +#344=IFCCARTESIANPOINT((-0.7734375,0.4375,0.265625)); +#345=IFCCARTESIANPOINT((0.4609375,0.703125,0.4375)); +#346=IFCCARTESIANPOINT((-0.4609375,0.703125,0.4375)); +#347=IFCCARTESIANPOINT((0.734375,-0.0703125,-0.046875)); +#348=IFCCARTESIANPOINT((-0.734375,-0.0703125,-0.046875)); +#349=IFCCARTESIANPOINT((0.59375,0.1640625,-0.125)); +#350=IFCCARTESIANPOINT((-0.59375,0.1640625,-0.125)); +#351=IFCCARTESIANPOINT((0.640625,0.4296875,-0.0078125)); +#352=IFCCARTESIANPOINT((-0.640625,0.4296875,-0.0078125)); +#353=IFCCARTESIANPOINT((0.3359375,0.6640625,0.0546875)); +#354=IFCCARTESIANPOINT((-0.3359375,0.6640625,0.0546875)); +#355=IFCCARTESIANPOINT((0.234375,-0.40625,-0.3515625)); +#356=IFCCARTESIANPOINT((-0.234375,-0.40625,-0.3515625)); +#357=IFCCARTESIANPOINT((0.1796875,-0.2578125,-0.4140625)); +#358=IFCCARTESIANPOINT((-0.1796875,-0.2578125,-0.4140625)); +#359=IFCCARTESIANPOINT((0.2890625,-0.3828125,-0.7109375)); +#360=IFCCARTESIANPOINT((-0.2890625,-0.3828125,-0.7109375)); +#361=IFCCARTESIANPOINT((0.25,-0.390625,-0.5)); +#362=IFCCARTESIANPOINT((-0.25,-0.390625,-0.5)); +#363=IFCCARTESIANPOINT((0.328125,-0.3984375,-0.9140625)); +#364=IFCCARTESIANPOINT((-0.328125,-0.3984375,-0.9140625)); +#365=IFCCARTESIANPOINT((0.140625,-0.3671875,-0.7578125)); +#366=IFCCARTESIANPOINT((-0.140625,-0.3671875,-0.7578125)); +#367=IFCCARTESIANPOINT((0.125,-0.359375,-0.5390625)); +#368=IFCCARTESIANPOINT((-0.125,-0.359375,-0.5390625)); +#369=IFCCARTESIANPOINT((0.1640625,-0.4375,-0.9453125)); +#370=IFCCARTESIANPOINT((-0.1640625,-0.4375,-0.9453125)); +#371=IFCCARTESIANPOINT((0.21875,-0.4296875,-0.28125)); +#372=IFCCARTESIANPOINT((-0.21875,-0.4296875,-0.28125)); +#373=IFCCARTESIANPOINT((0.2109375,-0.46875,-0.2265625)); +#374=IFCCARTESIANPOINT((-0.2109375,-0.46875,-0.2265625)); +#375=IFCCARTESIANPOINT((0.203125,-0.5,-0.171875)); +#376=IFCCARTESIANPOINT((-0.203125,-0.5,-0.171875)); +#377=IFCCARTESIANPOINT((0.2109375,-0.1640625,-0.390625)); +#378=IFCCARTESIANPOINT((-0.2109375,-0.1640625,-0.390625)); +#379=IFCCARTESIANPOINT((0.296875,0.265625,-0.3125)); +#380=IFCCARTESIANPOINT((-0.296875,0.265625,-0.3125)); +#381=IFCCARTESIANPOINT((0.34375,0.5390625,-0.1484375)); +#382=IFCCARTESIANPOINT((-0.34375,0.5390625,-0.1484375)); +#383=IFCCARTESIANPOINT((0.453125,0.3828125,0.8671875)); +#384=IFCCARTESIANPOINT((-0.453125,0.3828125,0.8671875)); +#385=IFCCARTESIANPOINT((0.453125,0.0703125,0.9296875)); +#386=IFCCARTESIANPOINT((-0.453125,0.0703125,0.9296875)); +#387=IFCCARTESIANPOINT((0.453125,-0.234375,0.8515625)); +#388=IFCCARTESIANPOINT((-0.453125,-0.234375,0.8515625)); +#389=IFCCARTESIANPOINT((0.4609375,-0.4296875,0.5234375)); +#390=IFCCARTESIANPOINT((-0.4609375,-0.4296875,0.5234375)); +#391=IFCCARTESIANPOINT((0.7265625,-0.3359375,0.40625)); +#392=IFCCARTESIANPOINT((-0.7265625,-0.3359375,0.40625)); +#393=IFCCARTESIANPOINT((0.6328125,-0.28125,0.453125)); +#394=IFCCARTESIANPOINT((-0.6328125,-0.28125,0.453125)); +#395=IFCCARTESIANPOINT((0.640625,-0.0546875,0.703125)); +#396=IFCCARTESIANPOINT((-0.640625,-0.0546875,0.703125)); +#397=IFCCARTESIANPOINT((0.796875,-0.125,0.5625)); +#398=IFCCARTESIANPOINT((-0.796875,-0.125,0.5625)); +#399=IFCCARTESIANPOINT((0.796875,0.1171875,0.6171875)); +#400=IFCCARTESIANPOINT((-0.796875,0.1171875,0.6171875)); +#401=IFCCARTESIANPOINT((0.640625,0.1953125,0.75)); +#402=IFCCARTESIANPOINT((-0.640625,0.1953125,0.75)); +#403=IFCCARTESIANPOINT((0.640625,0.4453125,0.6796875)); +#404=IFCCARTESIANPOINT((-0.640625,0.4453125,0.6796875)); +#405=IFCCARTESIANPOINT((0.796875,0.359375,0.5390625)); +#406=IFCCARTESIANPOINT((-0.796875,0.359375,0.5390625)); +#407=IFCCARTESIANPOINT((0.6171875,0.5859375,0.328125)); +#408=IFCCARTESIANPOINT((-0.6171875,0.5859375,0.328125)); +#409=IFCCARTESIANPOINT((0.484375,0.546875,0.0234375)); +#410=IFCCARTESIANPOINT((-0.484375,0.546875,0.0234375)); +#411=IFCCARTESIANPOINT((0.8203125,0.203125,0.328125)); +#412=IFCCARTESIANPOINT((-0.8203125,0.203125,0.328125)); +#413=IFCCARTESIANPOINT((0.40625,-0.1484375,-0.171875)); +#414=IFCCARTESIANPOINT((-0.40625,-0.1484375,-0.171875)); +#415=IFCCARTESIANPOINT((0.4296875,0.2109375,-0.1953125)); +#416=IFCCARTESIANPOINT((-0.4296875,0.2109375,-0.1953125)); +#417=IFCCARTESIANPOINT((0.890625,0.234375,0.40625)); +#418=IFCCARTESIANPOINT((-0.890625,0.234375,0.40625)); +#419=IFCCARTESIANPOINT((0.7734375,0.125,-0.140625)); +#420=IFCCARTESIANPOINT((-0.7734375,0.125,-0.140625)); +#421=IFCCARTESIANPOINT((1.0390625,0.328125,-0.1015625)); +#422=IFCCARTESIANPOINT((-1.0390625,0.328125,-0.1015625)); +#423=IFCCARTESIANPOINT((1.28125,0.4296875,0.0546875)); +#424=IFCCARTESIANPOINT((-1.28125,0.4296875,0.0546875)); +#425=IFCCARTESIANPOINT((1.3515625,0.421875,0.3203125)); +#426=IFCCARTESIANPOINT((-1.3515625,0.421875,0.3203125)); +#427=IFCCARTESIANPOINT((1.234375,0.421875,0.5078125)); +#428=IFCCARTESIANPOINT((-1.234375,0.421875,0.5078125)); +#429=IFCCARTESIANPOINT((1.0234375,0.3125,0.4765625)); +#430=IFCCARTESIANPOINT((-1.0234375,0.3125,0.4765625)); +#431=IFCCARTESIANPOINT((1.015625,0.2890625,0.4140625)); +#432=IFCCARTESIANPOINT((-1.015625,0.2890625,0.4140625)); +#433=IFCCARTESIANPOINT((1.1875,0.390625,0.4375)); +#434=IFCCARTESIANPOINT((-1.1875,0.390625,0.4375)); +#435=IFCCARTESIANPOINT((1.265625,0.40625,0.2890625)); +#436=IFCCARTESIANPOINT((-1.265625,0.40625,0.2890625)); +#437=IFCCARTESIANPOINT((1.2109375,0.40625,0.078125)); +#438=IFCCARTESIANPOINT((-1.2109375,0.40625,0.078125)); +#439=IFCCARTESIANPOINT((1.03125,0.3046875,-0.0390625)); +#440=IFCCARTESIANPOINT((-1.03125,0.3046875,-0.0390625)); +#441=IFCCARTESIANPOINT((0.828125,0.1328125,-0.0703125)); +#442=IFCCARTESIANPOINT((-0.828125,0.1328125,-0.0703125)); +#443=IFCCARTESIANPOINT((0.921875,0.21875,0.359375)); +#444=IFCCARTESIANPOINT((-0.921875,0.21875,0.359375)); +#445=IFCCARTESIANPOINT((0.9453125,0.2890625,0.3046875)); +#446=IFCCARTESIANPOINT((-0.9453125,0.2890625,0.3046875)); +#447=IFCCARTESIANPOINT((0.8828125,0.2109375,-0.0234375)); +#448=IFCCARTESIANPOINT((-0.8828125,0.2109375,-0.0234375)); +#449=IFCCARTESIANPOINT((1.0390625,0.3671875,0.)); +#450=IFCCARTESIANPOINT((-1.0390625,0.3671875,0.)); +#451=IFCCARTESIANPOINT((1.1875,0.4453125,0.09375)); +#452=IFCCARTESIANPOINT((-1.1875,0.4453125,0.09375)); +#453=IFCCARTESIANPOINT((1.234375,0.4453125,0.25)); +#454=IFCCARTESIANPOINT((-1.234375,0.4453125,0.25)); +#455=IFCCARTESIANPOINT((1.171875,0.4375,0.359375)); +#456=IFCCARTESIANPOINT((-1.171875,0.4375,0.359375)); +#457=IFCCARTESIANPOINT((1.0234375,0.359375,0.34375)); +#458=IFCCARTESIANPOINT((-1.0234375,0.359375,0.34375)); +#459=IFCCARTESIANPOINT((0.84375,0.2109375,0.2890625)); +#460=IFCCARTESIANPOINT((-0.84375,0.2109375,0.2890625)); +#461=IFCCARTESIANPOINT((0.8359375,0.2734375,0.171875)); +#462=IFCCARTESIANPOINT((-0.8359375,0.2734375,0.171875)); +#463=IFCCARTESIANPOINT((0.7578125,0.2734375,0.09375)); +#464=IFCCARTESIANPOINT((-0.7578125,0.2734375,0.09375)); +#465=IFCCARTESIANPOINT((0.8203125,0.2734375,0.0859375)); +#466=IFCCARTESIANPOINT((-0.8203125,0.2734375,0.0859375)); +#467=IFCCARTESIANPOINT((0.84375,0.2734375,0.015625)); +#468=IFCCARTESIANPOINT((-0.84375,0.2734375,0.015625)); +#469=IFCCARTESIANPOINT((0.8125,0.2734375,-0.015625)); +#470=IFCCARTESIANPOINT((-0.8125,0.2734375,-0.015625)); +#471=IFCCARTESIANPOINT((0.7265625,0.0703125,0.)); +#472=IFCCARTESIANPOINT((-0.7265625,0.0703125,0.)); +#473=IFCCARTESIANPOINT((0.71875,0.171875,-0.0234375)); +#474=IFCCARTESIANPOINT((-0.71875,0.171875,-0.0234375)); +#475=IFCCARTESIANPOINT((0.71875,0.1875,0.0390625)); +#476=IFCCARTESIANPOINT((-0.71875,0.1875,0.0390625)); +#477=IFCCARTESIANPOINT((0.796875,0.2109375,0.203125)); +#478=IFCCARTESIANPOINT((-0.796875,0.2109375,0.203125)); +#479=IFCCARTESIANPOINT((0.890625,0.265625,0.2421875)); +#480=IFCCARTESIANPOINT((-0.890625,0.265625,0.2421875)); +#481=IFCCARTESIANPOINT((0.890625,0.3203125,0.234375)); +#482=IFCCARTESIANPOINT((-0.890625,0.3203125,0.234375)); +#483=IFCCARTESIANPOINT((0.8125,0.3203125,-0.015625)); +#484=IFCCARTESIANPOINT((-0.8125,0.3203125,-0.015625)); +#485=IFCCARTESIANPOINT((0.8515625,0.3203125,0.015625)); +#486=IFCCARTESIANPOINT((-0.8515625,0.3203125,0.015625)); +#487=IFCCARTESIANPOINT((0.828125,0.3203125,0.078125)); +#488=IFCCARTESIANPOINT((-0.828125,0.3203125,0.078125)); +#489=IFCCARTESIANPOINT((0.765625,0.3203125,0.09375)); +#490=IFCCARTESIANPOINT((-0.765625,0.3203125,0.09375)); +#491=IFCCARTESIANPOINT((0.84375,0.3203125,0.171875)); +#492=IFCCARTESIANPOINT((-0.84375,0.3203125,0.171875)); +#493=IFCCARTESIANPOINT((1.0390625,0.4140625,0.328125)); +#494=IFCCARTESIANPOINT((-1.0390625,0.4140625,0.328125)); +#495=IFCCARTESIANPOINT((1.1875,0.484375,0.34375)); +#496=IFCCARTESIANPOINT((-1.1875,0.484375,0.34375)); +#497=IFCCARTESIANPOINT((1.2578125,0.4921875,0.2421875)); +#498=IFCCARTESIANPOINT((-1.2578125,0.4921875,0.2421875)); +#499=IFCCARTESIANPOINT((1.2109375,0.484375,0.0859375)); +#500=IFCCARTESIANPOINT((-1.2109375,0.484375,0.0859375)); +#501=IFCCARTESIANPOINT((1.046875,0.421875,0.)); +#502=IFCCARTESIANPOINT((-1.046875,0.421875,0.)); +#503=IFCCARTESIANPOINT((0.8828125,0.265625,-0.015625)); +#504=IFCCARTESIANPOINT((-0.8828125,0.265625,-0.015625)); +#505=IFCCARTESIANPOINT((0.953125,0.34375,0.2890625)); +#506=IFCCARTESIANPOINT((-0.953125,0.34375,0.2890625)); +#507=IFCCARTESIANPOINT((0.890625,0.328125,0.109375)); +#508=IFCCARTESIANPOINT((-0.890625,0.328125,0.109375)); +#509=IFCCARTESIANPOINT((0.9375,0.3359375,0.0625)); +#510=IFCCARTESIANPOINT((-0.9375,0.3359375,0.0625)); +#511=IFCCARTESIANPOINT((1.,0.3671875,0.125)); +#512=IFCCARTESIANPOINT((-1.,0.3671875,0.125)); +#513=IFCCARTESIANPOINT((0.9609375,0.3515625,0.171875)); +#514=IFCCARTESIANPOINT((-0.9609375,0.3515625,0.171875)); +#515=IFCCARTESIANPOINT((1.015625,0.375,0.234375)); +#516=IFCCARTESIANPOINT((-1.015625,0.375,0.234375)); +#517=IFCCARTESIANPOINT((1.0546875,0.3828125,0.1875)); +#518=IFCCARTESIANPOINT((-1.0546875,0.3828125,0.1875)); +#519=IFCCARTESIANPOINT((1.109375,0.390625,0.2109375)); +#520=IFCCARTESIANPOINT((-1.109375,0.390625,0.2109375)); +#521=IFCCARTESIANPOINT((1.0859375,0.390625,0.2734375)); +#522=IFCCARTESIANPOINT((-1.0859375,0.390625,0.2734375)); +#523=IFCCARTESIANPOINT((1.0234375,0.484375,0.4375)); +#524=IFCCARTESIANPOINT((-1.0234375,0.484375,0.4375)); +#525=IFCCARTESIANPOINT((1.25,0.546875,0.46875)); +#526=IFCCARTESIANPOINT((-1.25,0.546875,0.46875)); +#527=IFCCARTESIANPOINT((1.3671875,0.5,0.296875)); +#528=IFCCARTESIANPOINT((-1.3671875,0.5,0.296875)); +#529=IFCCARTESIANPOINT((1.3125,0.53125,0.0546875)); +#530=IFCCARTESIANPOINT((-1.3125,0.53125,0.0546875)); +#531=IFCCARTESIANPOINT((1.0390625,0.4921875,-0.0859375)); +#532=IFCCARTESIANPOINT((-1.0390625,0.4921875,-0.0859375)); +#533=IFCCARTESIANPOINT((0.7890625,0.328125,-0.125)); +#534=IFCCARTESIANPOINT((-0.7890625,0.328125,-0.125)); +#535=IFCCARTESIANPOINT((0.859375,0.3828125,0.3828125)); +#536=IFCCARTESIANPOINT((-0.859375,0.3828125,0.3828125)); +#537=IFCPOLYLOOP((#76,#30,#32,#74)); +#538=IFCFACEOUTERBOUND(#537,.T.); +#539=IFCFACE((#538)); +#540=IFCPOLYLOOP((#33,#31,#77,#75)); +#541=IFCFACEOUTERBOUND(#540,.T.); +#542=IFCFACE((#541)); +#543=IFCPOLYLOOP((#74,#32,#34,#72)); +#544=IFCFACEOUTERBOUND(#543,.T.); +#545=IFCFACE((#544)); +#546=IFCPOLYLOOP((#35,#33,#75,#73)); +#547=IFCFACEOUTERBOUND(#546,.T.); +#548=IFCFACE((#547)); +#549=IFCPOLYLOOP((#32,#38,#36,#34)); +#550=IFCFACEOUTERBOUND(#549,.T.); +#551=IFCFACE((#550)); +#552=IFCPOLYLOOP((#37,#39,#33,#35)); +#553=IFCFACEOUTERBOUND(#552,.T.); +#554=IFCFACE((#553)); +#555=IFCPOLYLOOP((#30,#40,#38,#32)); +#556=IFCFACEOUTERBOUND(#555,.T.); +#557=IFCFACE((#556)); +#558=IFCPOLYLOOP((#39,#41,#31,#33)); +#559=IFCFACEOUTERBOUND(#558,.T.); +#560=IFCFACE((#559)); +#561=IFCPOLYLOOP((#40,#42,#44,#38)); +#562=IFCFACEOUTERBOUND(#561,.T.); +#563=IFCFACE((#562)); +#564=IFCPOLYLOOP((#45,#43,#41,#39)); +#565=IFCFACEOUTERBOUND(#564,.T.); +#566=IFCFACE((#565)); +#567=IFCPOLYLOOP((#38,#44,#46,#36)); +#568=IFCFACEOUTERBOUND(#567,.T.); +#569=IFCFACE((#568)); +#570=IFCPOLYLOOP((#47,#45,#39,#37)); +#571=IFCFACEOUTERBOUND(#570,.T.); +#572=IFCFACE((#571)); +#573=IFCPOLYLOOP((#44,#50,#48,#46)); +#574=IFCFACEOUTERBOUND(#573,.T.); +#575=IFCFACE((#574)); +#576=IFCPOLYLOOP((#49,#51,#45,#47)); +#577=IFCFACEOUTERBOUND(#576,.T.); +#578=IFCFACE((#577)); +#579=IFCPOLYLOOP((#42,#52,#50,#44)); +#580=IFCFACEOUTERBOUND(#579,.T.); +#581=IFCFACE((#580)); +#582=IFCPOLYLOOP((#51,#53,#43,#45)); +#583=IFCFACEOUTERBOUND(#582,.T.); +#584=IFCFACE((#583)); +#585=IFCPOLYLOOP((#52,#54,#56,#50)); +#586=IFCFACEOUTERBOUND(#585,.T.); +#587=IFCFACE((#586)); +#588=IFCPOLYLOOP((#57,#55,#53,#51)); +#589=IFCFACEOUTERBOUND(#588,.T.); +#590=IFCFACE((#589)); +#591=IFCPOLYLOOP((#50,#56,#58,#48)); +#592=IFCFACEOUTERBOUND(#591,.T.); +#593=IFCFACE((#592)); +#594=IFCPOLYLOOP((#59,#57,#51,#49)); +#595=IFCFACEOUTERBOUND(#594,.T.); +#596=IFCFACE((#595)); +#597=IFCPOLYLOOP((#56,#62,#60,#58)); +#598=IFCFACEOUTERBOUND(#597,.T.); +#599=IFCFACE((#598)); +#600=IFCPOLYLOOP((#61,#63,#57,#59)); +#601=IFCFACEOUTERBOUND(#600,.T.); +#602=IFCFACE((#601)); +#603=IFCPOLYLOOP((#54,#64,#62,#56)); +#604=IFCFACEOUTERBOUND(#603,.T.); +#605=IFCFACE((#604)); +#606=IFCPOLYLOOP((#63,#65,#55,#57)); +#607=IFCFACEOUTERBOUND(#606,.T.); +#608=IFCFACE((#607)); +#609=IFCPOLYLOOP((#64,#66,#68,#62)); +#610=IFCFACEOUTERBOUND(#609,.T.); +#611=IFCFACE((#610)); +#612=IFCPOLYLOOP((#69,#67,#65,#63)); +#613=IFCFACEOUTERBOUND(#612,.T.); +#614=IFCFACE((#613)); +#615=IFCPOLYLOOP((#62,#68,#70,#60)); +#616=IFCFACEOUTERBOUND(#615,.T.); +#617=IFCFACE((#616)); +#618=IFCPOLYLOOP((#71,#69,#63,#61)); +#619=IFCFACEOUTERBOUND(#618,.T.); +#620=IFCFACE((#619)); +#621=IFCPOLYLOOP((#68,#74,#72,#70)); +#622=IFCFACEOUTERBOUND(#621,.T.); +#623=IFCFACE((#622)); +#624=IFCPOLYLOOP((#73,#75,#69,#71)); +#625=IFCFACEOUTERBOUND(#624,.T.); +#626=IFCFACE((#625)); +#627=IFCPOLYLOOP((#66,#76,#74,#68)); +#628=IFCFACEOUTERBOUND(#627,.T.); +#629=IFCFACE((#628)); +#630=IFCPOLYLOOP((#75,#77,#67,#69)); +#631=IFCFACEOUTERBOUND(#630,.T.); +#632=IFCFACE((#631)); +#633=IFCPOLYLOOP((#76,#66,#80,#78)); +#634=IFCFACEOUTERBOUND(#633,.T.); +#635=IFCFACE((#634)); +#636=IFCPOLYLOOP((#81,#67,#77,#79)); +#637=IFCFACEOUTERBOUND(#636,.T.); +#638=IFCFACE((#637)); +#639=IFCPOLYLOOP((#66,#64,#82,#80)); +#640=IFCFACEOUTERBOUND(#639,.T.); +#641=IFCFACE((#640)); +#642=IFCPOLYLOOP((#83,#65,#67,#81)); +#643=IFCFACEOUTERBOUND(#642,.T.); +#644=IFCFACE((#643)); +#645=IFCPOLYLOOP((#64,#54,#84,#82)); +#646=IFCFACEOUTERBOUND(#645,.T.); +#647=IFCFACE((#646)); +#648=IFCPOLYLOOP((#85,#55,#65,#83)); +#649=IFCFACEOUTERBOUND(#648,.T.); +#650=IFCFACE((#649)); +#651=IFCPOLYLOOP((#54,#52,#86,#84)); +#652=IFCFACEOUTERBOUND(#651,.T.); +#653=IFCFACE((#652)); +#654=IFCPOLYLOOP((#87,#53,#55,#85)); +#655=IFCFACEOUTERBOUND(#654,.T.); +#656=IFCFACE((#655)); +#657=IFCPOLYLOOP((#52,#42,#88,#86)); +#658=IFCFACEOUTERBOUND(#657,.T.); +#659=IFCFACE((#658)); +#660=IFCPOLYLOOP((#89,#43,#53,#87)); +#661=IFCFACEOUTERBOUND(#660,.T.); +#662=IFCFACE((#661)); +#663=IFCPOLYLOOP((#42,#40,#92,#88)); +#664=IFCFACEOUTERBOUND(#663,.T.); +#665=IFCFACE((#664)); +#666=IFCPOLYLOOP((#93,#41,#43,#89)); +#667=IFCFACEOUTERBOUND(#666,.T.); +#668=IFCFACE((#667)); +#669=IFCPOLYLOOP((#40,#30,#94,#92)); +#670=IFCFACEOUTERBOUND(#669,.T.); +#671=IFCFACE((#670)); +#672=IFCPOLYLOOP((#95,#31,#41,#93)); +#673=IFCFACEOUTERBOUND(#672,.T.); +#674=IFCFACE((#673)); +#675=IFCPOLYLOOP((#30,#76,#78,#94)); +#676=IFCFACEOUTERBOUND(#675,.T.); +#677=IFCFACE((#676)); +#678=IFCPOLYLOOP((#79,#77,#31,#95)); +#679=IFCFACEOUTERBOUND(#678,.T.); +#680=IFCFACE((#679)); +#681=IFCPOLYLOOP((#90,#94,#78)); +#682=IFCFACEOUTERBOUND(#681,.T.); +#683=IFCFACE((#682)); +#684=IFCPOLYLOOP((#79,#95,#91)); +#685=IFCFACEOUTERBOUND(#684,.T.); +#686=IFCFACE((#685)); +#687=IFCPOLYLOOP((#92,#94,#90)); +#688=IFCFACEOUTERBOUND(#687,.T.); +#689=IFCFACE((#688)); +#690=IFCPOLYLOOP((#91,#95,#93)); +#691=IFCFACEOUTERBOUND(#690,.T.); +#692=IFCFACE((#691)); +#693=IFCPOLYLOOP((#90,#88,#92)); +#694=IFCFACEOUTERBOUND(#693,.T.); +#695=IFCFACE((#694)); +#696=IFCPOLYLOOP((#93,#89,#91)); +#697=IFCFACEOUTERBOUND(#696,.T.); +#698=IFCFACE((#697)); +#699=IFCPOLYLOOP((#90,#86,#88)); +#700=IFCFACEOUTERBOUND(#699,.T.); +#701=IFCFACE((#700)); +#702=IFCPOLYLOOP((#89,#87,#91)); +#703=IFCFACEOUTERBOUND(#702,.T.); +#704=IFCFACE((#703)); +#705=IFCPOLYLOOP((#90,#84,#86)); +#706=IFCFACEOUTERBOUND(#705,.T.); +#707=IFCFACE((#706)); +#708=IFCPOLYLOOP((#87,#85,#91)); +#709=IFCFACEOUTERBOUND(#708,.T.); +#710=IFCFACE((#709)); +#711=IFCPOLYLOOP((#90,#82,#84)); +#712=IFCFACEOUTERBOUND(#711,.T.); +#713=IFCFACE((#712)); +#714=IFCPOLYLOOP((#85,#83,#91)); +#715=IFCFACEOUTERBOUND(#714,.T.); +#716=IFCFACE((#715)); +#717=IFCPOLYLOOP((#90,#80,#82)); +#718=IFCFACEOUTERBOUND(#717,.T.); +#719=IFCFACE((#718)); +#720=IFCPOLYLOOP((#83,#81,#91)); +#721=IFCFACEOUTERBOUND(#720,.T.); +#722=IFCFACE((#721)); +#723=IFCPOLYLOOP((#90,#78,#80)); +#724=IFCFACEOUTERBOUND(#723,.T.); +#725=IFCFACE((#724)); +#726=IFCPOLYLOOP((#81,#79,#91)); +#727=IFCFACEOUTERBOUND(#726,.T.); +#728=IFCFACE((#727)); +#729=IFCPOLYLOOP((#118,#203,#205,#120)); +#730=IFCFACEOUTERBOUND(#729,.T.); +#731=IFCFACE((#730)); +#732=IFCPOLYLOOP((#205,#204,#119,#120)); +#733=IFCFACEOUTERBOUND(#732,.T.); +#734=IFCFACE((#733)); +#735=IFCPOLYLOOP((#116,#201,#203,#118)); +#736=IFCFACEOUTERBOUND(#735,.T.); +#737=IFCFACE((#736)); +#738=IFCPOLYLOOP((#204,#202,#117,#119)); +#739=IFCFACEOUTERBOUND(#738,.T.); +#740=IFCFACE((#739)); +#741=IFCPOLYLOOP((#114,#199,#201,#116)); +#742=IFCFACEOUTERBOUND(#741,.T.); +#743=IFCFACE((#742)); +#744=IFCPOLYLOOP((#202,#200,#115,#117)); +#745=IFCFACEOUTERBOUND(#744,.T.); +#746=IFCFACE((#745)); +#747=IFCPOLYLOOP((#112,#197,#199,#114)); +#748=IFCFACEOUTERBOUND(#747,.T.); +#749=IFCFACE((#748)); +#750=IFCPOLYLOOP((#200,#198,#113,#115)); +#751=IFCFACEOUTERBOUND(#750,.T.); +#752=IFCFACE((#751)); +#753=IFCPOLYLOOP((#110,#195,#197,#112)); +#754=IFCFACEOUTERBOUND(#753,.T.); +#755=IFCFACE((#754)); +#756=IFCPOLYLOOP((#198,#196,#111,#113)); +#757=IFCFACEOUTERBOUND(#756,.T.); +#758=IFCFACE((#757)); +#759=IFCPOLYLOOP((#108,#121,#175,#193)); +#760=IFCFACEOUTERBOUND(#759,.T.); +#761=IFCFACE((#760)); +#762=IFCPOLYLOOP((#176,#122,#109,#194)); +#763=IFCFACEOUTERBOUND(#762,.T.); +#764=IFCFACE((#763)); +#765=IFCPOLYLOOP((#121,#123,#177,#175)); +#766=IFCFACEOUTERBOUND(#765,.T.); +#767=IFCFACE((#766)); +#768=IFCPOLYLOOP((#178,#124,#122,#176)); +#769=IFCFACEOUTERBOUND(#768,.T.); +#770=IFCFACE((#769)); +#771=IFCPOLYLOOP((#123,#125,#179,#177)); +#772=IFCFACEOUTERBOUND(#771,.T.); +#773=IFCFACE((#772)); +#774=IFCPOLYLOOP((#180,#126,#124,#178)); +#775=IFCFACEOUTERBOUND(#774,.T.); +#776=IFCFACE((#775)); +#777=IFCPOLYLOOP((#125,#127,#181,#179)); +#778=IFCFACEOUTERBOUND(#777,.T.); +#779=IFCFACE((#778)); +#780=IFCPOLYLOOP((#182,#128,#126,#180)); +#781=IFCFACEOUTERBOUND(#780,.T.); +#782=IFCFACE((#781)); +#783=IFCPOLYLOOP((#127,#129,#183,#181)); +#784=IFCFACEOUTERBOUND(#783,.T.); +#785=IFCFACE((#784)); +#786=IFCPOLYLOOP((#184,#130,#128,#182)); +#787=IFCFACEOUTERBOUND(#786,.T.); +#788=IFCFACE((#787)); +#789=IFCPOLYLOOP((#129,#131,#185,#183)); +#790=IFCFACEOUTERBOUND(#789,.T.); +#791=IFCFACE((#790)); +#792=IFCPOLYLOOP((#186,#132,#130,#184)); +#793=IFCFACEOUTERBOUND(#792,.T.); +#794=IFCFACE((#793)); +#795=IFCPOLYLOOP((#131,#133,#187,#185)); +#796=IFCFACEOUTERBOUND(#795,.T.); +#797=IFCFACE((#796)); +#798=IFCPOLYLOOP((#188,#134,#132,#186)); +#799=IFCFACEOUTERBOUND(#798,.T.); +#800=IFCFACE((#799)); +#801=IFCPOLYLOOP((#133,#135,#189,#187)); +#802=IFCFACEOUTERBOUND(#801,.T.); +#803=IFCFACE((#802)); +#804=IFCPOLYLOOP((#190,#136,#134,#188)); +#805=IFCFACEOUTERBOUND(#804,.T.); +#806=IFCFACE((#805)); +#807=IFCPOLYLOOP((#135,#137,#191,#189)); +#808=IFCFACEOUTERBOUND(#807,.T.); +#809=IFCFACE((#808)); +#810=IFCPOLYLOOP((#192,#138,#136,#190)); +#811=IFCFACEOUTERBOUND(#810,.T.); +#812=IFCFACE((#811)); +#813=IFCPOLYLOOP((#137,#96,#97,#191)); +#814=IFCFACEOUTERBOUND(#813,.T.); +#815=IFCFACE((#814)); +#816=IFCPOLYLOOP((#97,#96,#138,#192)); +#817=IFCFACEOUTERBOUND(#816,.T.); +#818=IFCFACE((#817)); +#819=IFCPOLYLOOP((#139,#157,#189,#191)); +#820=IFCFACEOUTERBOUND(#819,.T.); +#821=IFCFACE((#820)); +#822=IFCPOLYLOOP((#190,#158,#140,#192)); +#823=IFCFACEOUTERBOUND(#822,.T.); +#824=IFCFACE((#823)); +#825=IFCPOLYLOOP((#157,#208,#187,#189)); +#826=IFCFACEOUTERBOUND(#825,.T.); +#827=IFCFACE((#826)); +#828=IFCPOLYLOOP((#188,#209,#158,#190)); +#829=IFCFACEOUTERBOUND(#828,.T.); +#830=IFCFACE((#829)); +#831=IFCPOLYLOOP((#155,#185,#187,#208)); +#832=IFCFACEOUTERBOUND(#831,.T.); +#833=IFCFACE((#832)); +#834=IFCPOLYLOOP((#188,#186,#156,#209)); +#835=IFCFACEOUTERBOUND(#834,.T.); +#836=IFCFACE((#835)); +#837=IFCPOLYLOOP((#153,#183,#185,#155)); +#838=IFCFACEOUTERBOUND(#837,.T.); +#839=IFCFACE((#838)); +#840=IFCPOLYLOOP((#186,#184,#154,#156)); +#841=IFCFACEOUTERBOUND(#840,.T.); +#842=IFCFACE((#841)); +#843=IFCPOLYLOOP((#151,#181,#183,#153)); +#844=IFCFACEOUTERBOUND(#843,.T.); +#845=IFCFACE((#844)); +#846=IFCPOLYLOOP((#184,#182,#152,#154)); +#847=IFCFACEOUTERBOUND(#846,.T.); +#848=IFCFACE((#847)); +#849=IFCPOLYLOOP((#149,#179,#181,#151)); +#850=IFCFACEOUTERBOUND(#849,.T.); +#851=IFCFACE((#850)); +#852=IFCPOLYLOOP((#182,#180,#150,#152)); +#853=IFCFACEOUTERBOUND(#852,.T.); +#854=IFCFACE((#853)); +#855=IFCPOLYLOOP((#147,#177,#179,#149)); +#856=IFCFACEOUTERBOUND(#855,.T.); +#857=IFCFACE((#856)); +#858=IFCPOLYLOOP((#180,#178,#148,#150)); +#859=IFCFACEOUTERBOUND(#858,.T.); +#860=IFCFACE((#859)); +#861=IFCPOLYLOOP((#145,#175,#177,#147)); +#862=IFCFACEOUTERBOUND(#861,.T.); +#863=IFCFACE((#862)); +#864=IFCPOLYLOOP((#178,#176,#146,#148)); +#865=IFCFACEOUTERBOUND(#864,.T.); +#866=IFCFACE((#865)); +#867=IFCPOLYLOOP((#143,#193,#175,#145)); +#868=IFCFACEOUTERBOUND(#867,.T.); +#869=IFCFACE((#868)); +#870=IFCPOLYLOOP((#176,#194,#144,#146)); +#871=IFCFACEOUTERBOUND(#870,.T.); +#872=IFCFACE((#871)); +#873=IFCPOLYLOOP((#143,#210,#206,#193)); +#874=IFCFACEOUTERBOUND(#873,.T.); +#875=IFCFACE((#874)); +#876=IFCPOLYLOOP((#206,#211,#144,#194)); +#877=IFCFACEOUTERBOUND(#876,.T.); +#878=IFCFACE((#877)); +#879=IFCPOLYLOOP((#139,#191,#97,#141)); +#880=IFCFACEOUTERBOUND(#879,.T.); +#881=IFCFACE((#880)); +#882=IFCPOLYLOOP((#97,#192,#140,#142)); +#883=IFCFACEOUTERBOUND(#882,.T.); +#884=IFCFACE((#883)); +#885=IFCPOLYLOOP((#141,#97,#207,#212)); +#886=IFCFACEOUTERBOUND(#885,.T.); +#887=IFCFACE((#886)); +#888=IFCPOLYLOOP((#207,#97,#142,#213)); +#889=IFCFACEOUTERBOUND(#888,.T.); +#890=IFCFACE((#889)); +#891=IFCPOLYLOOP((#206,#210,#212,#207)); +#892=IFCFACEOUTERBOUND(#891,.T.); +#893=IFCFACE((#892)); +#894=IFCPOLYLOOP((#213,#211,#206,#207)); +#895=IFCFACEOUTERBOUND(#894,.T.); +#896=IFCFACE((#895)); +#897=IFCPOLYLOOP((#164,#166,#205,#203)); +#898=IFCFACEOUTERBOUND(#897,.T.); +#899=IFCFACE((#898)); +#900=IFCPOLYLOOP((#205,#166,#165,#204)); +#901=IFCFACEOUTERBOUND(#900,.T.); +#902=IFCFACE((#901)); +#903=IFCPOLYLOOP((#162,#164,#203,#201)); +#904=IFCFACEOUTERBOUND(#903,.T.); +#905=IFCFACE((#904)); +#906=IFCPOLYLOOP((#204,#165,#163,#202)); +#907=IFCFACEOUTERBOUND(#906,.T.); +#908=IFCFACE((#907)); +#909=IFCPOLYLOOP((#160,#162,#201,#199)); +#910=IFCFACEOUTERBOUND(#909,.T.); +#911=IFCFACE((#910)); +#912=IFCPOLYLOOP((#202,#163,#161,#200)); +#913=IFCFACEOUTERBOUND(#912,.T.); +#914=IFCFACE((#913)); +#915=IFCPOLYLOOP((#195,#216,#214,#197)); +#916=IFCFACEOUTERBOUND(#915,.T.); +#917=IFCFACE((#916)); +#918=IFCPOLYLOOP((#215,#217,#196,#198)); +#919=IFCFACEOUTERBOUND(#918,.T.); +#920=IFCFACE((#919)); +#921=IFCPOLYLOOP((#160,#199,#197,#214)); +#922=IFCFACEOUTERBOUND(#921,.T.); +#923=IFCFACE((#922)); +#924=IFCPOLYLOOP((#198,#200,#161,#215)); +#925=IFCFACEOUTERBOUND(#924,.T.); +#926=IFCFACE((#925)); +#927=IFCPOLYLOOP((#173,#219,#218,#216)); +#928=IFCFACEOUTERBOUND(#927,.T.); +#929=IFCFACE((#928)); +#930=IFCPOLYLOOP((#218,#219,#174,#217)); +#931=IFCFACEOUTERBOUND(#930,.T.); +#932=IFCFACE((#931)); +#933=IFCPOLYLOOP((#214,#216,#218,#98)); +#934=IFCFACEOUTERBOUND(#933,.T.); +#935=IFCFACE((#934)); +#936=IFCPOLYLOOP((#218,#217,#215,#98)); +#937=IFCFACEOUTERBOUND(#936,.T.); +#938=IFCFACE((#937)); +#939=IFCPOLYLOOP((#159,#160,#214,#98)); +#940=IFCFACEOUTERBOUND(#939,.T.); +#941=IFCFACE((#940)); +#942=IFCPOLYLOOP((#215,#161,#159,#98)); +#943=IFCFACEOUTERBOUND(#942,.T.); +#944=IFCFACE((#943)); +#945=IFCPOLYLOOP((#171,#222,#220,#173)); +#946=IFCFACEOUTERBOUND(#945,.T.); +#947=IFCFACE((#946)); +#948=IFCPOLYLOOP((#221,#223,#172,#174)); +#949=IFCFACEOUTERBOUND(#948,.T.); +#950=IFCFACE((#949)); +#951=IFCPOLYLOOP((#169,#224,#222,#171)); +#952=IFCFACEOUTERBOUND(#951,.T.); +#953=IFCFACE((#952)); +#954=IFCPOLYLOOP((#223,#225,#170,#172)); +#955=IFCFACEOUTERBOUND(#954,.T.); +#956=IFCFACE((#955)); +#957=IFCPOLYLOOP((#168,#226,#224,#169)); +#958=IFCFACEOUTERBOUND(#957,.T.); +#959=IFCFACE((#958)); +#960=IFCPOLYLOOP((#225,#227,#168,#170)); +#961=IFCFACEOUTERBOUND(#960,.T.); +#962=IFCFACE((#961)); +#963=IFCPOLYLOOP((#167,#100,#226,#168)); +#964=IFCFACEOUTERBOUND(#963,.T.); +#965=IFCFACE((#964)); +#966=IFCPOLYLOOP((#227,#100,#167,#168)); +#967=IFCFACEOUTERBOUND(#966,.T.); +#968=IFCFACE((#967)); +#969=IFCPOLYLOOP((#219,#173,#220,#99)); +#970=IFCFACEOUTERBOUND(#969,.T.); +#971=IFCFACE((#970)); +#972=IFCPOLYLOOP((#221,#174,#219,#99)); +#973=IFCFACEOUTERBOUND(#972,.T.); +#974=IFCFACE((#973)); +#975=IFCPOLYLOOP((#99,#220,#235,#237)); +#976=IFCFACEOUTERBOUND(#975,.T.); +#977=IFCFACE((#976)); +#978=IFCPOLYLOOP((#236,#221,#99,#237)); +#979=IFCFACEOUTERBOUND(#978,.T.); +#980=IFCFACE((#979)); +#981=IFCPOLYLOOP((#100,#228,#229,#226)); +#982=IFCFACEOUTERBOUND(#981,.T.); +#983=IFCFACE((#982)); +#984=IFCPOLYLOOP((#230,#228,#100,#227)); +#985=IFCFACEOUTERBOUND(#984,.T.); +#986=IFCFACE((#985)); +#987=IFCPOLYLOOP((#226,#229,#231,#224)); +#988=IFCFACEOUTERBOUND(#987,.T.); +#989=IFCFACE((#988)); +#990=IFCPOLYLOOP((#232,#230,#227,#225)); +#991=IFCFACEOUTERBOUND(#990,.T.); +#992=IFCFACE((#991)); +#993=IFCPOLYLOOP((#224,#231,#233,#222)); +#994=IFCFACEOUTERBOUND(#993,.T.); +#995=IFCFACE((#994)); +#996=IFCPOLYLOOP((#234,#232,#225,#223)); +#997=IFCFACEOUTERBOUND(#996,.T.); +#998=IFCFACE((#997)); +#999=IFCPOLYLOOP((#222,#233,#235,#220)); +#1000=IFCFACEOUTERBOUND(#999,.T.); +#1001=IFCFACE((#1000)); +#1002=IFCPOLYLOOP((#236,#234,#223,#221)); +#1003=IFCFACEOUTERBOUND(#1002,.T.); +#1004=IFCFACE((#1003)); +#1005=IFCPOLYLOOP((#228,#233,#231,#229)); +#1006=IFCFACEOUTERBOUND(#1005,.T.); +#1007=IFCFACE((#1006)); +#1008=IFCPOLYLOOP((#232,#234,#228,#230)); +#1009=IFCFACEOUTERBOUND(#1008,.T.); +#1010=IFCFACE((#1009)); +#1011=IFCPOLYLOOP((#228,#237,#235,#233)); +#1012=IFCFACEOUTERBOUND(#1011,.T.); +#1013=IFCFACE((#1012)); +#1014=IFCPOLYLOOP((#236,#237,#228,#234)); +#1015=IFCFACEOUTERBOUND(#1014,.T.); +#1016=IFCFACE((#1015)); +#1017=IFCPOLYLOOP((#168,#169,#193,#206)); +#1018=IFCFACEOUTERBOUND(#1017,.T.); +#1019=IFCFACE((#1018)); +#1020=IFCPOLYLOOP((#194,#170,#168,#206)); +#1021=IFCFACEOUTERBOUND(#1020,.T.); +#1022=IFCFACE((#1021)); +#1023=IFCPOLYLOOP((#169,#171,#240,#193)); +#1024=IFCFACEOUTERBOUND(#1023,.T.); +#1025=IFCFACE((#1024)); +#1026=IFCPOLYLOOP((#241,#172,#170,#194)); +#1027=IFCFACEOUTERBOUND(#1026,.T.); +#1028=IFCFACE((#1027)); +#1029=IFCPOLYLOOP((#171,#173,#242,#240)); +#1030=IFCFACEOUTERBOUND(#1029,.T.); +#1031=IFCFACE((#1030)); +#1032=IFCPOLYLOOP((#243,#174,#172,#241)); +#1033=IFCFACEOUTERBOUND(#1032,.T.); +#1034=IFCFACE((#1033)); +#1035=IFCPOLYLOOP((#173,#216,#195,#242)); +#1036=IFCFACEOUTERBOUND(#1035,.T.); +#1037=IFCFACE((#1036)); +#1038=IFCPOLYLOOP((#196,#217,#174,#243)); +#1039=IFCFACEOUTERBOUND(#1038,.T.); +#1040=IFCFACE((#1039)); +#1041=IFCPOLYLOOP((#110,#238,#242,#195)); +#1042=IFCFACEOUTERBOUND(#1041,.T.); +#1043=IFCFACE((#1042)); +#1044=IFCPOLYLOOP((#243,#239,#111,#196)); +#1045=IFCFACEOUTERBOUND(#1044,.T.); +#1046=IFCFACE((#1045)); +#1047=IFCPOLYLOOP((#238,#244,#240,#242)); +#1048=IFCFACEOUTERBOUND(#1047,.T.); +#1049=IFCFACE((#1048)); +#1050=IFCPOLYLOOP((#241,#245,#239,#243)); +#1051=IFCFACEOUTERBOUND(#1050,.T.); +#1052=IFCFACE((#1051)); +#1053=IFCPOLYLOOP((#108,#193,#240,#244)); +#1054=IFCFACEOUTERBOUND(#1053,.T.); +#1055=IFCFACE((#1054)); +#1056=IFCPOLYLOOP((#241,#194,#109,#245)); +#1057=IFCFACEOUTERBOUND(#1056,.T.); +#1058=IFCFACE((#1057)); +#1059=IFCPOLYLOOP((#160,#159,#101,#251)); +#1060=IFCFACEOUTERBOUND(#1059,.T.); +#1061=IFCFACE((#1060)); +#1062=IFCPOLYLOOP((#101,#159,#161,#252)); +#1063=IFCFACEOUTERBOUND(#1062,.T.); +#1064=IFCFACE((#1063)); +#1065=IFCPOLYLOOP((#162,#160,#251,#249)); +#1066=IFCFACEOUTERBOUND(#1065,.T.); +#1067=IFCFACE((#1066)); +#1068=IFCPOLYLOOP((#252,#161,#163,#250)); +#1069=IFCFACEOUTERBOUND(#1068,.T.); +#1070=IFCFACE((#1069)); +#1071=IFCPOLYLOOP((#164,#162,#249,#247)); +#1072=IFCFACEOUTERBOUND(#1071,.T.); +#1073=IFCFACE((#1072)); +#1074=IFCPOLYLOOP((#250,#163,#165,#248)); +#1075=IFCFACEOUTERBOUND(#1074,.T.); +#1076=IFCFACE((#1075)); +#1077=IFCPOLYLOOP((#166,#164,#247,#246)); +#1078=IFCFACEOUTERBOUND(#1077,.T.); +#1079=IFCFACE((#1078)); +#1080=IFCPOLYLOOP((#248,#165,#166,#246)); +#1081=IFCFACEOUTERBOUND(#1080,.T.); +#1082=IFCFACE((#1081)); +#1083=IFCPOLYLOOP((#246,#247,#258,#260)); +#1084=IFCFACEOUTERBOUND(#1083,.T.); +#1085=IFCFACE((#1084)); +#1086=IFCPOLYLOOP((#259,#248,#246,#260)); +#1087=IFCFACEOUTERBOUND(#1086,.T.); +#1088=IFCFACE((#1087)); +#1089=IFCPOLYLOOP((#247,#249,#256,#258)); +#1090=IFCFACEOUTERBOUND(#1089,.T.); +#1091=IFCFACE((#1090)); +#1092=IFCPOLYLOOP((#257,#250,#248,#259)); +#1093=IFCFACEOUTERBOUND(#1092,.T.); +#1094=IFCFACE((#1093)); +#1095=IFCPOLYLOOP((#249,#251,#254,#256)); +#1096=IFCFACEOUTERBOUND(#1095,.T.); +#1097=IFCFACE((#1096)); +#1098=IFCPOLYLOOP((#255,#252,#250,#257)); +#1099=IFCFACEOUTERBOUND(#1098,.T.); +#1100=IFCFACE((#1099)); +#1101=IFCPOLYLOOP((#251,#101,#253,#254)); +#1102=IFCFACEOUTERBOUND(#1101,.T.); +#1103=IFCFACE((#1102)); +#1104=IFCPOLYLOOP((#253,#101,#252,#255)); +#1105=IFCFACEOUTERBOUND(#1104,.T.); +#1106=IFCFACE((#1105)); +#1107=IFCPOLYLOOP((#253,#260,#258,#254)); +#1108=IFCFACEOUTERBOUND(#1107,.T.); +#1109=IFCFACE((#1108)); +#1110=IFCPOLYLOOP((#259,#260,#253,#255)); +#1111=IFCFACEOUTERBOUND(#1110,.T.); +#1112=IFCFACE((#1111)); +#1113=IFCPOLYLOOP((#254,#258,#256)); +#1114=IFCFACEOUTERBOUND(#1113,.T.); +#1115=IFCFACE((#1114)); +#1116=IFCPOLYLOOP((#257,#259,#255)); +#1117=IFCFACEOUTERBOUND(#1116,.T.); +#1118=IFCFACE((#1117)); +#1119=IFCPOLYLOOP((#212,#210,#263,#261)); +#1120=IFCFACEOUTERBOUND(#1119,.T.); +#1121=IFCFACE((#1120)); +#1122=IFCPOLYLOOP((#264,#211,#213,#262)); +#1123=IFCFACEOUTERBOUND(#1122,.T.); +#1124=IFCFACE((#1123)); +#1125=IFCPOLYLOOP((#141,#212,#261,#283)); +#1126=IFCFACEOUTERBOUND(#1125,.T.); +#1127=IFCFACE((#1126)); +#1128=IFCPOLYLOOP((#262,#213,#142,#284)); +#1129=IFCFACEOUTERBOUND(#1128,.T.); +#1130=IFCFACE((#1129)); +#1131=IFCPOLYLOOP((#139,#141,#283,#285)); +#1132=IFCFACEOUTERBOUND(#1131,.T.); +#1133=IFCFACE((#1132)); +#1134=IFCPOLYLOOP((#284,#142,#140,#286)); +#1135=IFCFACEOUTERBOUND(#1134,.T.); +#1136=IFCFACE((#1135)); +#1137=IFCPOLYLOOP((#210,#143,#281,#263)); +#1138=IFCFACEOUTERBOUND(#1137,.T.); +#1139=IFCFACE((#1138)); +#1140=IFCPOLYLOOP((#282,#144,#211,#264)); +#1141=IFCFACEOUTERBOUND(#1140,.T.); +#1142=IFCFACE((#1141)); +#1143=IFCPOLYLOOP((#143,#145,#279,#281)); +#1144=IFCFACEOUTERBOUND(#1143,.T.); +#1145=IFCFACE((#1144)); +#1146=IFCPOLYLOOP((#280,#146,#144,#282)); +#1147=IFCFACEOUTERBOUND(#1146,.T.); +#1148=IFCFACE((#1147)); +#1149=IFCPOLYLOOP((#145,#147,#277,#279)); +#1150=IFCFACEOUTERBOUND(#1149,.T.); +#1151=IFCFACE((#1150)); +#1152=IFCPOLYLOOP((#278,#148,#146,#280)); +#1153=IFCFACEOUTERBOUND(#1152,.T.); +#1154=IFCFACE((#1153)); +#1155=IFCPOLYLOOP((#147,#149,#275,#277)); +#1156=IFCFACEOUTERBOUND(#1155,.T.); +#1157=IFCFACE((#1156)); +#1158=IFCPOLYLOOP((#276,#150,#148,#278)); +#1159=IFCFACEOUTERBOUND(#1158,.T.); +#1160=IFCFACE((#1159)); +#1161=IFCPOLYLOOP((#149,#151,#273,#275)); +#1162=IFCFACEOUTERBOUND(#1161,.T.); +#1163=IFCFACE((#1162)); +#1164=IFCPOLYLOOP((#274,#152,#150,#276)); +#1165=IFCFACEOUTERBOUND(#1164,.T.); +#1166=IFCFACE((#1165)); +#1167=IFCPOLYLOOP((#151,#153,#271,#273)); +#1168=IFCFACEOUTERBOUND(#1167,.T.); +#1169=IFCFACE((#1168)); +#1170=IFCPOLYLOOP((#272,#154,#152,#274)); +#1171=IFCFACEOUTERBOUND(#1170,.T.); +#1172=IFCFACE((#1171)); +#1173=IFCPOLYLOOP((#153,#155,#269,#271)); +#1174=IFCFACEOUTERBOUND(#1173,.T.); +#1175=IFCFACE((#1174)); +#1176=IFCPOLYLOOP((#270,#156,#154,#272)); +#1177=IFCFACEOUTERBOUND(#1176,.T.); +#1178=IFCFACE((#1177)); +#1179=IFCPOLYLOOP((#155,#208,#265,#269)); +#1180=IFCFACEOUTERBOUND(#1179,.T.); +#1181=IFCFACE((#1180)); +#1182=IFCPOLYLOOP((#266,#209,#156,#270)); +#1183=IFCFACEOUTERBOUND(#1182,.T.); +#1184=IFCFACE((#1183)); +#1185=IFCPOLYLOOP((#208,#157,#267,#265)); +#1186=IFCFACEOUTERBOUND(#1185,.T.); +#1187=IFCFACE((#1186)); +#1188=IFCPOLYLOOP((#268,#158,#209,#266)); +#1189=IFCFACEOUTERBOUND(#1188,.T.); +#1190=IFCFACE((#1189)); +#1191=IFCPOLYLOOP((#157,#139,#285,#267)); +#1192=IFCFACEOUTERBOUND(#1191,.T.); +#1193=IFCFACE((#1192)); +#1194=IFCPOLYLOOP((#286,#140,#158,#268)); +#1195=IFCFACEOUTERBOUND(#1194,.T.); +#1196=IFCFACE((#1195)); +#1197=IFCPOLYLOOP((#267,#285,#287,#305)); +#1198=IFCFACEOUTERBOUND(#1197,.T.); +#1199=IFCFACE((#1198)); +#1200=IFCPOLYLOOP((#288,#286,#268,#306)); +#1201=IFCFACEOUTERBOUND(#1200,.T.); +#1202=IFCFACE((#1201)); +#1203=IFCPOLYLOOP((#265,#267,#305,#307)); +#1204=IFCFACEOUTERBOUND(#1203,.T.); +#1205=IFCFACE((#1204)); +#1206=IFCPOLYLOOP((#306,#268,#266,#308)); +#1207=IFCFACEOUTERBOUND(#1206,.T.); +#1208=IFCFACE((#1207)); +#1209=IFCPOLYLOOP((#269,#265,#307,#303)); +#1210=IFCFACEOUTERBOUND(#1209,.T.); +#1211=IFCFACE((#1210)); +#1212=IFCPOLYLOOP((#308,#266,#270,#304)); +#1213=IFCFACEOUTERBOUND(#1212,.T.); +#1214=IFCFACE((#1213)); +#1215=IFCPOLYLOOP((#271,#269,#303,#301)); +#1216=IFCFACEOUTERBOUND(#1215,.T.); +#1217=IFCFACE((#1216)); +#1218=IFCPOLYLOOP((#304,#270,#272,#302)); +#1219=IFCFACEOUTERBOUND(#1218,.T.); +#1220=IFCFACE((#1219)); +#1221=IFCPOLYLOOP((#273,#271,#301,#299)); +#1222=IFCFACEOUTERBOUND(#1221,.T.); +#1223=IFCFACE((#1222)); +#1224=IFCPOLYLOOP((#302,#272,#274,#300)); +#1225=IFCFACEOUTERBOUND(#1224,.T.); +#1226=IFCFACE((#1225)); +#1227=IFCPOLYLOOP((#275,#273,#299,#297)); +#1228=IFCFACEOUTERBOUND(#1227,.T.); +#1229=IFCFACE((#1228)); +#1230=IFCPOLYLOOP((#300,#274,#276,#298)); +#1231=IFCFACEOUTERBOUND(#1230,.T.); +#1232=IFCFACE((#1231)); +#1233=IFCPOLYLOOP((#277,#275,#297,#295)); +#1234=IFCFACEOUTERBOUND(#1233,.T.); +#1235=IFCFACE((#1234)); +#1236=IFCPOLYLOOP((#298,#276,#278,#296)); +#1237=IFCFACEOUTERBOUND(#1236,.T.); +#1238=IFCFACE((#1237)); +#1239=IFCPOLYLOOP((#279,#277,#295,#293)); +#1240=IFCFACEOUTERBOUND(#1239,.T.); +#1241=IFCFACE((#1240)); +#1242=IFCPOLYLOOP((#296,#278,#280,#294)); +#1243=IFCFACEOUTERBOUND(#1242,.T.); +#1244=IFCFACE((#1243)); +#1245=IFCPOLYLOOP((#281,#279,#293,#291)); +#1246=IFCFACEOUTERBOUND(#1245,.T.); +#1247=IFCFACE((#1246)); +#1248=IFCPOLYLOOP((#294,#280,#282,#292)); +#1249=IFCFACEOUTERBOUND(#1248,.T.); +#1250=IFCFACE((#1249)); +#1251=IFCPOLYLOOP((#263,#281,#291,#309)); +#1252=IFCFACEOUTERBOUND(#1251,.T.); +#1253=IFCFACE((#1252)); +#1254=IFCPOLYLOOP((#292,#282,#264,#310)); +#1255=IFCFACEOUTERBOUND(#1254,.T.); +#1256=IFCFACE((#1255)); +#1257=IFCPOLYLOOP((#285,#283,#289,#287)); +#1258=IFCFACEOUTERBOUND(#1257,.T.); +#1259=IFCFACE((#1258)); +#1260=IFCPOLYLOOP((#290,#284,#286,#288)); +#1261=IFCFACEOUTERBOUND(#1260,.T.); +#1262=IFCFACE((#1261)); +#1263=IFCPOLYLOOP((#283,#261,#311,#289)); +#1264=IFCFACEOUTERBOUND(#1263,.T.); +#1265=IFCFACE((#1264)); +#1266=IFCPOLYLOOP((#312,#262,#284,#290)); +#1267=IFCFACEOUTERBOUND(#1266,.T.); +#1268=IFCFACE((#1267)); +#1269=IFCPOLYLOOP((#261,#263,#309,#311)); +#1270=IFCFACEOUTERBOUND(#1269,.T.); +#1271=IFCFACE((#1270)); +#1272=IFCPOLYLOOP((#310,#264,#262,#312)); +#1273=IFCFACEOUTERBOUND(#1272,.T.); +#1274=IFCFACE((#1273)); +#1275=IFCPOLYLOOP((#96,#137,#313,#102)); +#1276=IFCFACEOUTERBOUND(#1275,.T.); +#1277=IFCFACE((#1276)); +#1278=IFCPOLYLOOP((#314,#138,#96,#102)); +#1279=IFCFACEOUTERBOUND(#1278,.T.); +#1280=IFCFACE((#1279)); +#1281=IFCPOLYLOOP((#137,#135,#315,#313)); +#1282=IFCFACEOUTERBOUND(#1281,.T.); +#1283=IFCFACE((#1282)); +#1284=IFCPOLYLOOP((#316,#136,#138,#314)); +#1285=IFCFACEOUTERBOUND(#1284,.T.); +#1286=IFCFACE((#1285)); +#1287=IFCPOLYLOOP((#135,#133,#317,#315)); +#1288=IFCFACEOUTERBOUND(#1287,.T.); +#1289=IFCFACE((#1288)); +#1290=IFCPOLYLOOP((#318,#134,#136,#316)); +#1291=IFCFACEOUTERBOUND(#1290,.T.); +#1292=IFCFACE((#1291)); +#1293=IFCPOLYLOOP((#133,#131,#319,#317)); +#1294=IFCFACEOUTERBOUND(#1293,.T.); +#1295=IFCFACE((#1294)); +#1296=IFCPOLYLOOP((#320,#132,#134,#318)); +#1297=IFCFACEOUTERBOUND(#1296,.T.); +#1298=IFCFACE((#1297)); +#1299=IFCPOLYLOOP((#131,#129,#321,#319)); +#1300=IFCFACEOUTERBOUND(#1299,.T.); +#1301=IFCFACE((#1300)); +#1302=IFCPOLYLOOP((#322,#130,#132,#320)); +#1303=IFCFACEOUTERBOUND(#1302,.T.); +#1304=IFCFACE((#1303)); +#1305=IFCPOLYLOOP((#129,#127,#323,#321)); +#1306=IFCFACEOUTERBOUND(#1305,.T.); +#1307=IFCFACE((#1306)); +#1308=IFCPOLYLOOP((#324,#128,#130,#322)); +#1309=IFCFACEOUTERBOUND(#1308,.T.); +#1310=IFCFACE((#1309)); +#1311=IFCPOLYLOOP((#127,#125,#325,#323)); +#1312=IFCFACEOUTERBOUND(#1311,.T.); +#1313=IFCFACE((#1312)); +#1314=IFCPOLYLOOP((#326,#126,#128,#324)); +#1315=IFCFACEOUTERBOUND(#1314,.T.); +#1316=IFCFACE((#1315)); +#1317=IFCPOLYLOOP((#125,#123,#327,#325)); +#1318=IFCFACEOUTERBOUND(#1317,.T.); +#1319=IFCFACE((#1318)); +#1320=IFCPOLYLOOP((#328,#124,#126,#326)); +#1321=IFCFACEOUTERBOUND(#1320,.T.); +#1322=IFCFACE((#1321)); +#1323=IFCPOLYLOOP((#123,#121,#329,#327)); +#1324=IFCFACEOUTERBOUND(#1323,.T.); +#1325=IFCFACE((#1324)); +#1326=IFCPOLYLOOP((#330,#122,#124,#328)); +#1327=IFCFACEOUTERBOUND(#1326,.T.); +#1328=IFCFACE((#1327)); +#1329=IFCPOLYLOOP((#337,#338,#357,#367)); +#1330=IFCFACEOUTERBOUND(#1329,.T.); +#1331=IFCFACE((#1330)); +#1332=IFCPOLYLOOP((#358,#338,#337,#368)); +#1333=IFCFACEOUTERBOUND(#1332,.T.); +#1334=IFCFACE((#1333)); +#1335=IFCPOLYLOOP((#336,#337,#367,#365)); +#1336=IFCFACEOUTERBOUND(#1335,.T.); +#1337=IFCFACE((#1336)); +#1338=IFCPOLYLOOP((#368,#337,#336,#366)); +#1339=IFCFACEOUTERBOUND(#1338,.T.); +#1340=IFCFACE((#1339)); +#1341=IFCPOLYLOOP((#335,#336,#365,#369)); +#1342=IFCFACEOUTERBOUND(#1341,.T.); +#1343=IFCFACE((#1342)); +#1344=IFCPOLYLOOP((#366,#336,#335,#370)); +#1345=IFCFACEOUTERBOUND(#1344,.T.); +#1346=IFCFACE((#1345)); +#1347=IFCPOLYLOOP((#118,#120,#335,#369)); +#1348=IFCFACEOUTERBOUND(#1347,.T.); +#1349=IFCFACE((#1348)); +#1350=IFCPOLYLOOP((#335,#120,#119,#370)); +#1351=IFCFACEOUTERBOUND(#1350,.T.); +#1352=IFCFACE((#1351)); +#1353=IFCPOLYLOOP((#116,#118,#369,#363)); +#1354=IFCFACEOUTERBOUND(#1353,.T.); +#1355=IFCFACE((#1354)); +#1356=IFCPOLYLOOP((#370,#119,#117,#364)); +#1357=IFCFACEOUTERBOUND(#1356,.T.); +#1358=IFCFACE((#1357)); +#1359=IFCPOLYLOOP((#114,#116,#363,#359)); +#1360=IFCFACEOUTERBOUND(#1359,.T.); +#1361=IFCFACE((#1360)); +#1362=IFCPOLYLOOP((#364,#117,#115,#360)); +#1363=IFCFACEOUTERBOUND(#1362,.T.); +#1364=IFCFACE((#1363)); +#1365=IFCPOLYLOOP((#112,#114,#359,#361)); +#1366=IFCFACEOUTERBOUND(#1365,.T.); +#1367=IFCFACE((#1366)); +#1368=IFCPOLYLOOP((#360,#115,#113,#362)); +#1369=IFCFACEOUTERBOUND(#1368,.T.); +#1370=IFCFACE((#1369)); +#1371=IFCPOLYLOOP((#359,#365,#367,#361)); +#1372=IFCFACEOUTERBOUND(#1371,.T.); +#1373=IFCFACE((#1372)); +#1374=IFCPOLYLOOP((#368,#366,#360,#362)); +#1375=IFCFACEOUTERBOUND(#1374,.T.); +#1376=IFCFACE((#1375)); +#1377=IFCPOLYLOOP((#359,#363,#369,#365)); +#1378=IFCFACEOUTERBOUND(#1377,.T.); +#1379=IFCFACE((#1378)); +#1380=IFCPOLYLOOP((#370,#364,#360,#366)); +#1381=IFCFACEOUTERBOUND(#1380,.T.); +#1382=IFCFACE((#1381)); +#1383=IFCPOLYLOOP((#355,#361,#367,#357)); +#1384=IFCFACEOUTERBOUND(#1383,.T.); +#1385=IFCFACE((#1384)); +#1386=IFCPOLYLOOP((#368,#362,#356,#358)); +#1387=IFCFACEOUTERBOUND(#1386,.T.); +#1388=IFCFACE((#1387)); +#1389=IFCPOLYLOOP((#110,#112,#361,#355)); +#1390=IFCFACEOUTERBOUND(#1389,.T.); +#1391=IFCFACE((#1390)); +#1392=IFCPOLYLOOP((#362,#113,#111,#356)); +#1393=IFCFACEOUTERBOUND(#1392,.T.); +#1394=IFCFACE((#1393)); +#1395=IFCPOLYLOOP((#238,#371,#373,#244)); +#1396=IFCFACEOUTERBOUND(#1395,.T.); +#1397=IFCFACE((#1396)); +#1398=IFCPOLYLOOP((#374,#372,#239,#245)); +#1399=IFCFACEOUTERBOUND(#1398,.T.); +#1400=IFCFACE((#1399)); +#1401=IFCPOLYLOOP((#110,#355,#371,#238)); +#1402=IFCFACEOUTERBOUND(#1401,.T.); +#1403=IFCFACE((#1402)); +#1404=IFCPOLYLOOP((#372,#356,#111,#239)); +#1405=IFCFACEOUTERBOUND(#1404,.T.); +#1406=IFCFACE((#1405)); +#1407=IFCPOLYLOOP((#108,#244,#373,#375)); +#1408=IFCFACEOUTERBOUND(#1407,.T.); +#1409=IFCFACE((#1408)); +#1410=IFCPOLYLOOP((#374,#245,#109,#376)); +#1411=IFCFACEOUTERBOUND(#1410,.T.); +#1412=IFCFACE((#1411)); +#1413=IFCPOLYLOOP((#108,#375,#329,#121)); +#1414=IFCFACEOUTERBOUND(#1413,.T.); +#1415=IFCFACE((#1414)); +#1416=IFCPOLYLOOP((#330,#376,#109,#122)); +#1417=IFCFACEOUTERBOUND(#1416,.T.); +#1418=IFCFACE((#1417)); +#1419=IFCPOLYLOOP((#106,#353,#381,#333)); +#1420=IFCFACEOUTERBOUND(#1419,.T.); +#1421=IFCFACE((#1420)); +#1422=IFCPOLYLOOP((#382,#354,#106,#333)); +#1423=IFCFACEOUTERBOUND(#1422,.T.); +#1424=IFCFACE((#1423)); +#1425=IFCPOLYLOOP((#333,#381,#379,#107)); +#1426=IFCFACEOUTERBOUND(#1425,.T.); +#1427=IFCFACE((#1426)); +#1428=IFCPOLYLOOP((#380,#382,#333,#107)); +#1429=IFCFACEOUTERBOUND(#1428,.T.); +#1430=IFCFACE((#1429)); +#1431=IFCPOLYLOOP((#107,#379,#377,#334)); +#1432=IFCFACEOUTERBOUND(#1431,.T.); +#1433=IFCFACE((#1432)); +#1434=IFCPOLYLOOP((#378,#380,#107,#334)); +#1435=IFCFACEOUTERBOUND(#1434,.T.); +#1436=IFCFACE((#1435)); +#1437=IFCPOLYLOOP((#334,#377,#357,#338)); +#1438=IFCFACEOUTERBOUND(#1437,.T.); +#1439=IFCFACE((#1438)); +#1440=IFCPOLYLOOP((#358,#378,#334,#338)); +#1441=IFCFACEOUTERBOUND(#1440,.T.); +#1442=IFCFACE((#1441)); +#1443=IFCPOLYLOOP((#355,#357,#377,#371)); +#1444=IFCFACEOUTERBOUND(#1443,.T.); +#1445=IFCFACE((#1444)); +#1446=IFCPOLYLOOP((#378,#358,#356,#372)); +#1447=IFCFACEOUTERBOUND(#1446,.T.); +#1448=IFCFACE((#1447)); +#1449=IFCPOLYLOOP((#325,#327,#347,#339)); +#1450=IFCFACEOUTERBOUND(#1449,.T.); +#1451=IFCFACE((#1450)); +#1452=IFCPOLYLOOP((#348,#328,#326,#340)); +#1453=IFCFACEOUTERBOUND(#1452,.T.); +#1454=IFCFACE((#1453)); +#1455=IFCPOLYLOOP((#105,#345,#353,#106)); +#1456=IFCFACEOUTERBOUND(#1455,.T.); +#1457=IFCFACE((#1456)); +#1458=IFCPOLYLOOP((#354,#346,#105,#106)); +#1459=IFCFACEOUTERBOUND(#1458,.T.); +#1460=IFCFACE((#1459)); +#1461=IFCPOLYLOOP((#331,#387,#385,#332)); +#1462=IFCFACEOUTERBOUND(#1461,.T.); +#1463=IFCFACE((#1462)); +#1464=IFCPOLYLOOP((#386,#388,#331,#332)); +#1465=IFCFACEOUTERBOUND(#1464,.T.); +#1466=IFCFACE((#1465)); +#1467=IFCPOLYLOOP((#332,#385,#383,#104)); +#1468=IFCFACEOUTERBOUND(#1467,.T.); +#1469=IFCFACE((#1468)); +#1470=IFCPOLYLOOP((#384,#386,#332,#104)); +#1471=IFCFACEOUTERBOUND(#1470,.T.); +#1472=IFCFACE((#1471)); +#1473=IFCPOLYLOOP((#104,#383,#345,#105)); +#1474=IFCFACEOUTERBOUND(#1473,.T.); +#1475=IFCFACE((#1474)); +#1476=IFCPOLYLOOP((#346,#384,#104,#105)); +#1477=IFCFACEOUTERBOUND(#1476,.T.); +#1478=IFCFACE((#1477)); +#1479=IFCPOLYLOOP((#321,#323,#391,#393)); +#1480=IFCFACEOUTERBOUND(#1479,.T.); +#1481=IFCFACE((#1480)); +#1482=IFCPOLYLOOP((#392,#324,#322,#394)); +#1483=IFCFACEOUTERBOUND(#1482,.T.); +#1484=IFCFACE((#1483)); +#1485=IFCPOLYLOOP((#393,#391,#397,#395)); +#1486=IFCFACEOUTERBOUND(#1485,.T.); +#1487=IFCFACE((#1486)); +#1488=IFCPOLYLOOP((#398,#392,#394,#396)); +#1489=IFCFACEOUTERBOUND(#1488,.T.); +#1490=IFCFACE((#1489)); +#1491=IFCPOLYLOOP((#395,#397,#399,#401)); +#1492=IFCFACEOUTERBOUND(#1491,.T.); +#1493=IFCFACE((#1492)); +#1494=IFCPOLYLOOP((#400,#398,#396,#402)); +#1495=IFCFACEOUTERBOUND(#1494,.T.); +#1496=IFCFACE((#1495)); +#1497=IFCPOLYLOOP((#401,#399,#405,#403)); +#1498=IFCFACEOUTERBOUND(#1497,.T.); +#1499=IFCFACE((#1498)); +#1500=IFCPOLYLOOP((#406,#400,#402,#404)); +#1501=IFCFACEOUTERBOUND(#1500,.T.); +#1502=IFCFACE((#1501)); +#1503=IFCPOLYLOOP((#343,#407,#403,#405)); +#1504=IFCFACEOUTERBOUND(#1503,.T.); +#1505=IFCFACE((#1504)); +#1506=IFCPOLYLOOP((#404,#408,#344,#406)); +#1507=IFCFACEOUTERBOUND(#1506,.T.); +#1508=IFCFACE((#1507)); +#1509=IFCPOLYLOOP((#345,#383,#403,#407)); +#1510=IFCFACEOUTERBOUND(#1509,.T.); +#1511=IFCFACE((#1510)); +#1512=IFCPOLYLOOP((#404,#384,#346,#408)); +#1513=IFCFACEOUTERBOUND(#1512,.T.); +#1514=IFCFACE((#1513)); +#1515=IFCPOLYLOOP((#383,#385,#401,#403)); +#1516=IFCFACEOUTERBOUND(#1515,.T.); +#1517=IFCFACE((#1516)); +#1518=IFCPOLYLOOP((#402,#386,#384,#404)); +#1519=IFCFACEOUTERBOUND(#1518,.T.); +#1520=IFCFACE((#1519)); +#1521=IFCPOLYLOOP((#385,#387,#395,#401)); +#1522=IFCFACEOUTERBOUND(#1521,.T.); +#1523=IFCFACE((#1522)); +#1524=IFCPOLYLOOP((#396,#388,#386,#402)); +#1525=IFCFACEOUTERBOUND(#1524,.T.); +#1526=IFCFACE((#1525)); +#1527=IFCPOLYLOOP((#387,#389,#393,#395)); +#1528=IFCFACEOUTERBOUND(#1527,.T.); +#1529=IFCFACE((#1528)); +#1530=IFCPOLYLOOP((#394,#390,#388,#396)); +#1531=IFCFACEOUTERBOUND(#1530,.T.); +#1532=IFCFACE((#1531)); +#1533=IFCPOLYLOOP((#319,#321,#393,#389)); +#1534=IFCFACEOUTERBOUND(#1533,.T.); +#1535=IFCFACE((#1534)); +#1536=IFCPOLYLOOP((#394,#322,#320,#390)); +#1537=IFCFACEOUTERBOUND(#1536,.T.); +#1538=IFCFACE((#1537)); +#1539=IFCPOLYLOOP((#103,#389,#387,#331)); +#1540=IFCFACEOUTERBOUND(#1539,.T.); +#1541=IFCFACE((#1540)); +#1542=IFCPOLYLOOP((#388,#390,#103,#331)); +#1543=IFCFACEOUTERBOUND(#1542,.T.); +#1544=IFCFACE((#1543)); +#1545=IFCPOLYLOOP((#313,#315,#317,#319)); +#1546=IFCFACEOUTERBOUND(#1545,.T.); +#1547=IFCFACE((#1546)); +#1548=IFCPOLYLOOP((#318,#316,#314,#320)); +#1549=IFCFACEOUTERBOUND(#1548,.T.); +#1550=IFCFACE((#1549)); +#1551=IFCPOLYLOOP((#313,#319,#389,#103)); +#1552=IFCFACEOUTERBOUND(#1551,.T.); +#1553=IFCFACE((#1552)); +#1554=IFCPOLYLOOP((#390,#320,#314,#103)); +#1555=IFCFACEOUTERBOUND(#1554,.T.); +#1556=IFCFACE((#1555)); +#1557=IFCPOLYLOOP((#102,#313,#103)); +#1558=IFCFACEOUTERBOUND(#1557,.T.); +#1559=IFCFACE((#1558)); +#1560=IFCPOLYLOOP((#103,#314,#102)); +#1561=IFCFACEOUTERBOUND(#1560,.T.); +#1562=IFCFACE((#1561)); +#1563=IFCPOLYLOOP((#323,#325,#339,#391)); +#1564=IFCFACEOUTERBOUND(#1563,.T.); +#1565=IFCFACE((#1564)); +#1566=IFCPOLYLOOP((#340,#326,#324,#392)); +#1567=IFCFACEOUTERBOUND(#1566,.T.); +#1568=IFCFACE((#1567)); +#1569=IFCPOLYLOOP((#339,#341,#397,#391)); +#1570=IFCFACEOUTERBOUND(#1569,.T.); +#1571=IFCFACE((#1570)); +#1572=IFCPOLYLOOP((#398,#342,#340,#392)); +#1573=IFCFACEOUTERBOUND(#1572,.T.); +#1574=IFCFACE((#1573)); +#1575=IFCPOLYLOOP((#341,#411,#399,#397)); +#1576=IFCFACEOUTERBOUND(#1575,.T.); +#1577=IFCFACE((#1576)); +#1578=IFCPOLYLOOP((#400,#412,#342,#398)); +#1579=IFCFACEOUTERBOUND(#1578,.T.); +#1580=IFCFACE((#1579)); +#1581=IFCPOLYLOOP((#343,#405,#399,#411)); +#1582=IFCFACEOUTERBOUND(#1581,.T.); +#1583=IFCFACE((#1582)); +#1584=IFCPOLYLOOP((#400,#406,#344,#412)); +#1585=IFCFACEOUTERBOUND(#1584,.T.); +#1586=IFCFACE((#1585)); +#1587=IFCPOLYLOOP((#377,#379,#415,#413)); +#1588=IFCFACEOUTERBOUND(#1587,.T.); +#1589=IFCFACE((#1588)); +#1590=IFCPOLYLOOP((#416,#380,#378,#414)); +#1591=IFCFACEOUTERBOUND(#1590,.T.); +#1592=IFCFACE((#1591)); +#1593=IFCPOLYLOOP((#347,#413,#415,#349)); +#1594=IFCFACEOUTERBOUND(#1593,.T.); +#1595=IFCFACE((#1594)); +#1596=IFCPOLYLOOP((#416,#414,#348,#350)); +#1597=IFCFACEOUTERBOUND(#1596,.T.); +#1598=IFCFACE((#1597)); +#1599=IFCPOLYLOOP((#327,#329,#413,#347)); +#1600=IFCFACEOUTERBOUND(#1599,.T.); +#1601=IFCFACE((#1600)); +#1602=IFCPOLYLOOP((#414,#330,#328,#348)); +#1603=IFCFACEOUTERBOUND(#1602,.T.); +#1604=IFCFACE((#1603)); +#1605=IFCPOLYLOOP((#329,#373,#371,#413)); +#1606=IFCFACEOUTERBOUND(#1605,.T.); +#1607=IFCFACE((#1606)); +#1608=IFCPOLYLOOP((#372,#374,#330,#414)); +#1609=IFCFACEOUTERBOUND(#1608,.T.); +#1610=IFCFACE((#1609)); +#1611=IFCPOLYLOOP((#371,#377,#413)); +#1612=IFCFACEOUTERBOUND(#1611,.T.); +#1613=IFCFACE((#1612)); +#1614=IFCPOLYLOOP((#414,#378,#372)); +#1615=IFCFACEOUTERBOUND(#1614,.T.); +#1616=IFCFACE((#1615)); +#1617=IFCPOLYLOOP((#329,#375,#373)); +#1618=IFCFACEOUTERBOUND(#1617,.T.); +#1619=IFCFACE((#1618)); +#1620=IFCPOLYLOOP((#374,#376,#330)); +#1621=IFCFACEOUTERBOUND(#1620,.T.); +#1622=IFCFACE((#1621)); +#1623=IFCPOLYLOOP((#343,#351,#409,#407)); +#1624=IFCFACEOUTERBOUND(#1623,.T.); +#1625=IFCFACE((#1624)); +#1626=IFCPOLYLOOP((#410,#352,#344,#408)); +#1627=IFCFACEOUTERBOUND(#1626,.T.); +#1628=IFCFACE((#1627)); +#1629=IFCPOLYLOOP((#345,#407,#409,#353)); +#1630=IFCFACEOUTERBOUND(#1629,.T.); +#1631=IFCFACE((#1630)); +#1632=IFCPOLYLOOP((#410,#408,#346,#354)); +#1633=IFCFACEOUTERBOUND(#1632,.T.); +#1634=IFCFACE((#1633)); +#1635=IFCPOLYLOOP((#349,#415,#409,#351)); +#1636=IFCFACEOUTERBOUND(#1635,.T.); +#1637=IFCFACE((#1636)); +#1638=IFCPOLYLOOP((#410,#416,#350,#352)); +#1639=IFCFACEOUTERBOUND(#1638,.T.); +#1640=IFCFACE((#1639)); +#1641=IFCPOLYLOOP((#379,#381,#409,#415)); +#1642=IFCFACEOUTERBOUND(#1641,.T.); +#1643=IFCFACE((#1642)); +#1644=IFCPOLYLOOP((#410,#382,#380,#416)); +#1645=IFCFACEOUTERBOUND(#1644,.T.); +#1646=IFCFACE((#1645)); +#1647=IFCPOLYLOOP((#353,#409,#381)); +#1648=IFCFACEOUTERBOUND(#1647,.T.); +#1649=IFCFACE((#1648)); +#1650=IFCPOLYLOOP((#382,#410,#354)); +#1651=IFCFACEOUTERBOUND(#1650,.T.); +#1652=IFCFACE((#1651)); +#1653=IFCPOLYLOOP((#429,#417,#443,#431)); +#1654=IFCFACEOUTERBOUND(#1653,.T.); +#1655=IFCFACE((#1654)); +#1656=IFCPOLYLOOP((#444,#418,#430,#432)); +#1657=IFCFACEOUTERBOUND(#1656,.T.); +#1658=IFCFACE((#1657)); +#1659=IFCPOLYLOOP((#429,#431,#433,#427)); +#1660=IFCFACEOUTERBOUND(#1659,.T.); +#1661=IFCFACE((#1660)); +#1662=IFCPOLYLOOP((#434,#432,#430,#428)); +#1663=IFCFACEOUTERBOUND(#1662,.T.); +#1664=IFCFACE((#1663)); +#1665=IFCPOLYLOOP((#427,#433,#435,#425)); +#1666=IFCFACEOUTERBOUND(#1665,.T.); +#1667=IFCFACE((#1666)); +#1668=IFCPOLYLOOP((#436,#434,#428,#426)); +#1669=IFCFACEOUTERBOUND(#1668,.T.); +#1670=IFCFACE((#1669)); +#1671=IFCPOLYLOOP((#425,#435,#437,#423)); +#1672=IFCFACEOUTERBOUND(#1671,.T.); +#1673=IFCFACE((#1672)); +#1674=IFCPOLYLOOP((#438,#436,#426,#424)); +#1675=IFCFACEOUTERBOUND(#1674,.T.); +#1676=IFCFACE((#1675)); +#1677=IFCPOLYLOOP((#423,#437,#439,#421)); +#1678=IFCFACEOUTERBOUND(#1677,.T.); +#1679=IFCFACE((#1678)); +#1680=IFCPOLYLOOP((#440,#438,#424,#422)); +#1681=IFCFACEOUTERBOUND(#1680,.T.); +#1682=IFCFACE((#1681)); +#1683=IFCPOLYLOOP((#421,#439,#441,#419)); +#1684=IFCFACEOUTERBOUND(#1683,.T.); +#1685=IFCFACE((#1684)); +#1686=IFCPOLYLOOP((#442,#440,#422,#420)); +#1687=IFCFACEOUTERBOUND(#1686,.T.); +#1688=IFCFACE((#1687)); +#1689=IFCPOLYLOOP((#439,#449,#447,#441)); +#1690=IFCFACEOUTERBOUND(#1689,.T.); +#1691=IFCFACE((#1690)); +#1692=IFCPOLYLOOP((#448,#450,#440,#442)); +#1693=IFCFACEOUTERBOUND(#1692,.T.); +#1694=IFCFACE((#1693)); +#1695=IFCPOLYLOOP((#437,#451,#449,#439)); +#1696=IFCFACEOUTERBOUND(#1695,.T.); +#1697=IFCFACE((#1696)); +#1698=IFCPOLYLOOP((#450,#452,#438,#440)); +#1699=IFCFACEOUTERBOUND(#1698,.T.); +#1700=IFCFACE((#1699)); +#1701=IFCPOLYLOOP((#435,#453,#451,#437)); +#1702=IFCFACEOUTERBOUND(#1701,.T.); +#1703=IFCFACE((#1702)); +#1704=IFCPOLYLOOP((#452,#454,#436,#438)); +#1705=IFCFACEOUTERBOUND(#1704,.T.); +#1706=IFCFACE((#1705)); +#1707=IFCPOLYLOOP((#433,#455,#453,#435)); +#1708=IFCFACEOUTERBOUND(#1707,.T.); +#1709=IFCFACE((#1708)); +#1710=IFCPOLYLOOP((#454,#456,#434,#436)); +#1711=IFCFACEOUTERBOUND(#1710,.T.); +#1712=IFCFACE((#1711)); +#1713=IFCPOLYLOOP((#431,#457,#455,#433)); +#1714=IFCFACEOUTERBOUND(#1713,.T.); +#1715=IFCFACE((#1714)); +#1716=IFCPOLYLOOP((#456,#458,#432,#434)); +#1717=IFCFACEOUTERBOUND(#1716,.T.); +#1718=IFCFACE((#1717)); +#1719=IFCPOLYLOOP((#431,#443,#445,#457)); +#1720=IFCFACEOUTERBOUND(#1719,.T.); +#1721=IFCFACE((#1720)); +#1722=IFCPOLYLOOP((#446,#444,#432,#458)); +#1723=IFCFACEOUTERBOUND(#1722,.T.); +#1724=IFCFACE((#1723)); +#1725=IFCPOLYLOOP((#347,#349,#473,#471)); +#1726=IFCFACEOUTERBOUND(#1725,.T.); +#1727=IFCFACE((#1726)); +#1728=IFCPOLYLOOP((#474,#350,#348,#472)); +#1729=IFCFACEOUTERBOUND(#1728,.T.); +#1730=IFCFACE((#1729)); +#1731=IFCPOLYLOOP((#349,#419,#441,#473)); +#1732=IFCFACEOUTERBOUND(#1731,.T.); +#1733=IFCFACE((#1732)); +#1734=IFCPOLYLOOP((#442,#420,#350,#474)); +#1735=IFCFACEOUTERBOUND(#1734,.T.); +#1736=IFCFACE((#1735)); +#1737=IFCPOLYLOOP((#339,#347,#471,#341)); +#1738=IFCFACEOUTERBOUND(#1737,.T.); +#1739=IFCFACE((#1738)); +#1740=IFCPOLYLOOP((#472,#348,#340,#342)); +#1741=IFCFACEOUTERBOUND(#1740,.T.); +#1742=IFCFACE((#1741)); +#1743=IFCPOLYLOOP((#411,#459,#443,#417)); +#1744=IFCFACEOUTERBOUND(#1743,.T.); +#1745=IFCFACE((#1744)); +#1746=IFCPOLYLOOP((#444,#460,#412,#418)); +#1747=IFCFACEOUTERBOUND(#1746,.T.); +#1748=IFCFACE((#1747)); +#1749=IFCPOLYLOOP((#441,#447,#469,#473)); +#1750=IFCFACEOUTERBOUND(#1749,.T.); +#1751=IFCFACE((#1750)); +#1752=IFCPOLYLOOP((#470,#448,#442,#474)); +#1753=IFCFACEOUTERBOUND(#1752,.T.); +#1754=IFCFACE((#1753)); +#1755=IFCPOLYLOOP((#467,#475,#473,#469)); +#1756=IFCFACEOUTERBOUND(#1755,.T.); +#1757=IFCFACE((#1756)); +#1758=IFCPOLYLOOP((#474,#476,#468,#470)); +#1759=IFCFACEOUTERBOUND(#1758,.T.); +#1760=IFCFACE((#1759)); +#1761=IFCPOLYLOOP((#463,#475,#467,#465)); +#1762=IFCFACEOUTERBOUND(#1761,.T.); +#1763=IFCFACE((#1762)); +#1764=IFCPOLYLOOP((#468,#476,#464,#466)); +#1765=IFCFACEOUTERBOUND(#1764,.T.); +#1766=IFCFACE((#1765)); +#1767=IFCPOLYLOOP((#461,#477,#475,#463)); +#1768=IFCFACEOUTERBOUND(#1767,.T.); +#1769=IFCFACE((#1768)); +#1770=IFCPOLYLOOP((#476,#478,#462,#464)); +#1771=IFCFACEOUTERBOUND(#1770,.T.); +#1772=IFCFACE((#1771)); +#1773=IFCPOLYLOOP((#459,#477,#461,#479)); +#1774=IFCFACEOUTERBOUND(#1773,.T.); +#1775=IFCFACE((#1774)); +#1776=IFCPOLYLOOP((#462,#478,#460,#480)); +#1777=IFCFACEOUTERBOUND(#1776,.T.); +#1778=IFCFACE((#1777)); +#1779=IFCPOLYLOOP((#443,#459,#479,#445)); +#1780=IFCFACEOUTERBOUND(#1779,.T.); +#1781=IFCFACE((#1780)); +#1782=IFCPOLYLOOP((#480,#460,#444,#446)); +#1783=IFCFACEOUTERBOUND(#1782,.T.); +#1784=IFCFACE((#1783)); +#1785=IFCPOLYLOOP((#341,#477,#459,#411)); +#1786=IFCFACEOUTERBOUND(#1785,.T.); +#1787=IFCFACE((#1786)); +#1788=IFCPOLYLOOP((#460,#478,#342,#412)); +#1789=IFCFACEOUTERBOUND(#1788,.T.); +#1790=IFCFACE((#1789)); +#1791=IFCPOLYLOOP((#341,#471,#475,#477)); +#1792=IFCFACEOUTERBOUND(#1791,.T.); +#1793=IFCFACE((#1792)); +#1794=IFCPOLYLOOP((#476,#472,#342,#478)); +#1795=IFCFACEOUTERBOUND(#1794,.T.); +#1796=IFCFACE((#1795)); +#1797=IFCPOLYLOOP((#471,#473,#475)); +#1798=IFCFACEOUTERBOUND(#1797,.T.); +#1799=IFCFACE((#1798)); +#1800=IFCPOLYLOOP((#476,#474,#472)); +#1801=IFCFACEOUTERBOUND(#1800,.T.); +#1802=IFCFACE((#1801)); +#1803=IFCPOLYLOOP((#445,#479,#481,#505)); +#1804=IFCFACEOUTERBOUND(#1803,.T.); +#1805=IFCFACE((#1804)); +#1806=IFCPOLYLOOP((#482,#480,#446,#506)); +#1807=IFCFACEOUTERBOUND(#1806,.T.); +#1808=IFCFACE((#1807)); +#1809=IFCPOLYLOOP((#479,#461,#491,#481)); +#1810=IFCFACEOUTERBOUND(#1809,.T.); +#1811=IFCFACE((#1810)); +#1812=IFCPOLYLOOP((#492,#462,#480,#482)); +#1813=IFCFACEOUTERBOUND(#1812,.T.); +#1814=IFCFACE((#1813)); +#1815=IFCPOLYLOOP((#461,#463,#489,#491)); +#1816=IFCFACEOUTERBOUND(#1815,.T.); +#1817=IFCFACE((#1816)); +#1818=IFCPOLYLOOP((#490,#464,#462,#492)); +#1819=IFCFACEOUTERBOUND(#1818,.T.); +#1820=IFCFACE((#1819)); +#1821=IFCPOLYLOOP((#463,#465,#487,#489)); +#1822=IFCFACEOUTERBOUND(#1821,.T.); +#1823=IFCFACE((#1822)); +#1824=IFCPOLYLOOP((#488,#466,#464,#490)); +#1825=IFCFACEOUTERBOUND(#1824,.T.); +#1826=IFCFACE((#1825)); +#1827=IFCPOLYLOOP((#465,#467,#485,#487)); +#1828=IFCFACEOUTERBOUND(#1827,.T.); +#1829=IFCFACE((#1828)); +#1830=IFCPOLYLOOP((#486,#468,#466,#488)); +#1831=IFCFACEOUTERBOUND(#1830,.T.); +#1832=IFCFACE((#1831)); +#1833=IFCPOLYLOOP((#467,#469,#483,#485)); +#1834=IFCFACEOUTERBOUND(#1833,.T.); +#1835=IFCFACE((#1834)); +#1836=IFCPOLYLOOP((#484,#470,#468,#486)); +#1837=IFCFACEOUTERBOUND(#1836,.T.); +#1838=IFCFACE((#1837)); +#1839=IFCPOLYLOOP((#469,#447,#503,#483)); +#1840=IFCFACEOUTERBOUND(#1839,.T.); +#1841=IFCFACE((#1840)); +#1842=IFCPOLYLOOP((#504,#448,#470,#484)); +#1843=IFCFACEOUTERBOUND(#1842,.T.); +#1844=IFCFACE((#1843)); +#1845=IFCPOLYLOOP((#457,#445,#505,#493)); +#1846=IFCFACEOUTERBOUND(#1845,.T.); +#1847=IFCFACE((#1846)); +#1848=IFCPOLYLOOP((#506,#446,#458,#494)); +#1849=IFCFACEOUTERBOUND(#1848,.T.); +#1850=IFCFACE((#1849)); +#1851=IFCPOLYLOOP((#455,#457,#493,#495)); +#1852=IFCFACEOUTERBOUND(#1851,.T.); +#1853=IFCFACE((#1852)); +#1854=IFCPOLYLOOP((#494,#458,#456,#496)); +#1855=IFCFACEOUTERBOUND(#1854,.T.); +#1856=IFCFACE((#1855)); +#1857=IFCPOLYLOOP((#453,#455,#495,#497)); +#1858=IFCFACEOUTERBOUND(#1857,.T.); +#1859=IFCFACE((#1858)); +#1860=IFCPOLYLOOP((#496,#456,#454,#498)); +#1861=IFCFACEOUTERBOUND(#1860,.T.); +#1862=IFCFACE((#1861)); +#1863=IFCPOLYLOOP((#451,#453,#497,#499)); +#1864=IFCFACEOUTERBOUND(#1863,.T.); +#1865=IFCFACE((#1864)); +#1866=IFCPOLYLOOP((#498,#454,#452,#500)); +#1867=IFCFACEOUTERBOUND(#1866,.T.); +#1868=IFCFACE((#1867)); +#1869=IFCPOLYLOOP((#449,#451,#499,#501)); +#1870=IFCFACEOUTERBOUND(#1869,.T.); +#1871=IFCFACE((#1870)); +#1872=IFCPOLYLOOP((#500,#452,#450,#502)); +#1873=IFCFACEOUTERBOUND(#1872,.T.); +#1874=IFCFACE((#1873)); +#1875=IFCPOLYLOOP((#447,#449,#501,#503)); +#1876=IFCFACEOUTERBOUND(#1875,.T.); +#1877=IFCFACE((#1876)); +#1878=IFCPOLYLOOP((#502,#450,#448,#504)); +#1879=IFCFACEOUTERBOUND(#1878,.T.); +#1880=IFCFACE((#1879)); +#1881=IFCPOLYLOOP((#487,#485,#509,#507)); +#1882=IFCFACEOUTERBOUND(#1881,.T.); +#1883=IFCFACE((#1882)); +#1884=IFCPOLYLOOP((#510,#486,#488,#508)); +#1885=IFCFACEOUTERBOUND(#1884,.T.); +#1886=IFCFACE((#1885)); +#1887=IFCPOLYLOOP((#507,#509,#511,#513)); +#1888=IFCFACEOUTERBOUND(#1887,.T.); +#1889=IFCFACE((#1888)); +#1890=IFCPOLYLOOP((#512,#510,#508,#514)); +#1891=IFCFACEOUTERBOUND(#1890,.T.); +#1892=IFCFACE((#1891)); +#1893=IFCPOLYLOOP((#513,#511,#517,#515)); +#1894=IFCFACEOUTERBOUND(#1893,.T.); +#1895=IFCFACE((#1894)); +#1896=IFCPOLYLOOP((#518,#512,#514,#516)); +#1897=IFCFACEOUTERBOUND(#1896,.T.); +#1898=IFCFACE((#1897)); +#1899=IFCPOLYLOOP((#515,#517,#519,#521)); +#1900=IFCFACEOUTERBOUND(#1899,.T.); +#1901=IFCFACE((#1900)); +#1902=IFCPOLYLOOP((#520,#518,#516,#522)); +#1903=IFCFACEOUTERBOUND(#1902,.T.); +#1904=IFCFACE((#1903)); +#1905=IFCPOLYLOOP((#493,#505,#515,#521)); +#1906=IFCFACEOUTERBOUND(#1905,.T.); +#1907=IFCFACE((#1906)); +#1908=IFCPOLYLOOP((#516,#506,#494,#522)); +#1909=IFCFACEOUTERBOUND(#1908,.T.); +#1910=IFCFACE((#1909)); +#1911=IFCPOLYLOOP((#481,#513,#515,#505)); +#1912=IFCFACEOUTERBOUND(#1911,.T.); +#1913=IFCFACE((#1912)); +#1914=IFCPOLYLOOP((#516,#514,#482,#506)); +#1915=IFCFACEOUTERBOUND(#1914,.T.); +#1916=IFCFACE((#1915)); +#1917=IFCPOLYLOOP((#481,#491,#507,#513)); +#1918=IFCFACEOUTERBOUND(#1917,.T.); +#1919=IFCFACE((#1918)); +#1920=IFCPOLYLOOP((#508,#492,#482,#514)); +#1921=IFCFACEOUTERBOUND(#1920,.T.); +#1922=IFCFACE((#1921)); +#1923=IFCPOLYLOOP((#487,#507,#491,#489)); +#1924=IFCFACEOUTERBOUND(#1923,.T.); +#1925=IFCFACE((#1924)); +#1926=IFCPOLYLOOP((#492,#508,#488,#490)); +#1927=IFCFACEOUTERBOUND(#1926,.T.); +#1928=IFCFACE((#1927)); +#1929=IFCPOLYLOOP((#483,#503,#509,#485)); +#1930=IFCFACEOUTERBOUND(#1929,.T.); +#1931=IFCFACE((#1930)); +#1932=IFCPOLYLOOP((#510,#504,#484,#486)); +#1933=IFCFACEOUTERBOUND(#1932,.T.); +#1934=IFCFACE((#1933)); +#1935=IFCPOLYLOOP((#501,#511,#509,#503)); +#1936=IFCFACEOUTERBOUND(#1935,.T.); +#1937=IFCFACE((#1936)); +#1938=IFCPOLYLOOP((#510,#512,#502,#504)); +#1939=IFCFACEOUTERBOUND(#1938,.T.); +#1940=IFCFACE((#1939)); +#1941=IFCPOLYLOOP((#499,#517,#511,#501)); +#1942=IFCFACEOUTERBOUND(#1941,.T.); +#1943=IFCFACE((#1942)); +#1944=IFCPOLYLOOP((#512,#518,#500,#502)); +#1945=IFCFACEOUTERBOUND(#1944,.T.); +#1946=IFCFACE((#1945)); +#1947=IFCPOLYLOOP((#497,#519,#517,#499)); +#1948=IFCFACEOUTERBOUND(#1947,.T.); +#1949=IFCFACE((#1948)); +#1950=IFCPOLYLOOP((#518,#520,#498,#500)); +#1951=IFCFACEOUTERBOUND(#1950,.T.); +#1952=IFCFACE((#1951)); +#1953=IFCPOLYLOOP((#495,#521,#519,#497)); +#1954=IFCFACEOUTERBOUND(#1953,.T.); +#1955=IFCFACE((#1954)); +#1956=IFCPOLYLOOP((#520,#522,#496,#498)); +#1957=IFCFACEOUTERBOUND(#1956,.T.); +#1958=IFCFACE((#1957)); +#1959=IFCPOLYLOOP((#493,#521,#495)); +#1960=IFCFACEOUTERBOUND(#1959,.T.); +#1961=IFCFACE((#1960)); +#1962=IFCPOLYLOOP((#496,#522,#494)); +#1963=IFCFACEOUTERBOUND(#1962,.T.); +#1964=IFCFACE((#1963)); +#1965=IFCPOLYLOOP((#421,#419,#533,#531)); +#1966=IFCFACEOUTERBOUND(#1965,.T.); +#1967=IFCFACE((#1966)); +#1968=IFCPOLYLOOP((#534,#420,#422,#532)); +#1969=IFCFACEOUTERBOUND(#1968,.T.); +#1970=IFCFACE((#1969)); +#1971=IFCPOLYLOOP((#423,#421,#531,#529)); +#1972=IFCFACEOUTERBOUND(#1971,.T.); +#1973=IFCFACE((#1972)); +#1974=IFCPOLYLOOP((#532,#422,#424,#530)); +#1975=IFCFACEOUTERBOUND(#1974,.T.); +#1976=IFCFACE((#1975)); +#1977=IFCPOLYLOOP((#425,#423,#529,#527)); +#1978=IFCFACEOUTERBOUND(#1977,.T.); +#1979=IFCFACE((#1978)); +#1980=IFCPOLYLOOP((#530,#424,#426,#528)); +#1981=IFCFACEOUTERBOUND(#1980,.T.); +#1982=IFCFACE((#1981)); +#1983=IFCPOLYLOOP((#427,#425,#527,#525)); +#1984=IFCFACEOUTERBOUND(#1983,.T.); +#1985=IFCFACE((#1984)); +#1986=IFCPOLYLOOP((#528,#426,#428,#526)); +#1987=IFCFACEOUTERBOUND(#1986,.T.); +#1988=IFCFACE((#1987)); +#1989=IFCPOLYLOOP((#429,#427,#525,#523)); +#1990=IFCFACEOUTERBOUND(#1989,.T.); +#1991=IFCFACE((#1990)); +#1992=IFCPOLYLOOP((#526,#428,#430,#524)); +#1993=IFCFACEOUTERBOUND(#1992,.T.); +#1994=IFCFACE((#1993)); +#1995=IFCPOLYLOOP((#417,#429,#523,#535)); +#1996=IFCFACEOUTERBOUND(#1995,.T.); +#1997=IFCFACE((#1996)); +#1998=IFCPOLYLOOP((#524,#430,#418,#536)); +#1999=IFCFACEOUTERBOUND(#1998,.T.); +#2000=IFCFACE((#1999)); +#2001=IFCPOLYLOOP((#523,#531,#533,#535)); +#2002=IFCFACEOUTERBOUND(#2001,.T.); +#2003=IFCFACE((#2002)); +#2004=IFCPOLYLOOP((#534,#532,#524,#536)); +#2005=IFCFACEOUTERBOUND(#2004,.T.); +#2006=IFCFACE((#2005)); +#2007=IFCPOLYLOOP((#523,#525,#529,#531)); +#2008=IFCFACEOUTERBOUND(#2007,.T.); +#2009=IFCFACE((#2008)); +#2010=IFCPOLYLOOP((#530,#526,#524,#532)); +#2011=IFCFACEOUTERBOUND(#2010,.T.); +#2012=IFCFACE((#2011)); +#2013=IFCPOLYLOOP((#525,#527,#529)); +#2014=IFCFACEOUTERBOUND(#2013,.T.); +#2015=IFCFACE((#2014)); +#2016=IFCPOLYLOOP((#530,#528,#526)); +#2017=IFCFACEOUTERBOUND(#2016,.T.); +#2018=IFCFACE((#2017)); +#2019=IFCPOLYLOOP((#343,#411,#417,#535)); +#2020=IFCFACEOUTERBOUND(#2019,.T.); +#2021=IFCFACE((#2020)); +#2022=IFCPOLYLOOP((#418,#412,#344,#536)); +#2023=IFCFACEOUTERBOUND(#2022,.T.); +#2024=IFCFACE((#2023)); +#2025=IFCPOLYLOOP((#343,#535,#533,#351)); +#2026=IFCFACEOUTERBOUND(#2025,.T.); +#2027=IFCFACE((#2026)); +#2028=IFCPOLYLOOP((#534,#536,#344,#352)); +#2029=IFCFACEOUTERBOUND(#2028,.T.); +#2030=IFCFACE((#2029)); +#2031=IFCPOLYLOOP((#349,#351,#533,#419)); +#2032=IFCFACEOUTERBOUND(#2031,.T.); +#2033=IFCFACE((#2032)); +#2034=IFCPOLYLOOP((#534,#352,#350,#420)); +#2035=IFCFACEOUTERBOUND(#2034,.T.); +#2036=IFCFACE((#2035)); +#2037=IFCCLOSEDSHELL((#539,#542,#545,#548,#551,#554,#557,#560,#563,#566,#569,#572,#575,#578,#581,#584,#587,#590,#593,#596,#599,#602,#605,#608,#611,#614,#617,#620,#623,#626,#629,#632,#635,#638,#641,#644,#647,#650,#653,#656,#659,#662,#665,#668,#671,#674,#677,#680,#683,#686,#689,#692,#695,#698,#701,#704,#707,#710,#713,#716,#719,#722,#725,#728,#731,#734,#737,#740,#743,#746,#749,#752,#755,#758,#761,#764,#767,#770,#773,#776,#779,#782,#785,#788,#791,#794,#797,#800,#803,#806,#809,#812,#815,#818,#821,#824,#827,#830,#833,#836,#839,#842,#845,#848,#851,#854,#857,#860,#863,#866,#869,#872,#875,#878,#881,#884,#887,#890,#893,#896,#899,#902,#905,#908,#911,#914,#917,#920,#923,#926,#929,#932,#935,#938,#941,#944,#947,#950,#953,#956,#959,#962,#965,#968,#971,#974,#977,#980,#983,#986,#989,#992,#995,#998,#1001,#1004,#1007,#1010,#1013,#1016,#1019,#1022,#1025,#1028,#1031,#1034,#1037,#1040,#1043,#1046,#1049,#1052,#1055,#1058,#1061,#1064,#1067,#1070,#1073,#1076,#1079,#1082,#1085,#1088,#1091,#1094,#1097,#1100,#1103,#1106,#1109,#1112,#1115,#1118,#1121,#1124,#1127,#1130,#1133,#1136,#1139,#1142,#1145,#1148,#1151,#1154,#1157,#1160,#1163,#1166,#1169,#1172,#1175,#1178,#1181,#1184,#1187,#1190,#1193,#1196,#1199,#1202,#1205,#1208,#1211,#1214,#1217,#1220,#1223,#1226,#1229,#1232,#1235,#1238,#1241,#1244,#1247,#1250,#1253,#1256,#1259,#1262,#1265,#1268,#1271,#1274,#1277,#1280,#1283,#1286,#1289,#1292,#1295,#1298,#1301,#1304,#1307,#1310,#1313,#1316,#1319,#1322,#1325,#1328,#1331,#1334,#1337,#1340,#1343,#1346,#1349,#1352,#1355,#1358,#1361,#1364,#1367,#1370,#1373,#1376,#1379,#1382,#1385,#1388,#1391,#1394,#1397,#1400,#1403,#1406,#1409,#1412,#1415,#1418,#1421,#1424,#1427,#1430,#1433,#1436,#1439,#1442,#1445,#1448,#1451,#1454,#1457,#1460,#1463,#1466,#1469,#1472,#1475,#1478,#1481,#1484,#1487,#1490,#1493,#1496,#1499,#1502,#1505,#1508,#1511,#1514,#1517,#1520,#1523,#1526,#1529,#1532,#1535,#1538,#1541,#1544,#1547,#1550,#1553,#1556,#1559,#1562,#1565,#1568,#1571,#1574,#1577,#1580,#1583,#1586,#1589,#1592,#1595,#1598,#1601,#1604,#1607,#1610,#1613,#1616,#1619,#1622,#1625,#1628,#1631,#1634,#1637,#1640,#1643,#1646,#1649,#1652,#1655,#1658,#1661,#1664,#1667,#1670,#1673,#1676,#1679,#1682,#1685,#1688,#1691,#1694,#1697,#1700,#1703,#1706,#1709,#1712,#1715,#1718,#1721,#1724,#1727,#1730,#1733,#1736,#1739,#1742,#1745,#1748,#1751,#1754,#1757,#1760,#1763,#1766,#1769,#1772,#1775,#1778,#1781,#1784,#1787,#1790,#1793,#1796,#1799,#1802,#1805,#1808,#1811,#1814,#1817,#1820,#1823,#1826,#1829,#1832,#1835,#1838,#1841,#1844,#1847,#1850,#1853,#1856,#1859,#1862,#1865,#1868,#1871,#1874,#1877,#1880,#1883,#1886,#1889,#1892,#1895,#1898,#1901,#1904,#1907,#1910,#1913,#1916,#1919,#1922,#1925,#1928,#1931,#1934,#1937,#1940,#1943,#1946,#1949,#1952,#1955,#1958,#1961,#1964,#1967,#1970,#1973,#1976,#1979,#1982,#1985,#1988,#1991,#1994,#1997,#2000,#2003,#2006,#2009,#2012,#2015,#2018,#2021,#2024,#2027,#2030,#2033,#2036)); +#2038=IFCFACETEDBREP(#2037); +#2039=IFCSHAPEREPRESENTATION(#22,'Body','Brep',(#2038)); +#2040=IFCPRODUCTDEFINITIONSHAPE($,$,(#2039)); +#2041=IFCCARTESIANPOINT((0.,0.,0.)); +#2042=IFCAXIS2PLACEMENT3D(#2041,$,$); +#2043=IFCLOCALPLACEMENT(#26,#2042); +#2044=IFCBUILDINGELEMENTPROXY('1IBz1BNubBsxaso$upFQl_',#5,'Suzanne',$,$,#2043,#2040,$,$); +#2045=IFCRELCONTAINEDINSPATIALSTRUCTURE('1jitzMDZz0RQONEZEudWZx',#5,$,$,(#2044),#27); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcblenderexport/schema/ifc_types_IFC4.json b/src/ifcblenderexport/schema/ifc_types_IFC4.json new file mode 100644 index 0000000000..138c02a0c8 --- /dev/null +++ b/src/ifcblenderexport/schema/ifc_types_IFC4.json @@ -0,0 +1,141 @@ +{ + "IfcBSplineCurveForm": "string", + "IfcBSplineSurfaceForm": "string", + "IfcBooleanOperator": "string", + "IfcKnotType": "string", + "IfcNullStyle": "string", + "IfcPreferredSurfaceCurveRepresentation": "string", + "IfcSIPrefix": "string", + "IfcSIUnitName": "string", + "IfcSurfaceSide": "string", + "IfcTextPath": "string", + "IfcTransitionCode": "string", + "IfcTrimmingPreference": "string", + "IfcAbsorbedDoseMeasure": "float", + "IfcAccelerationMeasure": "float", + "IfcAmountOfSubstanceMeasure": "float", + "IfcAngularVelocityMeasure": "float", + "IfcAreaDensityMeasure": "float", + "IfcAreaMeasure": "float", + "IfcBoolean": "bool", + "IfcBoxAlignment": "string", + "IfcCardinalPointReference": "float", + "IfcContextDependentMeasure": "float", + "IfcCountMeasure": "float", + "IfcCurvatureMeasure": "float", + "IfcDate": "string", + "IfcDateTime": "string", + "IfcDayInMonthNumber": "float", + "IfcDayInWeekNumber": "float", + "IfcDescriptiveMeasure": "string", + "IfcDimensionCount": "float", + "IfcDoseEquivalentMeasure": "float", + "IfcDuration": "string", + "IfcDynamicViscosityMeasure": "float", + "IfcElectricCapacitanceMeasure": "float", + "IfcElectricChargeMeasure": "float", + "IfcElectricConductanceMeasure": "float", + "IfcElectricCurrentMeasure": "float", + "IfcElectricResistanceMeasure": "float", + "IfcElectricVoltageMeasure": "float", + "IfcEnergyMeasure": "float", + "IfcFontStyle": "string", + "IfcFontVariant": "string", + "IfcFontWeight": "string", + "IfcForceMeasure": "float", + "IfcFrequencyMeasure": "float", + "IfcGloballyUniqueId": "string", + "IfcHeatFluxDensityMeasure": "float", + "IfcHeatingValueMeasure": "float", + "IfcIdentifier": "string", + "IfcIlluminanceMeasure": "float", + "IfcInductanceMeasure": "float", + "IfcInteger": "float", + "IfcIntegerCountRateMeasure": "float", + "IfcIonConcentrationMeasure": "float", + "IfcIsothermalMoistureCapacityMeasure": "float", + "IfcKinematicViscosityMeasure": "float", + "IfcLabel": "string", + "IfcLanguageId": "string", + "IfcLengthMeasure": "float", + "IfcLinearForceMeasure": "float", + "IfcLinearMomentMeasure": "float", + "IfcLinearStiffnessMeasure": "float", + "IfcLinearVelocityMeasure": "float", + "IfcLogical": "bool", + "IfcLuminousFluxMeasure": "float", + "IfcLuminousIntensityDistributionMeasure": "float", + "IfcLuminousIntensityMeasure": "float", + "IfcMagneticFluxDensityMeasure": "float", + "IfcMagneticFluxMeasure": "float", + "IfcMassDensityMeasure": "float", + "IfcMassFlowRateMeasure": "float", + "IfcMassMeasure": "float", + "IfcMassPerLengthMeasure": "float", + "IfcModulusOfElasticityMeasure": "float", + "IfcModulusOfLinearSubgradeReactionMeasure": "float", + "IfcModulusOfRotationalSubgradeReactionMeasure": "float", + "IfcModulusOfSubgradeReactionMeasure": "float", + "IfcMoistureDiffusivityMeasure": "float", + "IfcMolecularWeightMeasure": "float", + "IfcMomentOfInertiaMeasure": "float", + "IfcMonetaryMeasure": "float", + "IfcMonthInYearNumber": "float", + "IfcNonNegativeLengthMeasure": "float", + "IfcNormalisedRatioMeasure": "float", + "IfcNumericMeasure": "float", + "IfcPHMeasure": "float", + "IfcParameterValue": "float", + "IfcPlanarForceMeasure": "float", + "IfcPlaneAngleMeasure": "float", + "IfcPositiveInteger": "integer", + "IfcPositiveLengthMeasure": "float", + "IfcPositivePlaneAngleMeasure": "float", + "IfcPositiveRatioMeasure": "float", + "IfcPowerMeasure": "float", + "IfcPresentableText": "string", + "IfcPressureMeasure": "float", + "IfcRadioActivityMeasure": "float", + "IfcRatioMeasure": "float", + "IfcReal": "float", + "IfcRotationalFrequencyMeasure": "float", + "IfcRotationalMassMeasure": "float", + "IfcRotationalStiffnessMeasure": "float", + "IfcSectionModulusMeasure": "float", + "IfcSectionalAreaIntegralMeasure": "float", + "IfcShearModulusMeasure": "float", + "IfcSolidAngleMeasure": "float", + "IfcSoundPowerLevelMeasure": "float", + "IfcSoundPowerMeasure": "float", + "IfcSoundPressureLevelMeasure": "float", + "IfcSoundPressureMeasure": "float", + "IfcSpecificHeatCapacityMeasure": "float", + "IfcSpecularExponent": "float", + "IfcSpecularRoughness": "float", + "IfcTemperatureGradientMeasure": "float", + "IfcTemperatureRateOfChangeMeasure": "float", + "IfcText": "string", + "IfcTextAlignment": "string", + "IfcTextDecoration": "string", + "IfcTextFontName": "string", + "IfcTextTransformation": "string", + "IfcThermalAdmittanceMeasure": "float", + "IfcThermalConductivityMeasure": "float", + "IfcThermalExpansionCoefficientMeasure": "float", + "IfcThermalResistanceMeasure": "float", + "IfcThermalTransmittanceMeasure": "float", + "IfcThermodynamicTemperatureMeasure": "float", + "IfcTime": "string", + "IfcTimeMeasure": "float", + "IfcTimeStamp": "float", + "IfcTorqueMeasure": "float", + "IfcURIReference": "string", + "IfcVaporPermeabilityMeasure": "float", + "IfcVolumeMeasure": "float", + "IfcVolumetricFlowRateMeasure": "float", + "IfcWarpingConstantMeasure": "float", + "IfcWarpingMomentMeasure": "float", + "aggregateType": "string", + "logical": "string", + "List-IfcCompoundPlaneAngleMeasure": "string" +} diff --git a/src/ifcblenderexport/template.ifc b/src/ifcblenderexport/template.ifc new file mode 100644 index 0000000000..6272ccaab2 --- /dev/null +++ b/src/ifcblenderexport/template.ifc @@ -0,0 +1,27 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('$filename','2019-05-12T12:33:45',('$owner','$email'),('$company'),'IfcOpenShell','IfcOpenShell',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPERSON($,$,'$owner',$,$,$,$,$); +#2=IFCORGANIZATION($,'$company',$,$,$); +#3=IFCPERSONANDORGANIZATION(#1,#2,$); +#4=IFCAPPLICATION(#2,'0.0.1','Blender BIM IFC','118df2cf_ed21_438e_a41'); +#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,1557664425); +#6=IFCDIRECTION((1.,0.,0.)); +#7=IFCDIRECTION((0.,0.,1.)); +#8=IFCCARTESIANPOINT((0.,0.,0.)); +#9=IFCAXIS2PLACEMENT3D(#8,#7,#6); +#10=IFCDIRECTION((0.,1.,0.)); +#12=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#13=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#14=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#15=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#16=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#17=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295),#16); +#18=IFCCONVERSIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'DEGREE',#17); +#19=IFCUNITASSIGNMENT((#13,#14,#15,#18)); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcblenderexport/untitled.blend b/src/ifcblenderexport/untitled.blend new file mode 100644 index 0000000000..b153db62cc Binary files /dev/null and b/src/ifcblenderexport/untitled.blend differ