IFC4.3.x-development icon indicating copy to clipboard operation
IFC4.3.x-development copied to clipboard

IFC4x3.xsd

Open HannuLahtela opened this issue 3 years ago • 2 comments

Is the IFC4x3.xsd available somewhere? I Found the HTML version of it.

HannuLahtela avatar Jun 02 '22 08:06 HannuLahtela

There is a first version available. https://github.com/buildingSMART/IFC4.3.x-output/blob/master/IFC.xsd

If you use the XSD for development we'd like to hear your feedback.

There's some minimal discrepancies with IFC4 and we're trying to work out the compatibility with 10303 28 (the step xml standard).

aothms avatar Jun 02 '22 12:06 aothms

OK, Thanks! -Hannu-

Hannu Lahtela Senior Software Engineer

Hatsinanpuisto 8A, 02600 Espoo Finland +358505701321 Mobile

@.*** www.trimble.com

On Thu, Jun 2, 2022 at 3:20 PM Thomas Krijnen @.***> wrote:

There is a first version available. https://github.com/buildingSMART/IFC4.3.x-output/blob/master/IFC.xsd

If you use the XSD for development we'd like to hear your feedback.

There's some minimal discrepancies with IFC4 and we're trying to work out the compatibility with 10303 28 (the step xml standard).

— Reply to this email directly, view it on GitHub https://github.com/buildingSMART/IFC4.3.x-development/issues/485#issuecomment-1144798726, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO2DM3GWP4WH2DSIZ3WRQMTVNCRKBANCNFSM5XUDI2YQ . You are receiving this because you authored the thread.Message ID: @.***>

HannuLahtela avatar Jun 03 '22 03:06 HannuLahtela

Hey, I'm trying to use the xsd version. Some of the Relationship elements have missing fields, for example

  • IfcRelAggregates -> RelatingObject
  • IfcRelNests -> RelatingObject
  • IfcRelProjectsElement -> RelatingElement
  • IfcRelVoidsElement -> RelatingBuildingElement Lenny

lennyridel avatar Jan 19 '23 20:01 lennyridel

This is as designed. The express to xsd mapping (as defined in 10303 28) is rather versatile. One of the things it allows is to suppress certain attributes in the XSD in favour of explicitly providing its inverse attribute (which are in the .ifc spf file not provided but calculated).

This effectively allows to rewrite

spf

                  RelatingElement                                 RelatedFeatureElement
IfcElement <-------------------------- IfcRelProjectsElement ------------------------------> IfcFeatureElementAddition	
              (inv HasProjections)

into

xsd

                  HasProjections                                  RelatedFeatureElement
IfcElement --------------------------> IfcRelProjectsElement ------------------------------> IfcFeatureElementAddition	

which supposedly matches the tree-like nature of XML better.

Relevant configuration is here:

https://github.com/buildingSMART/IFC4.3.x-development/blob/master/code/IFC4_conf.xml#L493

And the definition of IfcElement

	<xs:complexType name="IfcElement" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProduct">
				<xs:sequence>
					<xs:element name="HasProjections" type="ifc:IfcRelProjectsElement" nillable="true" minOccurs="0" maxOccurs="?"/>
					<xs:element name="HasOpenings" type="ifc:IfcRelVoidsElement" nillable="true" minOccurs="0" maxOccurs="?"/>
				</xs:sequence>
				<xs:attribute name="Tag" type="ifc:IfcIdentifier" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

aothms avatar Jan 20 '23 08:01 aothms

Thanks much for the clarification. Lenny

lennyridel avatar Jan 28 '23 11:01 lennyridel