Personal tools
You are here: Home / Specifications / BCF Releases / bcfXML v1 / bcf-viewpoint-schema

bcf-viewpoint-schema

This XSD defines the allowed content of the viewpoint file within a BCF exchange

Extensible Markup Language (XML) icon visinfo.xsd — Extensible Markup Language (XML), 3 kB (3536 bytes)

File contents

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

	<xs:element name="VisualizationInfo">
		<xs:annotation>
			<xs:documentation>visualiztioninfo documentation</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Components" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Component" type="Component" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="OrthogonalCamera" type="OrthogonalCamera" minOccurs="0"/>
				<xs:element name="PerspectiveCamera" type="PerspectiveCamera" minOccurs="0"/>
				<xs:element name="Lines" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Line" type="Line" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="ClippingPlanes" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="ClippingPlane" type="ClippingPlane" minOccurs="0" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="OrthogonalCamera">
		<xs:sequence>
			<xs:element name="CameraViewPoint" type="Point"/>
			<xs:element name="CameraDirection" type="Direction"/>
			<xs:element name="CameraUpVector" type="Direction"/>
			<xs:element name="ViewToWorldScale" type="xs:double">
				<xs:annotation>
					<xs:documentation>view's visible size in meters</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="PerspectiveCamera">
		<xs:sequence>
			<xs:element name="CameraViewPoint" type="Point"/>
			<xs:element name="CameraDirection" type="Direction"/>
			<xs:element name="CameraUpVector" type="Direction"/>
			<xs:element name="FieldOfView" type="FieldOfView"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="Point">
		<xs:sequence>
			<xs:element name="X" type="xs:double"/>
			<xs:element name="Y" type="xs:double"/>
			<xs:element name="Z" type="xs:double"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="Direction">
		<xs:sequence>
			<xs:element name="X" type="xs:double"/>
			<xs:element name="Y" type="xs:double"/>
			<xs:element name="Z" type="xs:double"/>
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="FieldOfView">
		<xs:restriction base="xs:double">
			<xs:minInclusive value="45"/>
			<xs:maxInclusive value="60"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="Component">
		<xs:sequence>
			<xs:element name="OriginatingSystem" type="xs:string" minOccurs="0"/>
			<xs:element name="AuthoringToolId" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute ref="IfcGuid"/>
	</xs:complexType>

	<xs:attribute name="IfcGuid">
		<!-- 3dKX8qrKT4nfaFKnVwXlca -->
		<xs:simpleType>
			<xs:restriction base="xs:normalizedString">
				<xs:length value="22"/>
				<xs:pattern value="[0-9,A-Z,a-z,_$]*"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>

	<xs:complexType name="Line">
		<xs:sequence>
			<xs:element name="StartPoint" type="Point"/>
			<xs:element name="EndPoint" type="Point"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="ClippingPlane">
		<xs:sequence>
			<xs:element name="Location" type="Point"/>
			<xs:element name="Direction" type="Direction"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>