Application data in IFC now reflects the latest IFC version tag

This commit is contained in:
Dion Moult
2021-10-01 10:10:45 +10:00
parent 42d321d553
commit 8bcec29429
5 changed files with 76 additions and 40 deletions
@@ -20,13 +20,16 @@ class TestRemoveContext(test.bootstrap.IFC4):
subcontext = self.file.createIfcGeometricRepresentationSubcontext()
subcontext.ParentContext = context
representation = self.file.createIfcRepresentation(ContextOfItems=subcontext)
projected_crs = self.file.createIfcProjectedCRS()
map_conversion = self.file.createIfcMapConversion(SourceCRS=subcontext, TargetCRS=projected_crs)
ifcopenshell.api.run("context.remove_context", self.file, context=subcontext)
assert len(self.file.by_type("IfcGeometricRepresentationSubcontext")) == 0
assert representation in self.file.get_inverse(context)
assert len(self.file.by_type("IfcMapConversion")) == 0
assert len(self.file.by_type("IfcProjectedCRS")) == 0
def test_removing_a_context_with_references(self):
subcontext = self.file.createIfcGeometricRepresentationSubContext()
representation = self.file.createIfcRepresentation(ContextOfItems=subcontext)
map_conversion = self.file.createIfcMapConversion(SourceCRS=subcontext)
ifcopenshell.api.run("context.remove_context", self.file, context=subcontext)
context = self.file.createIfcGeometricRepresentationContext()
representation = self.file.createIfcRepresentation(ContextOfItems=context)
ifcopenshell.api.run("context.remove_context", self.file, context=context)
assert len([e for e in self.file]) == 0
@@ -0,0 +1,32 @@
import test.bootstrap
import ifcopenshell.api
class TestAddAddress(test.bootstrap.IFC4):
def test_adding_to_a_person(self):
person = self.file.createIfcPerson()
postal = ifcopenshell.api.run(
"owner.add_address", self.file, assigned_object=person, ifc_class="IfcPostalAddress"
)
telecom = ifcopenshell.api.run(
"owner.add_address", self.file, assigned_object=person, ifc_class="IfcTelecomAddress"
)
assert postal.is_a("IfcPostalAddress")
assert telecom.is_a("IfcTelecomAddress")
assert postal.Purpose == telecom.Purpose == "OFFICE"
assert postal in person.Addresses
assert telecom in person.Addresses
def test_adding_to_a_organisation(self):
organisation = self.file.createIfcOrganization()
postal = ifcopenshell.api.run(
"owner.add_address", self.file, assigned_object=organisation, ifc_class="IfcPostalAddress"
)
telecom = ifcopenshell.api.run(
"owner.add_address", self.file, assigned_object=organisation, ifc_class="IfcTelecomAddress"
)
assert postal.is_a("IfcPostalAddress")
assert telecom.is_a("IfcTelecomAddress")
assert postal.Purpose == telecom.Purpose == "OFFICE"
assert postal in organisation.Addresses
assert telecom in organisation.Addresses
@@ -0,0 +1,21 @@
import test.bootstrap
import ifcopenshell.api
class TestAddApplication(test.bootstrap.IFC4):
def test_adding_the_ifcopenshell_application(self):
application = ifcopenshell.api.run("owner.add_application", self.file)
developer = application.ApplicationDeveloper
assert application.Version == ifcopenshell.version
assert application.ApplicationFullName == "IfcOpenShell"
assert application.ApplicationIdentifier == "IfcOpenShell"
assert developer.is_a("IfcOrganization")
assert developer.Identification == "IfcOpenShell"
assert developer.Name == "IfcOpenShell"
assert developer.Description == "IfcOpenShell is an open source software library that helps users and software developers to work with IFC data."
assert developer.Roles[0].Role == "USERDEFINED"
assert developer.Roles[0].UserDefinedRole == "CONTRIBUTOR"
assert developer.Addresses[0].is_a("IfcTelecomAddress")
assert developer.Addresses[0].Purpose == "USERDEFINED"
assert developer.Addresses[0].UserDefinedPurpose == "WEBPAGE"
assert developer.Addresses[0].WWWHomePageURL == "https://ifcopenshell.org"