mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-12 06:32:09 +00:00
Fix up convert_ifc_to_brick
Remove line separation between code, but add comments Add full URI to Brick relations Fix typo where "system_uris" was written as "space_uris" Remove unnecessary get of "distribution_elements = brick.get_convertable_brick_elements()" again
This commit is contained in:
@@ -91,6 +91,7 @@ def add_brick_relation(brick, brick_uri=None, predicate=None, object=None):
|
|||||||
|
|
||||||
|
|
||||||
def convert_ifc_to_brick(brick, namespace=None, library=None):
|
def convert_ifc_to_brick(brick, namespace=None, library=None):
|
||||||
|
# convert spaces to brick
|
||||||
spaces = brick.get_convertable_brick_spaces()
|
spaces = brick.get_convertable_brick_spaces()
|
||||||
space_uris = {}
|
space_uris = {}
|
||||||
for space in spaces:
|
for space in spaces:
|
||||||
@@ -98,39 +99,35 @@ def convert_ifc_to_brick(brick, namespace=None, library=None):
|
|||||||
space_uris[space] = brick_uri
|
space_uris[space] = brick_uri
|
||||||
if library:
|
if library:
|
||||||
brick.run_assign_brick_reference(element=space, library=library, brick_uri=brick_uri)
|
brick.run_assign_brick_reference(element=space, library=library, brick_uri=brick_uri)
|
||||||
|
|
||||||
for space in spaces:
|
for space in spaces:
|
||||||
parent = brick.get_parent_space(space)
|
parent = brick.get_parent_space(space)
|
||||||
if parent:
|
if parent:
|
||||||
brick.add_relation(space_uris[parent], "hasPart", space_uris[space])
|
brick.add_relation(space_uris[parent], "https://brickschema.org/schema/Brick#hasPart", space_uris[space])
|
||||||
|
# convert systems to brick
|
||||||
systems = brick.get_convertable_brick_systems()
|
systems = brick.get_convertable_brick_systems()
|
||||||
system_uris = {}
|
system_uris = {}
|
||||||
for system in systems:
|
for system in systems:
|
||||||
brick_uri = brick.add_brick_from_element(system, namespace, brick.get_brick_class(system))
|
brick_uri = brick.add_brick_from_element(system, namespace, brick.get_brick_class(system))
|
||||||
space_uris[space] = brick_uri
|
system_uris[system] = brick_uri
|
||||||
if library:
|
if library:
|
||||||
brick.run_assign_brick_reference(element=system, library=library, brick_uri=brick_uri)
|
brick.run_assign_brick_reference(element=system, library=library, brick_uri=brick_uri)
|
||||||
|
# convert services to brick
|
||||||
distribution_elements = brick.get_convertable_brick_elements()
|
distribution_elements = brick.get_convertable_brick_elements()
|
||||||
equipment_uris = {}
|
equipment_uris = {}
|
||||||
for element in distribution_elements:
|
for element in distribution_elements:
|
||||||
brick_uri = brick.add_brick_from_element(element, namespace, brick.get_brick_class(element))
|
brick_uri = brick.add_brick_from_element(element, namespace, brick.get_brick_class(element))
|
||||||
equipment_uris[element] = brick_uri
|
equipment_uris[element] = brick_uri
|
||||||
space = brick.get_element_container(element)
|
space = brick.get_element_container(element)
|
||||||
brick.add_relation(brick_uri, "hasLocation", space_uris[space])
|
brick.add_relation(brick_uri, "https://brickschema.org/schema/Brick#hasLocation", space_uris[space])
|
||||||
systems = brick.get_element_systems(element)
|
systems = brick.get_element_systems(element)
|
||||||
for system in systems:
|
for system in systems:
|
||||||
brick.add_relation(system_uris[system], "hasPart", brick_uri)
|
brick.add_relation(system_uris[system], "https://brickschema.org/schema/Brick#hasPart", brick_uri)
|
||||||
if library:
|
if library:
|
||||||
brick.run_assign_brick_reference(element=element, library=library, brick_uri=brick_uri)
|
brick.run_assign_brick_reference(element=element, library=library, brick_uri=brick_uri)
|
||||||
|
|
||||||
distribution_elements = brick.get_convertable_brick_elements()
|
|
||||||
for element in distribution_elements:
|
for element in distribution_elements:
|
||||||
feeds = brick.get_element_feeds(element)
|
feeds = brick.get_element_feeds(element)
|
||||||
for downstream_equipment in feeds:
|
for downstream_equipment in feeds:
|
||||||
brick.add_relation(equipment_uris[element], "feeds", equipment_uris[downstream_equipment])
|
brick.add_relation(equipment_uris[element], "https://brickschema.org/schema/Brick#feeds", equipment_uris[downstream_equipment])
|
||||||
|
|
||||||
brick.run_refresh_brick_viewer()
|
brick.run_refresh_brick_viewer()
|
||||||
brick.run_refresh_brick_viewer(split_screen=True)
|
brick.run_refresh_brick_viewer(split_screen=True)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user