OCXStandard / OCX_Schema

The Open Class 3D Exchange (ocx) schema
Apache License 2.0
8 stars 5 forks source link

StiffenedBy Does Not Support Stiffener AND Flanges #146

Open CarstenZerbst opened 6 months ago

CarstenZerbst commented 6 months ago

As Is

In v 3.0.0 it is not possible to put both stiffeners and flanges on a panel.

The definition is

<xs:complexType name="StiffenedBy_T">
        <xs:annotation>
            <xs:documentation>Type definition of the structural concept defining the stiffeners which belongs to a panel as a choice of a Stiffener or EdgeReinforcement.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element ref="ocx:Stiffener" maxOccurs="unbounded"/>
            <xs:element ref="ocx:EdgeReinforcement" maxOccurs="unbounded"/>
        </xs:choice>
    </xs:complexType>

and thus allows either

To Be

We need to have both stiffeners and flanges. To keep the change as simple as possible, I propose adding the ' maxOccurs="unbounded" ' to the choice.

<xs:complexType name="StiffenedBy_T">
        <xs:annotation>
            <xs:documentation>Type definition of the structural concept defining the stiffeners belonging to a panel as a choice of a Stiffener or EdgeReinforcement.</xs:documentation>
        </xs:annotation> 
        <xs:choice maxOccurs="unbounded" >
            <xs:element ref="ocx:Stiffener" maxOccurs="unbounded"/>
            <xs:element ref="ocx:EdgeReinforcement" maxOccurs="unbounded"/>
        </xs:choice>
    </xs:

The test example with stiffeners should also get a flange.

Rational

There are panels with both stiffeners and edge reinforcement. I assume every implementor either uses a list containing both flanges and stiffeners or two separate lists. Both ways (writing mixed Stiffners and EdgeReinforcement or first all Stiffeners and then EdgeReinforcements) are possible with above change.