// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool Xbim.CodeGeneration 
//  
//     Changes to this file may cause incorrect behaviour and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

using Xbim.Ifc4.Interfaces;
using System.Collections.Generic;
using System.Linq;
using Xbim.Common;

//## Custom using statements
//##

// ReSharper disable once CheckNamespace
namespace Xbim.Ifc4x3.ArchitectureDomain
{
	public partial class @IfcWindowLiningProperties : IIfcWindowLiningProperties
	{

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 5)]
		Ifc4.MeasureResource.IfcPositiveLengthMeasure? IIfcWindowLiningProperties.LiningDepth 
		{ 
			get
			{
				if (!LiningDepth.HasValue) return null;
				return new Ifc4.MeasureResource.IfcPositiveLengthMeasure(LiningDepth.Value);
			} 
			set
			{
				LiningDepth = value.HasValue ? 
					new MeasureResource.IfcPositiveLengthMeasure(value.Value) :  
					 new MeasureResource.IfcPositiveLengthMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 6)]
		Ifc4.MeasureResource.IfcNonNegativeLengthMeasure? IIfcWindowLiningProperties.LiningThickness 
		{ 
			get
			{
				if (!LiningThickness.HasValue) return null;
				return new Ifc4.MeasureResource.IfcNonNegativeLengthMeasure(LiningThickness.Value);
			} 
			set
			{
				LiningThickness = value.HasValue ? 
					new MeasureResource.IfcNonNegativeLengthMeasure(value.Value) :  
					 new MeasureResource.IfcNonNegativeLengthMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 7)]
		Ifc4.MeasureResource.IfcNonNegativeLengthMeasure? IIfcWindowLiningProperties.TransomThickness 
		{ 
			get
			{
				if (!TransomThickness.HasValue) return null;
				return new Ifc4.MeasureResource.IfcNonNegativeLengthMeasure(TransomThickness.Value);
			} 
			set
			{
				TransomThickness = value.HasValue ? 
					new MeasureResource.IfcNonNegativeLengthMeasure(value.Value) :  
					 new MeasureResource.IfcNonNegativeLengthMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 8)]
		Ifc4.MeasureResource.IfcNonNegativeLengthMeasure? IIfcWindowLiningProperties.MullionThickness 
		{ 
			get
			{
				if (!MullionThickness.HasValue) return null;
				return new Ifc4.MeasureResource.IfcNonNegativeLengthMeasure(MullionThickness.Value);
			} 
			set
			{
				MullionThickness = value.HasValue ? 
					new MeasureResource.IfcNonNegativeLengthMeasure(value.Value) :  
					 new MeasureResource.IfcNonNegativeLengthMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 9)]
		Ifc4.MeasureResource.IfcNormalisedRatioMeasure? IIfcWindowLiningProperties.FirstTransomOffset 
		{ 
			get
			{
				if (!FirstTransomOffset.HasValue) return null;
				return new Ifc4.MeasureResource.IfcNormalisedRatioMeasure(FirstTransomOffset.Value);
			} 
			set
			{
				FirstTransomOffset = value.HasValue ? 
					new MeasureResource.IfcNormalisedRatioMeasure(value.Value) :  
					 new MeasureResource.IfcNormalisedRatioMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 10)]
		Ifc4.MeasureResource.IfcNormalisedRatioMeasure? IIfcWindowLiningProperties.SecondTransomOffset 
		{ 
			get
			{
				if (!SecondTransomOffset.HasValue) return null;
				return new Ifc4.MeasureResource.IfcNormalisedRatioMeasure(SecondTransomOffset.Value);
			} 
			set
			{
				SecondTransomOffset = value.HasValue ? 
					new MeasureResource.IfcNormalisedRatioMeasure(value.Value) :  
					 new MeasureResource.IfcNormalisedRatioMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 11)]
		Ifc4.MeasureResource.IfcNormalisedRatioMeasure? IIfcWindowLiningProperties.FirstMullionOffset 
		{ 
			get
			{
				if (!FirstMullionOffset.HasValue) return null;
				return new Ifc4.MeasureResource.IfcNormalisedRatioMeasure(FirstMullionOffset.Value);
			} 
			set
			{
				FirstMullionOffset = value.HasValue ? 
					new MeasureResource.IfcNormalisedRatioMeasure(value.Value) :  
					 new MeasureResource.IfcNormalisedRatioMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 12)]
		Ifc4.MeasureResource.IfcNormalisedRatioMeasure? IIfcWindowLiningProperties.SecondMullionOffset 
		{ 
			get
			{
				if (!SecondMullionOffset.HasValue) return null;
				return new Ifc4.MeasureResource.IfcNormalisedRatioMeasure(SecondMullionOffset.Value);
			} 
			set
			{
				SecondMullionOffset = value.HasValue ? 
					new MeasureResource.IfcNormalisedRatioMeasure(value.Value) :  
					 new MeasureResource.IfcNormalisedRatioMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 13)]
		IIfcShapeAspect IIfcWindowLiningProperties.ShapeAspectStyle 
		{ 
			get
			{
				return ShapeAspectStyle;
			} 
			set
			{
				ShapeAspectStyle = value as RepresentationResource.IfcShapeAspect;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 14)]
		Ifc4.MeasureResource.IfcLengthMeasure? IIfcWindowLiningProperties.LiningOffset 
		{ 
			get
			{
				if (!LiningOffset.HasValue) return null;
				return new Ifc4.MeasureResource.IfcLengthMeasure(LiningOffset.Value);
			} 
			set
			{
				LiningOffset = value.HasValue ? 
					new MeasureResource.IfcLengthMeasure(value.Value) :  
					 new MeasureResource.IfcLengthMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 15)]
		Ifc4.MeasureResource.IfcLengthMeasure? IIfcWindowLiningProperties.LiningToPanelOffsetX 
		{ 
			get
			{
				if (!LiningToPanelOffsetX.HasValue) return null;
				return new Ifc4.MeasureResource.IfcLengthMeasure(LiningToPanelOffsetX.Value);
			} 
			set
			{
				LiningToPanelOffsetX = value.HasValue ? 
					new MeasureResource.IfcLengthMeasure(value.Value) :  
					 new MeasureResource.IfcLengthMeasure?() ;
				
			}
		}

		[CrossSchemaAttribute(typeof(IIfcWindowLiningProperties), 16)]
		Ifc4.MeasureResource.IfcLengthMeasure? IIfcWindowLiningProperties.LiningToPanelOffsetY 
		{ 
			get
			{
				if (!LiningToPanelOffsetY.HasValue) return null;
				return new Ifc4.MeasureResource.IfcLengthMeasure(LiningToPanelOffsetY.Value);
			} 
			set
			{
				LiningToPanelOffsetY = value.HasValue ? 
					new MeasureResource.IfcLengthMeasure(value.Value) :  
					 new MeasureResource.IfcLengthMeasure?() ;
				
			}
		}
	//## Custom code
	//##
	}
}