Ejemplo n.º 1
0
def step_impl(context, guid, number):
    number = util.assert_number(number)
    site = util.assert_guid(IfcStore.file, guid)
    util.assert_type(site, "IfcSite")
    ref = util.assert_attribute(site, "RefLatitude")
    number = ifcopenshell.util.geolocation.dd2dms(number,
                                                  use_ms=(len(ref) == 4))
    util.assert_attribute(site, "RefLatitude", number)
Ejemplo n.º 2
0
def check_geocode_address(guid, spatial_type, name, value):
    element = util.assert_guid(IfcStore.file, guid)
    ifc_class = get_ifc_class_from_spatial_type(spatial_type)
    util.assert_type(element, ifc_class)
    if ifc_class == "IfcSite":
        address_name = "SiteAddress"
    elif ifc_class == "IfcBuilding":
        address_name = "BuildingAddress"
    util.assert_attribute(element, address_name)
    util.assert_attribute(getattr(element, address_name), name, value)
Ejemplo n.º 3
0
def step_impl(context, guid, predefined_type):
    element = util.assert_guid(IfcStore.file, guid)
    if (
        hasattr(element, "PredefinedType")
        and element.PredefinedType == "USERDEFINED"
        and hasattr(element, "ObjectType")
    ):
        util.assert_attribute(element, "ObjectType", predefined_type)
    elif hasattr(element, "PredefinedType"):
        util.assert_attribute(element, "PredefinedType", predefined_type)
    else:
        assert False, _("The element {} does not have a PredefinedType or ObjectType attribute").format(element)
Ejemplo n.º 4
0
def step_impl(context, guid, identification, reference_name):
    element = util.assert_guid(IfcStore.file, guid)
    if not hasattr(element, "HasAssociations") or not element.HasAssociations:
        assert False, _("The element {} has no associations.").format(element)
    references = [a.RelatingClassification for a in element.HasAssociations if a.is_a("IfcRelAssociatesClassification")]
    if not references:
        assert False, _("The element {element} has no associated classification references.").format(element)
    is_success = False
    for reference in references:
        try:
            util.assert_attribute(reference, "Identification", identification)
            util.assert_attribute(reference, "Name", reference_name)
            is_success = True
        except:
            pass
    if not is_success:
        assert False, _(
            "No classification references met the requirement for an identification {} and name {} for the element {}.  The references we found were: {}"
        ).format(identification, reference_name, element, references)
Ejemplo n.º 5
0
def check_geocode_attribute(guid, spatial_type, name, value):
    element = util.assert_guid(IfcStore.file, guid)
    util.assert_type(element, get_ifc_class_from_spatial_type(spatial_type))
    util.assert_attribute(element, name, value)
Ejemplo n.º 6
0
def step_impl(context, name, tokens):
    try:
        tokens = json.loads(tokens)
    except:
        assert False, _("Tokens {} are not specified as a JSON list").format(tokens)
    util.assert_attribute(get_classification(name), "ReferenceTokens", tokens)
Ejemplo n.º 7
0
def step_impl(context, name, location):
    util.assert_attribute(get_classification(name), "Location", location)
Ejemplo n.º 8
0
def step_impl(context, name, description):
    util.assert_attribute(get_classification(name), "Description", description)
Ejemplo n.º 9
0
def step_impl(context, name, edition, edition_date):
    element = get_classification(name)
    util.assert_attribute(element, "Edition", edition)
    util.assert_attribute(element, "EditionDate", edition_date)
Ejemplo n.º 10
0
def step_impl(context, name, source):
    util.assert_attribute(get_classification(name), "Source", source)
Ejemplo n.º 11
0
def step_impl(context, value):
    util.assert_attribute(
        IfcStore.file.by_type("IfcProject")[0], "Phase", value)
Ejemplo n.º 12
0
def step_impl(context, guid):
    util.assert_attribute(
        IfcStore.file.by_type("IfcProject")[0], "GlobalId", guid)
Ejemplo n.º 13
0
def step_impl(context, guid, number):
    number = util.assert_number(number)
    site = util.assert_guid(IfcStore.file, guid)
    util.assert_type(site, "IfcSite")
    util.assert_attribute(site, "RefElevation", number)