buildingSMART / IDS

Computer interpretable (XML) standard to define Information Delivery Specifications for BIM (mainly used for IFC)
https://www.buildingsmart.org/standards/bsi-standards/information-delivery-specification-ids/
Other
215 stars 66 forks source link

Postal address - how to check? #362

Closed marszulc closed 3 weeks ago

marszulc commented 3 weeks ago

Hello, I need to check the AddressLines attribute of Postal address and I tried it in multiple ways but none of them worked.

This is one of my ideas:

<specification name="Building Address" ifcVersion="IFC2X3" description="Check if building address is xxxxxx">
            <applicability minOccurs="1" maxOccurs="1" >
                <entity>
                    <name>
                        <simpleValue>IFCBUILDING</simpleValue>
                    </name>
                </entity>
            </applicability>
            <requirements>
                <attribute>
                    <name>
                        <simpleValue>IfcPostalAddress</simpleValue>
                    </name>
                    <value>
                        <xs:restriction base="xs:string">
                        <xs:enumeration value="xxxxx" />
                        <xs:enumeration value="yyyyy" />
            <xs:enumeration value="zzzz" />

                        </xs:restriction>
                    </value>
                </attribute>
            </requirements>
        </specification>

Image: image

Is it anyhow possible?

atomczak commented 3 weeks ago

IfcPostalAddress is a tricky entity within an entity, and that's also why it was deprecated in IFC4.3. It's better to use Pset_Address for this.

BTW, you didn't tell it that you are interested in AddressLines.

Assuming you want to achieve this in IFC2x3, I propose that you just move IfcPostalAddress to applicability and forget the IfcBuilding:

<applicability minOccurs="1" maxOccurs="1">
    <entity>
        <name>
            <simpleValue>IFCPOSTALADDRESS</simpleValue>
        </name>
    </entity>
</applicability>
<requirements>
    <attribute>
        <name>
            <simpleValue>AddressLines</simpleValue>
        </name>
        <value>
            <xs:restriction base="xs:string">
                <xs:enumeration value="xxxxx"/>
                <xs:enumeration value="yyyyy"/>
                <xs:enumeration value="zzzz"/>
            </xs:restriction>
        </value>
    </attribute>
</requirements>