xml-composite-solid

The xml-composite-solid geometry builder builds composite solid geometries.

This builder does not require any data parameters, and will construct the composite solid geometry from existing simple solid geometries. Thus, before the xml-composite-solid geometry builder is deactivated, other geometry builders should have been activated, passing their constructed simple solids to the xml-composite-solid geometry builder.

Each of the simple solids passed to the xml-composite-solid geometry builder should be topologically connected along their boundaries.

builder type: composite - accepts simple solid geometries

geometry constructed: composite solid

data parameters:

The following demote-incomplete-geometry and allow-empty-composite data parameters change how the geometry is handled in error conditions. If both of the data parameters are set to false, whenever the geometry builder receives no simple solids to create a composite solid from, it will raise an error and terminate the translation.

Data Name

Value

Required/Optional

demote-incomplete-geometry

This Boolean parameter determines if incomplete geometry should be demoted instead of producing an error. If set to true, whenever the geometry builder receives no simple solids to create a composite solid from, the composite solid will be downgraded to a null geometry.

Range: true|false

Default: false

Optional

allow-empty-composite

This boolean parameter determines if incomplete geometry should be left incomplete instead of producing an error. If set to true, whenever the geometry builder receives no simple solids to create a composite solid from, the composite solid will be left empty and returned.

Range: true|false

Default: false

Optional

coordinate-system

Specifies the coordinate system name. If the expression sequence for the coordinate-system evaluates to the empty string, then the coordinate system for the feature being built will not be set.

Range: String

Optional

name

Specifies the geometry’s name.

Range: String

Optional

Example: Building a composite solid

compositesolid.xml

<?xml version="1.0"?>
<compositesolid>
	<simplesolid>
		<compositesurface>
			<simplesurface>
				<area>0.0,0.0,0.0 0.0,1.0,0.0 1.0,0.0,0.0 0.0,0.0,0.0</area>
			</simplesurface>
			<simplesurface>
				<area>0.0,0.0,0.0 1.0,0.0,0.0 1.0,1.0,1.0 0.0,0.0,0.0</area>
			</simplesurface>
			<simplesurface>
				<area>0.0,0.0,0.0 1.0,1.0,1.0 0.0,1.0,0.0 0.0,0.0,0.0</area>
			</simplesurface>
			<simplesurface>
				<area>1.0,0.0,0.0 0.0,1.0,0.0 1.0,1.0,1.0 1.0,0.0,0.0</area>
			</simplesurface>
		</compositesurface>
	</simplesolid>
	<simplesolid>
		<compositesurface>
			<simplesurface>
				<area>0.0,0.0,0.0 0.0,1.0,0.0 1.0,0.0,0.0 0.0,0.0,0.0</area>
			</simplesurface>
			<simplesurface>
			    <area>0.0,0.0,0.0 1.0,0.0,0.0 1.0,1.0,-1.0 0.0,0.0,0.0</area>
			</simplesurface>
			<simplesurface>
			    <area>0.0,0.0,0.0 1.0,1.0,-1.0 0.0,1.0,0.0 0.0,0.0,0.0</area>
			</simplesurface>
			<simplesurface>
			    <area>1.0,0.0,0.0 0.0,1.0,0.0 1.0,1.0,-1.0 1.0,0.0,0.0</area>
			</simplesurface>
		</compositesurface>
	</simplesolid>
</compositesolid>

compositesolid.xmp

<?xml version="1.0"?>
<xfMap>
	<feature-map>
		<mapping match="compositesolid">
			<feature-type> <literal expr="compositesolid" /> </feature-type>
			<geometry activate="xml-composite-solid" />
		</mapping>
	</feature-map>
	<feature-content-map>
		<mapping match="simplesolid">
			<geometry activate="xml-enclosed-surface" />
		</mapping>
		<mapping match="compositesurface">
			<geometry activate="xml-composite-surface" />
		</mapping>
		<mapping match="simplesurface">
			<geometry activate="xml-face" />
		</mapping>
		<mapping match="area">
			<geometry activate="xml-area">
				<data name="data-string"> <extract expr="." /> </data>
			</geometry>
		</mapping>
	</feature-content-map>
</xfMap>