added distribution version of current converter development.

Note: due to faulty mapping specification for the IfcBoiler all SimController elements have to be removed from output in order to have it valid against the SimModel schema.
parent 48fa6122
......@@ -111,8 +111,8 @@
<SimFlowFitting_Default_Default RefId="ID0LMbjl8XfFaui1YxJs_D1Z"><simcore:SimModelName>EnEff_PipeFittingBend:Standard:908055</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D11 </simcore:AssignedToGroups></SimFlowFitting_Default_Default>
<SimFlowFitting_Default_Default RefId="ID0LMbjl8XfFaui1YxJs_D1j"><simcore:SimModelName>EnEff_PipeFittingBend:Standard:908057</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D11 </simcore:AssignedToGroups></SimFlowFitting_Default_Default>
<SimFlowFitting_Default_Default RefId="ID1tDPbdBSHCbuhhpltlQZsB"><simcore:SimModelName>EnEff_PipeFittingBend:Standard:1104309</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 </simcore:AssignedToGroups></SimFlowFitting_Default_Default>
<SimFlowMover_Pump_VariableSpeedReturn RefId="ID0LMbjl8XfFaui1YxJs_D1q"><simcore:SimUniqueID>0LMbjl8XfFaui1YxJs_D1q</simcore:SimUniqueID><simcore:SimModelSubtype>true</simcore:SimModelSubtype><simcore:SimModelSubtype>true</simcore:SimModelSubtype><simcore:SimModelName>EnEff_Pump:Standard:908032</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 </simcore:AssignedToGroups><simmep:SimFlowMover_Name>EnEff_Pump:Standard:908032</simmep:SimFlowMover_Name><simmep:SimFlowMover_MotorEff>0.9</simmep:SimFlowMover_MotorEff><simmep:SimFlowMover_MinFlowRate>0.02</simmep:SimFlowMover_MinFlowRate><simmep:SimFlowMover_RatedFlowRate>0.02</simmep:SimFlowMover_RatedFlowRate><simmep:SimFlowMover_RatedPumpHead>544.13</simmep:SimFlowMover_RatedPumpHead><simmep:SimFlowMover_FracMotorInEffToFluidStream>0</simmep:SimFlowMover_FracMotorInEffToFluidStream><simmep:SimFlowMover_Coef1OfThePartLoadPerfCurve>0.78</simmep:SimFlowMover_Coef1OfThePartLoadPerfCurve><simmep:SimFlowMover_Coef2OfThePartLoadPerfCurve>0</simmep:SimFlowMover_Coef2OfThePartLoadPerfCurve><simmep:SimFlowMover_Coef3OfThePartLoadPerfCurve>0</simmep:SimFlowMover_Coef3OfThePartLoadPerfCurve><simmep:SimFlowMover_Coef4OfThePartLoadPerfCurve>0</simmep:SimFlowMover_Coef4OfThePartLoadPerfCurve><simmep:SimFlowMover_PumpContType>OnOff</simmep:SimFlowMover_PumpContType><simmep:SimFlowMover_PumprpmSchedName>ID_prv01_0LMbjl8XfFaui1YxJs_D1q</simmep:SimFlowMover_PumprpmSchedName></SimFlowMover_Pump_VariableSpeedReturn>
<SimFlowPlant_Boiler_BoilerHotWater RefId="ID0LMbjl8XfFaui1YxJs_D66"><simcore:SimUniqueID>0LMbjl8XfFaui1YxJs_D66</simcore:SimUniqueID><simcore:SimModelSubtype/><simcore:SimModelName>EnEff_Boiler:Standard:908018</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 ID0LMbjl8XfFaui1YxJs_D11 </simcore:AssignedToGroups><simmep:SimFlowPlant_Name>EnEff_Boiler:Standard:908018</simmep:SimFlowPlant_Name><simmep:SimFlowPlant_FuelType>NaturalGas</simmep:SimFlowPlant_FuelType><simmep:SimFlowPlant_NomCap>215005.058334194</simmep:SimFlowPlant_NomCap><simmep:SimFlowPlant_NomThermalEff>846.85</simmep:SimFlowPlant_NomThermalEff><simmep:SimFlowPlant_DesignWaterOutletTemp>70</simmep:SimFlowPlant_DesignWaterOutletTemp><simmep:SimFlowPlant_DesignWaterFlowRate>0.00706293334429772</simmep:SimFlowPlant_DesignWaterFlowRate><simmep:SimFlowPlant_MinPartLoadRatio>1</simmep:SimFlowPlant_MinPartLoadRatio><simmep:SimFlowPlant_MaxPartLoadRatio>0</simmep:SimFlowPlant_MaxPartLoadRatio><simmep:SimFlowPlant_OptimumPartLoadRatio>0.9</simmep:SimFlowPlant_OptimumPartLoadRatio><simmep:SimFlowPlant_WaterOutletUpTempLimit>383.15</simmep:SimFlowPlant_WaterOutletUpTempLimit><simmep:SimFlowPlant_BoilerFlowMode>Variable</simmep:SimFlowPlant_BoilerFlowMode></SimFlowPlant_Boiler_BoilerHotWater>
<SimFlowMover_Pump_VariableSpeedReturn RefId="ID0LMbjl8XfFaui1YxJs_D1q"><simcore:SimUniqueID>0LMbjl8XfFaui1YxJs_D1q</simcore:SimUniqueID><simcore:SimModelSubtype>true</simcore:SimModelSubtype><simcore:SimModelName>EnEff_Pump:Standard:908032</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 </simcore:AssignedToGroups><simmep:SimFlowMover_Name>EnEff_Pump:Standard:908032</simmep:SimFlowMover_Name><simmep:SimFlowMover_MotorEff>0.9</simmep:SimFlowMover_MotorEff><simmep:SimFlowMover_MinFlowRate>0.02</simmep:SimFlowMover_MinFlowRate><simmep:SimFlowMover_RatedFlowRate>0.02</simmep:SimFlowMover_RatedFlowRate><simmep:SimFlowMover_RatedPumpHead>544.13</simmep:SimFlowMover_RatedPumpHead><simmep:SimFlowMover_FracMotorInEffToFluidStream>0</simmep:SimFlowMover_FracMotorInEffToFluidStream><simmep:SimFlowMover_Coef1OfThePartLoadPerfCurve>0.78</simmep:SimFlowMover_Coef1OfThePartLoadPerfCurve><simmep:SimFlowMover_Coef2OfThePartLoadPerfCurve>0</simmep:SimFlowMover_Coef2OfThePartLoadPerfCurve><simmep:SimFlowMover_Coef3OfThePartLoadPerfCurve>0</simmep:SimFlowMover_Coef3OfThePartLoadPerfCurve><simmep:SimFlowMover_Coef4OfThePartLoadPerfCurve>0</simmep:SimFlowMover_Coef4OfThePartLoadPerfCurve><simmep:SimFlowMover_PumpContType>OnOff</simmep:SimFlowMover_PumpContType><simmep:SimFlowMover_PumprpmSchedName>ID_prv01_0LMbjl8XfFaui1YxJs_D1q</simmep:SimFlowMover_PumprpmSchedName></SimFlowMover_Pump_VariableSpeedReturn>
<SimFlowPlant_Boiler_BoilerHotWater RefId="ID0LMbjl8XfFaui1YxJs_D66"><simcore:SimUniqueID>0LMbjl8XfFaui1YxJs_D66</simcore:SimUniqueID><simcore:SimModelName>EnEff_Boiler:Standard:908018</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 ID0LMbjl8XfFaui1YxJs_D11 </simcore:AssignedToGroups><simmep:SimFlowPlant_Name>EnEff_Boiler:Standard:908018</simmep:SimFlowPlant_Name><simmep:SimFlowPlant_FuelType>NaturalGas</simmep:SimFlowPlant_FuelType><simmep:SimFlowPlant_NomCap>215005.058334194</simmep:SimFlowPlant_NomCap><simmep:SimFlowPlant_NomThermalEff>846.85</simmep:SimFlowPlant_NomThermalEff><simmep:SimFlowPlant_DesignWaterOutletTemp>70</simmep:SimFlowPlant_DesignWaterOutletTemp><simmep:SimFlowPlant_DesignWaterFlowRate>0.00706293334429772</simmep:SimFlowPlant_DesignWaterFlowRate><simmep:SimFlowPlant_MinPartLoadRatio>1</simmep:SimFlowPlant_MinPartLoadRatio><simmep:SimFlowPlant_MaxPartLoadRatio>0</simmep:SimFlowPlant_MaxPartLoadRatio><simmep:SimFlowPlant_OptimumPartLoadRatio>0.9</simmep:SimFlowPlant_OptimumPartLoadRatio><simmep:SimFlowPlant_WaterOutletUpTempLimit>383.15</simmep:SimFlowPlant_WaterOutletUpTempLimit><simmep:SimFlowPlant_BoilerFlowMode>Variable</simmep:SimFlowPlant_BoilerFlowMode></SimFlowPlant_Boiler_BoilerHotWater>
<SimFlowSegment_Pipe_Indoor RefId="ID0LMbjl8XfFaui1YxJs_D67"><simcore:SimModelName>Rohrtypen:Kupfer - Hartgelötet:908019</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 </simcore:AssignedToGroups><simmep:SimFlowSeg_PipesideDiam>14</simmep:SimFlowSeg_PipesideDiam></SimFlowSegment_Pipe_Indoor>
<SimFlowSegment_Pipe_Indoor RefId="ID0LMbjl8XfFaui1YxJs_D63"><simcore:SimModelName>Rohrtypen:Kupfer - Hartgelötet:908023</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 </simcore:AssignedToGroups><simmep:SimFlowSeg_PipesideDiam>14</simmep:SimFlowSeg_PipesideDiam></SimFlowSegment_Pipe_Indoor>
<SimFlowSegment_Pipe_Indoor RefId="ID0LMbjl8XfFaui1YxJs_D6D"><simcore:SimModelName>Rohrtypen:Kupfer - Hartgelötet:908025</simcore:SimModelName><simcore:AssignedToGroups>ID0LMbjl8XfFaui1YxJs_D10 </simcore:AssignedToGroups><simmep:SimFlowSeg_PipesideDiam>14</simmep:SimFlowSeg_PipesideDiam></SimFlowSegment_Pipe_Indoor>
......@@ -132,4 +132,7 @@
<SimSpace_Occupied_Default RefId="ID2ihFYl6O5D2gWs_3Zjewya"><simcore:SimModelName/></SimSpace_Occupied_Default>
<SimSystem_HvacHotWater_Demand RefId="ID0LMbjl8XfFaui1YxJs_D11"/>
<SimSystem_HvacHotWater_Supply RefId="ID0LMbjl8XfFaui1YxJs_D10"/>
<SimTimeSeriesSchedule_Day_Interval RefId="ID_prv03_0LMbjl8XfFaui1YxJs_D1q"><simcore:SimUniqueID>_prv03_0LMbjl8XfFaui1YxJs_D1q</simcore:SimUniqueID><simres:SimTimeSeriesSched_Time_1_144>1 </simres:SimTimeSeriesSched_Time_1_144><simres:SimTimeSeriesSched_ValUntilTime_1_144>1 </simres:SimTimeSeriesSched_ValUntilTime_1_144></SimTimeSeriesSchedule_Day_Interval>
<SimTimeSeriesSchedule_Week_Daily RefId="ID_prv02_0LMbjl8XfFaui1YxJs_D1q"><simcore:SimUniqueID>_prv02_0LMbjl8XfFaui1YxJs_D1q</simcore:SimUniqueID></SimTimeSeriesSchedule_Week_Daily>
<SimTimeSeriesSchedule_Year_Default RefId="ID_prv01_0LMbjl8XfFaui1YxJs_D1q"><simcore:SimUniqueID>_prv01_0LMbjl8XfFaui1YxJs_D1q</simcore:SimUniqueID><simcore:SimModelType>Year</simcore:SimModelType><simcore:SimModelName>RotationSpeed</simcore:SimModelName><simres:SimTimeSeriesSched_Name>RotationSpeed</simres:SimTimeSeriesSched_Name><simres:SimTimeSeriesSched_StartMonth_1_53>01</simres:SimTimeSeriesSched_StartMonth_1_53><simres:SimTimeSeriesSched_StartDay_1_53>01</simres:SimTimeSeriesSched_StartDay_1_53><simres:SimTimeSeriesSched_EndMonth_1_53>12</simres:SimTimeSeriesSched_EndMonth_1_53><simres:SimTimeSeriesSched_EndDay_1_53>31</simres:SimTimeSeriesSched_EndDay_1_53></SimTimeSeriesSchedule_Year_Default>
</SimModel>
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) GenerateTargetElement.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="GenerateTargetElement"> <xsl:param name="KeyPool"/> <xsl:param name="simelemname"/> <xsl:param name="unsortedtargetcontent"/> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:element name="{$simelemname}"> <xsl:attribute name="RefId"><xsl:call-template name="TargetValueFormatConditions"><xsl:with-param name="sourcename"><xsl:value-of select="'GlobalId'"/></xsl:with-param><xsl:with-param name="sourcevalue"><xsl:value-of select="@GlobalId"/></xsl:with-param></xsl:call-template></xsl:attribute> <xsl:call-template name="IterateAlongSequenceOrder"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="CurrentSimElementName" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$unsortedtargetcontent"/> </xsl:call-template> </xsl:element> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:param name="KeyPool"/> <xsl:param name="preEvaluation"/> <xsl:variable name="elementId" select="@GlobalId"/> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:variable name="PropertySetsByType"> <xsl:call-template name="IfcType"> </xsl:call-template> </xsl:variable> <xsl:variable name="PropertySetsByRelDefBy"> <xsl:call-template name="ResolveIfcRelDefinesByProperties"> </xsl:call-template> <xsl:if test="current()/IsDefinedBy"> <xsl:for-each select="current()/IsDefinedBy/IfcRelDefinesByProperties/RelatingPropertyDefinition"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:variable> <xsl:variable name="ConcatedPsetCollections"> <xsl:call-template name="DuplicateFilterSourceObjectPropertyCollectionMerge"> <xsl:with-param name="firstCollection" select="$PropertySetsByRelDefBy"/> <xsl:with-param name="secondCollection" select="$PropertySetsByType"/> </xsl:call-template> </xsl:variable> <xsl:for-each select="msxsl:node-set($ConcatedPsetCollections)/*"> <xsl:call-template name="IfcPropertySet"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="MergeTargetElementContentCollections"> <xsl:param name="generictargetcontent"/> <xsl:param name="resolvedfromproperties"/> <xsl:for-each select="msxsl:node-set($generictargetcontent)/node()"> <xsl:variable name="psetitem" select="local-name()"/> <xsl:variable name="check_pset_pregem"> <xsl:for-each select="msxsl:node-set($resolvedfromproperties)/node()"> <xsl:if test="local-name() = $psetitem"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="$check_pset_pregem != ''"> <xsl:copy-of select="$check_pset_pregem"/> </xsl:when> <xsl:otherwise> <xsl:copy-of select="current()"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="filterAllElementContents"> <xsl:param name="input"/> <xsl:for-each select="msxsl:node-set($input)/node()"> <xsl:if test="not(starts-with(local-name(), 'eeBIMc_FLAG_')) or not(starts-with(local-name(), 'eeBIMprv01_FLAG_')) or not(starts-with(local-name(), 'eeBIMprv02_FLAG_')) or not(starts-with(local-name(), 'eeBIMprv03_FLAG_'))"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template name="filterAllOtherContents"> <xsl:param name="input"/> <xsl:param name="token"/> <xsl:variable name="filter"> <xsl:for-each select="msxsl:node-set($input)/node()"> <xsl:if test="starts-with(local-name(), $token)"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="msxsl:node-set($filter)/node()"> <xsl:copy-of select="$filter"/> </xsl:when> <xsl:otherwise>FALSE</xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="FillSceleton"> <xsl:param name="taggedTargetContent"/> <xsl:param name="prefixToken"/> <xsl:for-each select="msxsl:node-set($taggedTargetContent)/node()"> <xsl:variable name="designatedElementTargetName"> <xsl:value-of select="substring-before(text(), ' ' )"/> </xsl:variable> <xsl:choose> <xsl:when test="contains(name(), 'eeBIMc_FLAG_SimDummy')"> <xsl:element name="{normalize-space($designatedElementTargetName)}"> <xsl:attribute name="RefId"><xsl:value-of select="normalize-space(substring-after(text(), ' ' ))"/></xsl:attribute> <xsl:for-each select="msxsl:node-set($taggedTargetContent)/node()"> <xsl:if test="not(contains(name(), 'SimDummy')) and normalize-space(substring-after(local-name(),$prefixToken)) != '' and substring-before(text(), ' ') != ''"> <xsl:element name="{normalize-space(substring-before(text(), ' '))}"> <xsl:value-of select="substring-after(text(), ' ')"/> </xsl:element> </xsl:if> </xsl:for-each> </xsl:element> </xsl:when> <xsl:when test="contains(name(), 'SimDummy')"> <xsl:element name="{normalize-space($designatedElementTargetName)}"> <xsl:attribute name="RefId"><xsl:value-of select="normalize-space(substring-after(text(), ' ' ))"/></xsl:attribute> <xsl:variable name="content"> <xsl:for-each select="msxsl:node-set($taggedTargetContent)/node()"> <xsl:if test="not(contains(name(), 'SimDummy')) and normalize-space(substring-after(local-name(),$prefixToken)) != '' and substring-before(text(), ' ') != ''"> <xsl:variable name="simelemname" select="normalize-space(substring-before(text(), ' '))"/> <xsl:element name="{$simelemname}"> <xsl:choose> <xsl:when test="contains(substring-after(text(), ' '),'__')"> <xsl:call-template name="resolve_valtype_val_list"> <xsl:with-param name="list" select="substring-after(text(), ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-after(text(), ' ')"/> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:call-template name="IterateAlongSequenceOrder"> <xsl:with-param name="CurrentSimElementName" select="$designatedElementTargetName"/> <xsl:with-param name="unsortedtargetcontent" select="$content"/> </xsl:call-template> </xsl:element> </xsl:when> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="resolve_valtype_val_list"> <xsl:param name="list"/> <xsl:choose> <xsl:when test="not(contains(substring-after(substring-after($list,'__'),'__'),'__'))"> <xsl:element name="{substring-before(substring-after($list,'__'),'__')}"> <xsl:value-of select="substring-after(substring-after($list,'__'),'__')"/> </xsl:element> </xsl:when> <xsl:when test="contains(substring-after(substring-after($list,'__'),'__'),'__')"> <xsl:element name="{substring-before(substring-after($list,'__'),'__')}"> <xsl:value-of select="substring-before(substring-after(substring-after($list,'__'),'__'),'__')"/> </xsl:element> <xsl:call-template name="resolve_valtype_val_list"> <xsl:with-param name="list" select="substring-after(substring-after($list,'__'),'__')"/> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) GenerateTargetElement.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="GenerateTargetElement"> <xsl:param name="KeyPool"/> <xsl:param name="simelemname"/> <xsl:param name="unsortedtargetcontent"/> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:element name="{$simelemname}"> <xsl:attribute name="RefId"><xsl:call-template name="TargetValueFormatConditions"><xsl:with-param name="sourcename"><xsl:value-of select="'GlobalId'"/></xsl:with-param><xsl:with-param name="sourcevalue"><xsl:value-of select="@GlobalId"/></xsl:with-param></xsl:call-template></xsl:attribute> <xsl:call-template name="IterateAlongSequenceOrder"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="CurrentSimElementName" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$unsortedtargetcontent"/> </xsl:call-template> </xsl:element> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:param name="KeyPool"/> <xsl:param name="preEvaluation"/> <xsl:variable name="elementId" select="@GlobalId"/> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:variable name="PropertySetsByType"> <xsl:call-template name="IfcType"> </xsl:call-template> </xsl:variable> <xsl:variable name="PropertySetsByRelDefBy"> <xsl:call-template name="ResolveIfcRelDefinesByProperties"> </xsl:call-template> <xsl:if test="current()/IsDefinedBy"> <xsl:for-each select="current()/IsDefinedBy/IfcRelDefinesByProperties/RelatingPropertyDefinition"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:variable> <xsl:variable name="ConcatedPsetCollections"> <xsl:call-template name="DuplicateFilterSourceObjectPropertyCollectionMerge"> <xsl:with-param name="firstCollection" select="$PropertySetsByRelDefBy"/> <xsl:with-param name="secondCollection" select="$PropertySetsByType"/> </xsl:call-template> </xsl:variable> <xsl:for-each select="msxsl:node-set($ConcatedPsetCollections)/*"> <xsl:call-template name="IfcPropertySet"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="MergeTargetElementContentCollections"> <xsl:param name="generictargetcontent"/> <xsl:param name="resolvedfromproperties"/> <xsl:for-each select="msxsl:node-set($generictargetcontent)/node()"> <xsl:variable name="psetitem" select="local-name()"/> <xsl:variable name="check_pset_pregem"> <xsl:for-each select="msxsl:node-set($resolvedfromproperties)/node()"> <xsl:if test="local-name() = $psetitem"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="$check_pset_pregem != ''"> <xsl:copy-of select="$check_pset_pregem"/> </xsl:when> <xsl:otherwise> <xsl:copy-of select="current()"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="filterAllElementContents"> <xsl:param name="input"/> <xsl:for-each select="msxsl:node-set($input)/node()"> <xsl:if test="not(starts-with(local-name(), 'eeBIMc_FLAG_')) or not(starts-with(local-name(), 'eeBIMprv01_FLAG_')) or not(starts-with(local-name(), 'eeBIMprv02_FLAG_')) or not(starts-with(local-name(), 'eeBIMprv03_FLAG_'))"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template name="filterAllOtherContents"> <xsl:param name="input"/> <xsl:param name="token"/> <xsl:variable name="filter"> <xsl:for-each select="msxsl:node-set($input)/node()"> <xsl:if test="starts-with(local-name(), $token)"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="msxsl:node-set($filter)/node()"> <xsl:copy-of select="$filter"/> </xsl:when> <xsl:otherwise>FALSE</xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="FillSceleton"> <xsl:param name="taggedTargetContent"/> <xsl:param name="prefixToken"/> <xsl:for-each select="msxsl:node-set($taggedTargetContent)/node()"> <xsl:variable name="designatedElementTargetName"> <xsl:value-of select="substring-before(text(), ' ' )"/> </xsl:variable> <xsl:choose> <xsl:when test="contains(name(), 'eeBIMc_FLAG_SimDummy')"> <xsl:element name="{normalize-space($designatedElementTargetName)}"> <xsl:attribute name="RefId"><xsl:value-of select="normalize-space(substring-after(text(), ' ' ))"/></xsl:attribute> <xsl:for-each select="msxsl:node-set($taggedTargetContent)/node()"> <xsl:if test="not(contains(name(), 'SimDummy')) and normalize-space(substring-after(local-name(),$prefixToken)) != '' and substring-before(text(), ' ') != ''"> <xsl:element name="{normalize-space(substring-before(text(), ' '))}"> <xsl:value-of select="substring-after(text(), ' ')"/> </xsl:element> </xsl:if> </xsl:for-each> </xsl:element> </xsl:when> <xsl:when test="contains(name(), 'SimDummy')"> <xsl:element name="{normalize-space($designatedElementTargetName)}"> <xsl:attribute name="RefId"><xsl:value-of select="normalize-space(substring-after(text(), ' ' ))"/></xsl:attribute> <xsl:variable name="content"> <xsl:for-each select="msxsl:node-set($taggedTargetContent)/node()"> <xsl:if test="not(contains(name(), 'SimDummy')) and normalize-space(substring-after(local-name(),$prefixToken)) != '' and substring-before(text(), ' ') != ''"> <xsl:variable name="simelemname" select="normalize-space(substring-before(text(), ' '))"/> <xsl:element name="{$simelemname}"> <xsl:choose> <xsl:when test="contains(substring-after(text(), ' '),'__')"> <xsl:call-template name="resolve_valtype_val_list"> <xsl:with-param name="list" select="substring-after(text(), ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-after(text(), ' ')"/> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:call-template name="IterateAlongSequenceOrder"> <xsl:with-param name="CurrentSimElementName" select="$designatedElementTargetName"/> <xsl:with-param name="unsortedtargetcontent" select="$content"/> </xsl:call-template> </xsl:element> </xsl:when> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="resolve_valtype_val_list"> <xsl:param name="list"/> <xsl:choose> <xsl:when test="not(contains(substring-after(substring-after($list,'__'),'__'),'__'))"> <xsl:element name="{substring-before(substring-after($list,'__'),'__')}"> <xsl:value-of select="substring-after(substring-after($list,'__'),'__')"/> </xsl:element> </xsl:when> <xsl:when test="contains(substring-after(substring-after($list,'__'),'__'),'__')"> <xsl:element name="{substring-before(substring-after($list,'__'),'__')}"> <xsl:value-of select="substring-before(substring-after(substring-after($list,'__'),'__'),'__')"/> </xsl:element> <xsl:call-template name="resolve_valtype_val_list"> <xsl:with-param name="list" select="substring-after(substring-after($list,'__'),'__')"/> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcActor.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcActor"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcActor.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcActor"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcController.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcController" match="ifc:IfcController" mode="experimental"> <SimController_SupplyWater_Temperature RefId="ID877"> <simcore:SimUniqueID>ef8214c0-7b34-45cf-a4f5-b4a0473ccf13</simcore:SimUniqueID> <simcore:SimModelType>SupplyWater</simcore:SimModelType> <simcore:SimModelSubtype>Temperature</simcore:SimModelSubtype> <simcore:SimModelName>WTS-1</simcore:SimModelName> <simcore:SourceModelSchema>Simergy v1.9.0.20090</simcore:SourceModelSchema> <simcore:SourceModelObjectType>SIM:SimController</simcore:SourceModelObjectType> <simcore:IsTemplateObject>false</simcore:IsTemplateObject> <simcore:AssignedToGroups>ID851</simcore:AssignedToGroups> <simcore:Tag>WTS-1</simcore:Tag> <simcore:SelectedPropertyGroups> <simcore:stringItem>Controller:WaterTemperature</simcore:stringItem> </simcore:SelectedPropertyGroups> <simmep:SimCntrl_ControllerScheme_1>ID833</simmep:SimCntrl_ControllerScheme_1> </SimController_SupplyWater_Temperature> </xsl:template> <xsl:template name="tryAssembleTargetController"> <xsl:param name="input"/> <xsl:variable name="filterAllControllerContents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMc_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="$filterAllControllerContents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllControllerContents"/> <xsl:with-param name="prefixToken" select="'eeBIMc_FLAG_'"/> </xsl:call-template> </xsl:when> <xsl:otherwise> FALSE </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcController.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcController" match="ifc:IfcController" mode="experimental"> <SimController_SupplyWater_Temperature RefId="ID877"> <simcore:SimUniqueID>ef8214c0-7b34-45cf-a4f5-b4a0473ccf13</simcore:SimUniqueID> <simcore:SimModelType>SupplyWater</simcore:SimModelType> <simcore:SimModelSubtype>Temperature</simcore:SimModelSubtype> <simcore:SimModelName>WTS-1</simcore:SimModelName> <simcore:SourceModelSchema>Simergy v1.9.0.20090</simcore:SourceModelSchema> <simcore:SourceModelObjectType>SIM:SimController</simcore:SourceModelObjectType> <simcore:IsTemplateObject>false</simcore:IsTemplateObject> <simcore:AssignedToGroups>ID851</simcore:AssignedToGroups> <simcore:Tag>WTS-1</simcore:Tag> <simcore:SelectedPropertyGroups> <simcore:stringItem>Controller:WaterTemperature</simcore:stringItem> </simcore:SelectedPropertyGroups> <simmep:SimCntrl_ControllerScheme_1>ID833</simmep:SimCntrl_ControllerScheme_1> </SimController_SupplyWater_Temperature> </xsl:template> <xsl:template name="tryAssembleTargetController"> <xsl:param name="input"/> <xsl:variable name="filterAllControllerContents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMc_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="$filterAllControllerContents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllControllerContents"/> <xsl:with-param name="prefixToken" select="'eeBIMc_FLAG_'"/> </xsl:call-template> </xsl:when> <xsl:otherwise> FALSE </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcGroup.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcGroup"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != '' and @GlobalId != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcOccupant.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcOccupant"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcOccupant.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcOccupant"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSystem.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcSystem" match="ifc:IfcSystem | ifc:RelatingGroup[@xsi:type = 'IfcSystem']"> <xsl:param name="KeyPool"/> <xsl:choose> <xsl:when test="local-name() = 'IfcSystem'"> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$KeyPool != '' and @GlobalId !=''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:when> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSystem.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcSystem" match="ifc:IfcSystem | ifc:RelatingGroup[@xsi:type = 'IfcSystem']"> <xsl:param name="KeyPool"/> <xsl:choose> <xsl:when test="local-name() = 'IfcSystem'"> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$KeyPool != '' and @GlobalId !=''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:when> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcTank.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcTank"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcTank.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcTank"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcZone.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcZone"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcZone.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcZone"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBoiler.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBoiler"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBoiler.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBoiler"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBuilding.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBuilding" name="GetIfcBuilding" mode="traverse"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects != ''"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/node()"> <xsl:apply-templates select="current()" mode="traverse"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template match="ifc:IfcBuilding"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBuilding.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBuilding" name="GetIfcBuilding" mode="traverse"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects != ''"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/node()"> <xsl:apply-templates select="current()" mode="traverse"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template match="ifc:IfcBuilding"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBuildingStorey.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBuildingStorey" name="GetIfcBuildingStorey" mode="traverse"> <xsl:choose> <xsl:when test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/node()"> <xsl:apply-templates select="current()" mode="traverse"/> </xsl:for-each> </xsl:if> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:when test="current()/@ref | current()/@href"> <xsl:variable name="refid" select="current()/@ref | current()/@href"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcBuildingStorey"> <xsl:if test="current()[contains(@id,$refid)]"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/node()"> <xsl:apply-templates select="current()" mode="traverse"/> </xsl:for-each> </xsl:if> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match="ifc:IfcBuildingStorey"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBuildingStorey.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBuildingStorey" name="GetIfcBuildingStorey" mode="traverse"> <xsl:choose> <xsl:when test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/node()"> <xsl:apply-templates select="current()" mode="traverse"/> </xsl:for-each> </xsl:if> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:when test="current()/@ref | current()/@href"> <xsl:variable name="refid" select="current()/@ref | current()/@href"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcBuildingStorey"> <xsl:if test="current()[contains(@id,$refid)]"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/node()"> <xsl:apply-templates select="current()" mode="traverse"/> </xsl:for-each> </xsl:if> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match="ifc:IfcBuildingStorey"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBuildingSystem.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBuildingSystem"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcBuildingSystem.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcBuildingSystem"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcDistributionPort.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcDistributionPort"> <xsl:param name="KeyPool"/> <xsl:param name="parentElement"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> <xsl:with-param name="parentElement" select="$parentElement"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcDistributionPort.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcDistributionPort"> <xsl:param name="KeyPool"/> <xsl:param name="parentElement"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> <xsl:with-param name="parentElement" select="$parentElement"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcDistributionSystem.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcDistributionSystem" match="ifc:IfcDistributionSystem | ifc:RelatingGroup[@xsi:type]"> <xsl:param name="KeyPool"/> <xsl:choose> <xsl:when test="local-name() = 'IfcDistributionSystem'"> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$KeyPool != '' and @GlobalId !=''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:when> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcDistributionSystem.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcDistributionSystem" match="ifc:IfcDistributionSystem | ifc:RelatingGroup[@xsi:type]"> <xsl:param name="KeyPool"/> <xsl:choose> <xsl:when test="local-name() = 'IfcDistributionSystem'"> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$KeyPool != '' and @GlobalId !=''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:when> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcHelper.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:variable name="sourceobjects"> <xsl:for-each select="/ifc:ifcXML/ifc:IfcProject"> <xsl:if test="current()/ifc:IsDecomposedBy | current()/ifc:Declares"> <xsl:call-template name="IfcProject"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="rootchildren"> <xsl:for-each select="/ifc:ifcXML/node()"> <xsl:if test="not(contains(name(), 'IfcProject'))"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="allsourceobjects"> <xsl:copy-of select="$sourceobjects"/> <xsl:copy-of select="$rootchildren"/> </xsl:variable> <xsl:template name="IterateAllSourceObjects"> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:variable name="currentElem" select="current()"/> <xsl:choose> <xsl:when test="current()/ifc:IsNestedBy/ifc:IfcRelNests/ifc:RelatedObjects/ifc:IfcDistributionPort"> <xsl:if test="current()/ifc:IsNestedBy/ifc:IfcRelNests/ifc:RelatedObjects/ifc:IfcDistributionPort[@GlobalId]"> <xsl:for-each select="current()/ifc:IsNestedBy/ifc:IfcRelNests/ifc:RelatedObjects/ifc:IfcDistributionPort"> <xsl:if test="current()[@GlobalId]"> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> <xsl:with-param name="parentElement" select="$currentElem"/> </xsl:call-template> </xsl:if> </xsl:for-each> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:when test="current()/ifc:RelatedObjects/ifc:IfcDistributionPort | current()/ifc:RelatingGroup"> <xsl:for-each select="current()/ifc:RelatedObjects/ifc:IfcDistributionPort"> <xsl:if test="current()[@GlobalId]"> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="'ifc:IfcDistributionPort'"/> <xsl:with-param name="parentElement" select="$currentElem"/> </xsl:call-template> </xsl:if> </xsl:for-each> <xsl:if test="current()/ifc:RelatingGroup[@GlobalId]"> <xsl:for-each select="current()/ifc:RelatingGroup"> <xsl:variable name="typename" select="@xsi:type"/> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="normalize-space($typename)"/> <xsl:with-param name="parentElement" select="'whoami'"/> </xsl:call-template> </xsl:for-each> </xsl:if> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="TargetValueFormatConditions"> <xsl:param name="sourcename"/> <xsl:param name="sourcevalue"/> <xsl:param name="targetname"/> <xsl:variable name="addedvalue"> <xsl:if test="$sourcename = 'GlobalId'"> <xsl:value-of select="concat('ID',$sourcevalue)"/> </xsl:if> </xsl:variable> <xsl:choose> <xsl:when test="not(contains($targetname,'UniqueID'))"> <xsl:call-template name="remove"> <xsl:with-param name="input"> <xsl:value-of select="$addedvalue"/> </xsl:with-param> <xsl:with-param name="removal" select="'$'"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$addedvalue"/> </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcHelper.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:variable name="sourceobjects"> <xsl:for-each select="/ifc:ifcXML/ifc:IfcProject"> <xsl:if test="current()/ifc:IsDecomposedBy | current()/ifc:Declares"> <xsl:call-template name="IfcProject"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="rootchildren"> <xsl:for-each select="/ifc:ifcXML/node()"> <xsl:if test="not(contains(name(), 'IfcProject'))"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="allsourceobjects"> <xsl:copy-of select="$sourceobjects"/> <xsl:copy-of select="$rootchildren"/> </xsl:variable> <xsl:template name="IterateAllSourceObjects"> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:variable name="currentElem" select="current()"/> <xsl:choose> <xsl:when test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/ifc:IfcGroup[@GlobalId]"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/ifc:IfcGroup[@GlobalId]"> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:for-each> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:when> <xsl:when test="current()/ifc:IsNestedBy/ifc:IfcRelNests/ifc:RelatedObjects/ifc:IfcDistributionPort"> <xsl:if test="current()/ifc:IsNestedBy/ifc:IfcRelNests/ifc:RelatedObjects/ifc:IfcDistributionPort[@GlobalId]"> <xsl:for-each select="current()/ifc:IsNestedBy/ifc:IfcRelNests/ifc:RelatedObjects/ifc:IfcDistributionPort"> <xsl:if test="current()[@GlobalId]"> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> <xsl:with-param name="parentElement" select="$currentElem"/> </xsl:call-template> </xsl:if> </xsl:for-each> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:when test="current()/ifc:RelatedObjects/ifc:IfcDistributionPort | current()/ifc:RelatingGroup"> <xsl:for-each select="current()/ifc:RelatedObjects/ifc:IfcDistributionPort"> <xsl:if test="current()[@GlobalId]"> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="'ifc:IfcDistributionPort'"/> <xsl:with-param name="parentElement" select="$currentElem"/> </xsl:call-template> </xsl:if> </xsl:for-each> <xsl:if test="current()/ifc:RelatingGroup[@GlobalId]"> <xsl:for-each select="current()/ifc:RelatingGroup"> <xsl:variable name="typename" select="@xsi:type"/> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="normalize-space($typename)"/> <xsl:with-param name="parentElement" select="'whoami'"/> </xsl:call-template> </xsl:for-each> </xsl:if> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="KeyPoolHelper"> <xsl:with-param name="currentElement" select="name()"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="TargetValueFormatConditions"> <xsl:param name="sourcename"/> <xsl:param name="sourcevalue"/> <xsl:param name="targetname"/> <xsl:variable name="addedvalue"> <xsl:if test="$sourcename = 'GlobalId'"> <xsl:value-of select="concat('ID',$sourcevalue)"/> </xsl:if> </xsl:variable> <xsl:choose> <xsl:when test="not(contains($targetname,'UniqueID'))"> <xsl:call-template name="remove"> <xsl:with-param name="input"> <xsl:value-of select="$addedvalue"/> </xsl:with-param> <xsl:with-param name="removal" select="'$'"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$addedvalue"/> </xsl:otherwise> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcPipeFitting.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcPipeFitting" name="IfcPipeFitting"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcPipeFitting.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcPipeFitting" name="IfcPipeFitting"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcPipeSegment.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcPipeSegment"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcPipeSegment.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcPipeSegment"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcProject.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcProject" match="ifc:IfcProject" mode="traverse"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:Declares"> <xsl:for-each select="current()/ifc:Declares/node()"> <xsl:call-template name="IfcRelDeclares"/> </xsl:for-each> </xsl:if> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects != ''"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/ifc:IfcSite"> <xsl:call-template name="IfcSite"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="IfcRelDeclares"> <xsl:for-each select="current()/ifc:RelatedDefinitions/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:template> <xsl:template match="ifc:IfcProject"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcProject.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcProject" match="ifc:IfcProject" mode="traverse"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:Declares"> <xsl:for-each select="current()/ifc:Declares/node()"> <xsl:call-template name="IfcRelDeclares"/> </xsl:for-each> </xsl:if> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects != ''"> <xsl:for-each select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects/ifc:IfcSite"> <xsl:call-template name="IfcSite"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="IfcRelDeclares"> <xsl:for-each select="current()/ifc:RelatedDefinitions/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:template> <xsl:template match="ifc:IfcProject"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:template name="IfcPropertySet"> <xsl:param name="KeyPool"/> <xsl:param name="preEvaluation"/> <xsl:param name="elementId"/> <xsl:if test="$KeyPool != '' or $preEvaluation != ''"> <xsl:choose> <xsl:when test="current()[@GlobalId]"> <xsl:variable name="psetname" select="current()/@Name"/> <xsl:for-each select="current()/ifc:HasProperties/node()"> <xsl:choose> <xsl:when test="not(current()[@ref | @href])"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:if test="@ref | @href"> <xsl:variable name="pid"> <xsl:copy> <xsl:value-of select="@ref | @href"/> </xsl:copy> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/*[@id]"> <xsl:if test="current()[contains(@id,$pid)]"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:when> <xsl:when test="current()/@ref | current()/@href"> <xsl:variable name="refid" select="current()/@ref | current()/@href"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/*/ifc:IfcPropertySet"> <xsl:if test="current()[contains(@id,$refid)]"> <xsl:if test="current()[@GlobalId]"> <xsl:variable name="psetname" select="current()/@Name"/> <xsl:for-each select="current()/ifc:HasProperties/node()"> <xsl:choose> <xsl:when test="not(current()[@ref | @href])"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:if test="@ref | @href"> <xsl:variable name="pid"> <xsl:copy> <xsl:value-of select="@ref | @href"/> </xsl:copy> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/*[@id]"> <xsl:if test="current()[contains(@id,$pid)]"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:if> </xsl:template> <xsl:template name="resolveReferenceProperty"> <xsl:if test="local-name() = 'IfcPropertyReferenceValue'"> <xsl:for-each select="current()/ifc:PropertyReference/node()"> <xsl:variable name="buildKeyPool"> <xsl:call-template name="KeyPoolBuilder"> <xsl:with-param name="ElementName" select="local-name()"/> </xsl:call-template> </xsl:variable> <xsl:apply-templates select="current()"> <xsl:with-param name="KeyPool" select="$buildKeyPool"/> </xsl:apply-templates> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="ResolveIfcRelDefinesByProperties"> <xsl:for-each select="."> <xsl:variable name="elemid"> <xsl:copy> <xsl:value-of select="@id"/> </xsl:copy> </xsl:variable> <xsl:if test="$elemid != ''"> <xsl:for-each select="msxsl:node-set($allsourceobjects)/ifc:IfcRelDefinesByProperties/ifc:RelatedObjects"> <xsl:if test="current()[contains(@ref, $elemid)] | current()[contains(@href, $elemid)]"> <xsl:for-each select="../ifc:RelatingPropertyDefinition/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> <xsl:if test="current()/ifc:IsDefinedBy"> <xsl:for-each select="current()/ifc:IsDefinedBy/ifc:IfcRelDefinesByProperties/ifc:RelatingPropertyDefinition/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template name="GenerateDuplicateList"> <xsl:param name="PSByRelDef"/> <xsl:param name="PSByType"/> <xsl:for-each select="msxsl:node-set($PSByType)/ifc:IfcPropertySet/ifc:HasProperties/node()"> <xsl:variable name="Name" select="@Name"/> <xsl:variable name="psetName" select="../../@Name"/> <xsl:variable name="psetGlobalID" select="../../@GlobalId"/> <xsl:for-each select="msxsl:node-set($PSByRelDef)/ifc:IfcPropertySet/ifc:HasProperties/node()"> <xsl:variable name="RelDefPropertyName" select="@Name"/> <xsl:variable name="RelDefPropertySetName" select="../../@Name"/> <xsl:if test="current()[../../@Name = $psetName]"> <xsl:if test="$Name = $RelDefPropertyName"> <xsl:value-of select="$psetGlobalID"/> </xsl:if> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:template> <xsl:template name="DuplicateFilterSourceObjectPropertyCollectionMerge"> <xsl:param name="firstCollection"/> <xsl:param name="secondCollection"/> <xsl:variable name="DuplicateIDList"> <xsl:call-template name="GenerateDuplicateList"> <xsl:with-param name="PSByRelDef" select="$firstCollection"/> <xsl:with-param name="PSByType" select="$secondCollection"/> </xsl:call-template> </xsl:variable> <xsl:for-each select="msxsl:node-set($secondCollection)/node()"> <xsl:variable name="currentID"> <xsl:value-of select="current()/@GlobalId"/> </xsl:variable> <xsl:if test="not(contains($DuplicateIDList,$currentID))"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> <xsl:copy-of select="$firstCollection"/> </xsl:template> <xsl:template name="tryAssembleTargetElement"> <xsl:param name="input"/> <xsl:variable name="filterAllElement01Contents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMprv01_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterAllElement02Contents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMprv02_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterAllElement03Contents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMprv03_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="$filterAllElement01Contents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllElement01Contents"/> <xsl:with-param name="prefixToken" select="'eeBIMprv01_FLAG_'"/> </xsl:call-template> <xsl:if test="$filterAllElement02Contents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllElement02Contents"/> <xsl:with-param name="prefixToken" select="'eeBIMprv02_FLAG_'"/> </xsl:call-template> </xsl:if> <xsl:if test="$filterAllElement03Contents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllElement03Contents"/> <xsl:with-param name="prefixToken" select="'eeBIMprv03_FLAG_'"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:otherwise> FALSE </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="resolveRefPropContent"> <xsl:param name="KeyPool"/> <xsl:param name="parentid"/> <xsl:param name="token"/> <xsl:variable name="cleanedupKeyPool"> <xsl:call-template name="CleanPool"> <xsl:with-param name="KeyPool" select="substring-before($KeyPool, '§')"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="contains($KeyPool, '§') and not(substring-after(substring-before($cleanedupKeyPool, ' Sim'), ' ')=local-name())"> <xsl:variable name="elemname" select="substring-after(substring-after($cleanedupKeyPool, ' Sim'), ':')"/> <xsl:if test="$elemname != ''"> <xsl:variable name="current_FLAG" select="substring-before(substring-after($cleanedupKeyPool, ' Sim'), '.')"/> <xsl:variable name="currenttoken"> <xsl:choose> <xsl:when test="$current_FLAG = 'TimeSeriesSchedule_Year_Default'">eeBIMprv01_FLAG_</xsl:when> <xsl:when test="$current_FLAG = 'TimeSeriesSchedule_Week_Daily'">eeBIMprv02_FLAG_</xsl:when> <xsl:when test="$current_FLAG = 'TimeSeriesSchedule_Day_Interval'">eeBIMprv03_FLAG_</xsl:when> </xsl:choose> </xsl:variable> <xsl:if test="$currenttoken = $token"> <xsl:element name="{normalize-space(concat($token, $elemname))}"> <xsl:value-of select="concat(substring-after(substring-after($cleanedupKeyPool, ' Sim'), '.'),' ')"/> <xsl:variable name="tryGetAttributeOrFieldValue"> <xsl:choose> <xsl:when test="contains(substring-after($cleanedupKeyPool,'###.###.'), 'CB_1')"> <xsl:choose> <xsl:when test="starts-with(substring-after(substring-after($cleanedupKeyPool,'###.###.'), 'CB_1.'), 'ID')"> <xsl:value-of select="substring-before(substring-after(substring-after($cleanedupKeyPool,'###.###.'), 'CB_1.'), ' ')"/> <xsl:value-of select="substring-after(substring-after($parentid, '_'), '_')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$parentid"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="contains(substring-after($cleanedupKeyPool,'###.###.'), 'substring(')"> <xsl:variable name="substrargs" select="substring-before(substring-after($cleanedupKeyPool,'###.###.substring(' ), ')' )"/> <xsl:variable name="firstarg"> <xsl:value-of select="@*[local-name() = substring-before($substrargs, ',')]"/> </xsl:variable> <xsl:variable name="secondarg"> <xsl:value-of select="substring-before(substring-after($substrargs, ','), ',')"/> </xsl:variable> <xsl:variable name="thirdarg"> <xsl:value-of select="substring-after(substring-after($substrargs, ','), ',')"/> </xsl:variable> <xsl:value-of select="substring($firstarg,$secondarg,$thirdarg)"/> </xsl:when> <xsl:when test="not(contains(substring-before(substring-after($cleanedupKeyPool,'###.###.'), ' '), '.'))"> <xsl:value-of select="@*[local-name() = substring-before(substring-after($cleanedupKeyPool,'###.###.'), ' ')]"/> <xsl:for-each select="current()/node()"> <xsl:if test="contains(substring-before(substring-after($cleanedupKeyPool,'###.###.'),' '), local-name()) and current()/*/*/node()"> <xsl:for-each select="current()/*/*/node()"> <xsl:variable name="posint" select="position()"/> <xsl:choose> <xsl:when test="substring-after($cleanedupKeyPool, '__') != ''"> <xsl:variable name="staticval"> <xsl:variable name="term" select="substring-before(substring-after($cleanedupKeyPool,'__'), ' ')"/> <xsl:variable name="int" select="substring-before(substring-after($term, '_'), '_')"/> <xsl:variable name="resint" select="$int +1 - $posint"/> <xsl:value-of select="concat(substring-before($term, '_'),' ')"/> <xsl:value-of select="concat($resint, ':')"/> <xsl:value-of select="substring-after(substring-after($term, '_'), '_')"/> </xsl:variable> <xsl:variable name="itemtype" select="'simcore:stringItem'"/> <xsl:value-of select="concat(concat(concat('__',$itemtype),'__'),$staticval)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="concat(.,' ')"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="$tryGetAttributeOrFieldValue != ''"> <xsl:value-of select="$tryGetAttributeOrFieldValue"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-before(substring-after($cleanedupKeyPool,'###.###.'), ' ')"/> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:if> </xsl:if> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="substring-after($KeyPool, '§')"/> <xsl:with-param name="parentid" select="$parentid"/> <xsl:with-param name="token" select="$token"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:if test="contains($KeyPool, '§')"> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="substring-after($KeyPool, '§')"/> <xsl:with-param name="parentid" select="$parentid"/> <xsl:with-param name="token" select="$token"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="CleanPool"> <xsl:param name="KeyPool"/> <xsl:if test="contains($KeyPool,'###.###.')"> <xsl:if test="contains(substring-after($KeyPool,'###.###.'), ' ') and starts-with(substring-after(substring-after($KeyPool,'###.###.'), ' '), 'Sim')"> <xsl:value-of select="substring-after($KeyPool,' ')"/> </xsl:if> <xsl:call-template name="CleanPool"> <xsl:with-param name="KeyPool" select="substring-after($KeyPool, '###.###.')"/> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:template name="IfcPropertySet"> <xsl:param name="KeyPool"/> <xsl:param name="preEvaluation"/> <xsl:param name="elementId"/> <xsl:if test="$KeyPool != '' or $preEvaluation != ''"> <xsl:choose> <xsl:when test="current()[@GlobalId]"> <xsl:variable name="psetname" select="current()/@Name"/> <xsl:for-each select="current()/ifc:HasProperties/node()"> <xsl:choose> <xsl:when test="not(current()[@ref | @href])"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:if test="@ref | @href"> <xsl:variable name="pid"> <xsl:copy> <xsl:value-of select="@ref | @href"/> </xsl:copy> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/*[@id]"> <xsl:if test="current()[contains(@id,$pid)]"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:when> <xsl:when test="current()/@ref | current()/@href"> <xsl:variable name="refid" select="current()/@ref | current()/@href"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/*/ifc:IfcPropertySet"> <xsl:if test="current()[contains(@id,$refid)]"> <xsl:if test="current()[@GlobalId]"> <xsl:variable name="psetname" select="current()/@Name"/> <xsl:for-each select="current()/ifc:HasProperties/node()"> <xsl:choose> <xsl:when test="not(current()[@ref | @href])"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:if test="@ref | @href"> <xsl:variable name="pid"> <xsl:copy> <xsl:value-of select="@ref | @href"/> </xsl:copy> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/*[@id]"> <xsl:if test="current()[contains(@id,$pid)]"> <xsl:variable name="pname" select="current()/@Name"/> <xsl:variable name="pvalue" select="."/> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:if> </xsl:template> <xsl:template name="resolveReferenceProperty"> <xsl:if test="local-name() = 'IfcPropertyReferenceValue'"> <xsl:for-each select="current()/ifc:PropertyReference/node()"> <xsl:variable name="buildKeyPool"> <xsl:call-template name="KeyPoolBuilder"> <xsl:with-param name="ElementName" select="local-name()"/> </xsl:call-template> </xsl:variable> <xsl:apply-templates select="current()"> <xsl:with-param name="KeyPool" select="$buildKeyPool"/> </xsl:apply-templates> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="ResolveIfcRelDefinesByProperties"> <xsl:for-each select="."> <xsl:variable name="elemid"> <xsl:copy> <xsl:value-of select="@id"/> </xsl:copy> </xsl:variable> <xsl:if test="$elemid != ''"> <xsl:for-each select="msxsl:node-set($allsourceobjects)/ifc:IfcRelDefinesByProperties/ifc:RelatedObjects"> <xsl:if test="current()[contains(@ref, $elemid)] | current()[contains(@href, $elemid)]"> <xsl:for-each select="../ifc:RelatingPropertyDefinition/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> <xsl:if test="current()/ifc:IsDefinedBy"> <xsl:for-each select="current()/ifc:IsDefinedBy/ifc:IfcRelDefinesByProperties/ifc:RelatingPropertyDefinition/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template name="GenerateDuplicateList"> <xsl:param name="PSByRelDef"/> <xsl:param name="PSByType"/> <xsl:for-each select="msxsl:node-set($PSByType)/ifc:IfcPropertySet/ifc:HasProperties/node()"> <xsl:variable name="Name" select="@Name"/> <xsl:variable name="psetName" select="../../@Name"/> <xsl:variable name="psetGlobalID" select="../../@GlobalId"/> <xsl:for-each select="msxsl:node-set($PSByRelDef)/ifc:IfcPropertySet/ifc:HasProperties/node()"> <xsl:variable name="RelDefPropertyName" select="@Name"/> <xsl:variable name="RelDefPropertySetName" select="../../@Name"/> <xsl:if test="current()[../../@Name = $psetName]"> <xsl:if test="$Name = $RelDefPropertyName"> <xsl:value-of select="$psetGlobalID"/> </xsl:if> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:template> <xsl:template name="DuplicateFilterSourceObjectPropertyCollectionMerge"> <xsl:param name="firstCollection"/> <xsl:param name="secondCollection"/> <xsl:variable name="DuplicateIDList"> <xsl:call-template name="GenerateDuplicateList"> <xsl:with-param name="PSByRelDef" select="$firstCollection"/> <xsl:with-param name="PSByType" select="$secondCollection"/> </xsl:call-template> </xsl:variable> <xsl:for-each select="msxsl:node-set($secondCollection)/node()"> <xsl:variable name="currentID"> <xsl:value-of select="current()/@GlobalId"/> </xsl:variable> <xsl:if test="not(contains($DuplicateIDList,$currentID))"> <xsl:copy-of select="current()"/> </xsl:if> </xsl:for-each> <xsl:copy-of select="$firstCollection"/> </xsl:template> <xsl:template name="tryAssembleTargetElement"> <xsl:param name="input"/> <xsl:variable name="filterAllElement01Contents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMprv01_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterAllElement02Contents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMprv02_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterAllElement03Contents"> <xsl:call-template name="filterAllOtherContents"> <xsl:with-param name="input" select="$input"/> <xsl:with-param name="token" select="'eeBIMprv03_FLAG_'"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="$filterAllElement01Contents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllElement01Contents"/> <xsl:with-param name="prefixToken" select="'eeBIMprv01_FLAG_'"/> </xsl:call-template> <xsl:if test="$filterAllElement02Contents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllElement02Contents"/> <xsl:with-param name="prefixToken" select="'eeBIMprv02_FLAG_'"/> </xsl:call-template> </xsl:if> <xsl:if test="$filterAllElement03Contents != 'FALSE'"> <xsl:call-template name="FillSceleton"> <xsl:with-param name="taggedTargetContent" select="$filterAllElement03Contents"/> <xsl:with-param name="prefixToken" select="'eeBIMprv03_FLAG_'"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:otherwise> FALSE </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="resolveRefPropContent"> <xsl:param name="KeyPool"/> <xsl:param name="parentid"/> <xsl:param name="token"/> <xsl:variable name="cleanedupKeyPool"> <xsl:call-template name="CleanPool"> <xsl:with-param name="KeyPool" select="substring-before($KeyPool, '§')"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="contains($KeyPool, '§') and not(substring-after(substring-before($cleanedupKeyPool, ' Sim'), ' ')=local-name())"> <xsl:variable name="elemname" select="substring-after(substring-after($cleanedupKeyPool, ' Sim'), ':')"/> <xsl:if test="$elemname != ''"> <xsl:variable name="current_FLAG" select="substring-before(substring-after($cleanedupKeyPool, ' Sim'), '.')"/> <xsl:variable name="currenttoken"> <xsl:choose> <xsl:when test="$current_FLAG = 'TimeSeriesSchedule_Year_Default'">eeBIMprv01_FLAG_</xsl:when> <xsl:when test="$current_FLAG = 'TimeSeriesSchedule_Week_Daily'">eeBIMprv02_FLAG_</xsl:when> <xsl:when test="$current_FLAG = 'TimeSeriesSchedule_Day_Interval'">eeBIMprv03_FLAG_</xsl:when> </xsl:choose> </xsl:variable> <xsl:if test="$currenttoken = $token"> <xsl:element name="{normalize-space(concat($token, $elemname))}"> <xsl:value-of select="concat(substring-after(substring-after($cleanedupKeyPool, ' Sim'), '.'),' ')"/> <xsl:variable name="tryGetAttributeOrFieldValue"> <xsl:choose> <xsl:when test="contains(substring-after($cleanedupKeyPool,'###.###.'), 'CB_1')"> <xsl:choose> <xsl:when test="starts-with(substring-after(substring-after($cleanedupKeyPool,'###.###.'), 'CB_1.'), 'ID')"> <xsl:value-of select="substring-before(substring-after(substring-after($cleanedupKeyPool,'###.###.'), 'CB_1.'), ' ')"/> <xsl:value-of select="substring-after(substring-after($parentid, '_'), '_')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$parentid"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="contains(substring-after($cleanedupKeyPool,'###.###.'), 'substring(')"> <xsl:variable name="substrargs" select="substring-before(substring-after($cleanedupKeyPool,'###.###.substring(' ), ')' )"/> <xsl:variable name="firstarg"> <xsl:value-of select="@*[local-name() = substring-before($substrargs, ',')]"/> </xsl:variable> <xsl:variable name="secondarg"> <xsl:value-of select="substring-before(substring-after($substrargs, ','), ',')"/> </xsl:variable> <xsl:variable name="thirdarg"> <xsl:value-of select="substring-after(substring-after($substrargs, ','), ',')"/> </xsl:variable> <xsl:value-of select="substring($firstarg,$secondarg,$thirdarg)"/> </xsl:when> <xsl:when test="not(contains(substring-before(substring-after($cleanedupKeyPool,'###.###.'), ' '), '.'))"> <xsl:value-of select="@*[local-name() = substring-before(substring-after($cleanedupKeyPool,'###.###.'), ' ')]"/> <xsl:for-each select="current()/node()"> <xsl:if test="contains(substring-before(substring-after($cleanedupKeyPool,'###.###.'),' '), local-name()) and current()/*/*/node()"> <xsl:for-each select="current()/*/*/node()"> <xsl:variable name="posint" select="position()"/> <xsl:choose> <xsl:when test="substring-after($cleanedupKeyPool, '__') != ''"> <xsl:variable name="staticval"> <xsl:variable name="term" select="substring-before(substring-after($cleanedupKeyPool,'__'), ' ')"/> <xsl:variable name="int" select="substring-before(substring-after($term, '_'), '_')"/> <xsl:variable name="resint" select="$int +1 - $posint"/> <xsl:value-of select="concat(substring-before($term, '_'),': ')"/> <xsl:value-of select="concat($resint, ':')"/> <xsl:value-of select="substring-after(substring-after($term, '_'), '_')"/> </xsl:variable> <xsl:variable name="itemtype" select="'simcore:stringItem'"/> <xsl:value-of select="concat(concat(concat('__',$itemtype),'__'),$staticval)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="concat(.,' ')"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="$tryGetAttributeOrFieldValue != ''"> <xsl:value-of select="$tryGetAttributeOrFieldValue"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-before(substring-after($cleanedupKeyPool,'###.###.'), ' ')"/> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:if> </xsl:if> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="substring-after($KeyPool, '§')"/> <xsl:with-param name="parentid" select="$parentid"/> <xsl:with-param name="token" select="$token"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:if test="contains($KeyPool, '§')"> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="substring-after($KeyPool, '§')"/> <xsl:with-param name="parentid" select="$parentid"/> <xsl:with-param name="token" select="$token"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="CleanPool"> <xsl:param name="KeyPool"/> <xsl:if test="contains($KeyPool,'###.###.')"> <xsl:if test="contains(substring-after($KeyPool,'###.###.'), ' ') and starts-with(substring-after(substring-after($KeyPool,'###.###.'), ' '), 'Sim')"> <xsl:value-of select="substring-after($KeyPool,' ')"/> </xsl:if> <xsl:call-template name="CleanPool"> <xsl:with-param name="KeyPool" select="substring-after($KeyPool, '###.###.')"/> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcPump.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcPump"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcPump.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcPump"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcRelConnectsPorts.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcRelConnectsPorts"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> <xsl:variable name="relatingPort" select="current()/ifc:RelatingPort/@ref | current()/ifc:RelatingPort/@href"/> <xsl:variable name="relatedPort" select="current()/ifc:RelatedPort/@ref | current()/ifc:RelatedPort/@href"/> <xsl:if test="$relatingPort != ''"> <simres:SourcePort> <xsl:variable name="args" select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcDistributionPort[@id = $relatingPort and not(@GlobalId=following::ifc:IfcDistributionPort/@GlobalId)]"/> <xsl:for-each select="msxsl:node-set($args)"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="'GlobalId'"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="current()/@GlobalId"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="'simres:SourcePort'"/> </xsl:with-param> </xsl:call-template> </xsl:for-each> </simres:SourcePort> </xsl:if> <xsl:if test="$relatedPort != ''"> <simres:TargetPort> <xsl:variable name="args" select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcDistributionPort[@id = $relatedPort and not(@GlobalId=following::ifc:IfcDistributionPort/@GlobalId)]"/> <xsl:for-each select="msxsl:node-set($args)"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="'GlobalId'"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="current()/@GlobalId"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="'simres:TargetPort'"/> </xsl:with-param> </xsl:call-template> </xsl:for-each> </simres:TargetPort> </xsl:if> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcRelConnectsPorts.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcRelConnectsPorts"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> <xsl:variable name="relatingPort" select="current()/ifc:RelatingPort/@ref | current()/ifc:RelatingPort/@href"/> <xsl:variable name="relatedPort" select="current()/ifc:RelatedPort/@ref | current()/ifc:RelatedPort/@href"/> <xsl:if test="$relatingPort != ''"> <simres:SourcePort> <xsl:variable name="args" select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcDistributionPort[@id = $relatingPort and not(@GlobalId=following::ifc:IfcDistributionPort/@GlobalId)]"/> <xsl:for-each select="msxsl:node-set($args)"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="'GlobalId'"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="current()/@GlobalId"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="'simres:SourcePort'"/> </xsl:with-param> </xsl:call-template> </xsl:for-each> </simres:SourcePort> </xsl:if> <xsl:if test="$relatedPort != ''"> <simres:TargetPort> <xsl:variable name="args" select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcDistributionPort[@id = $relatedPort and not(@GlobalId=following::ifc:IfcDistributionPort/@GlobalId)]"/> <xsl:for-each select="msxsl:node-set($args)"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="'GlobalId'"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="current()/@GlobalId"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="'simres:TargetPort'"/> </xsl:with-param> </xsl:call-template> </xsl:for-each> </simres:TargetPort> </xsl:if> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSite.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcSite" name="IfcSite" mode="traverse"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects != ''"> <xsl:variable name="SiteRelatedObjects" select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects"/> <xsl:for-each select="$SiteRelatedObjects/ifc:IfcBuilding"> <xsl:call-template name="GetIfcBuilding"> </xsl:call-template> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template match="ifc:IfcSite"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSite.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcSite" name="IfcSite" mode="traverse"> <xsl:if test="current()[@GlobalId]"> <xsl:for-each select="."> <xsl:if test="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects != ''"> <xsl:variable name="SiteRelatedObjects" select="current()/ifc:IsDecomposedBy/ifc:IfcRelAggregates/ifc:RelatedObjects"/> <xsl:for-each select="$SiteRelatedObjects/ifc:IfcBuilding"> <xsl:call-template name="GetIfcBuilding"> </xsl:call-template> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template match="ifc:IfcSite"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSpace.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcSpace" name="IfcSpace" mode="traverse"> <xsl:choose> <xsl:when test="current()/@GlobalId"> <xsl:copy-of select="current()"/> <xsl:for-each select="."> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:when test="current()/@ref | current()/@href"> <xsl:variable name="refid" select="current()/@ref | current()/@href"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcSpace"> <xsl:if test="current()[contains(@id,$refid)]"> <xsl:if test="current()[@GlobalId]"> <xsl:copy-of select="current()"/> <xsl:for-each select="."> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match="ifc:IfcSpace"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSpace.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcSpace" name="IfcSpace" mode="traverse"> <xsl:choose> <xsl:when test="current()/@GlobalId"> <xsl:copy-of select="current()"/> <xsl:for-each select="."> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:when test="current()/@ref | current()/@href"> <xsl:variable name="refid" select="current()/@ref | current()/@href"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/descendant::ifc:IfcSpace"> <xsl:if test="current()[contains(@id,$refid)]"> <xsl:if test="current()[@GlobalId]"> <xsl:copy-of select="current()"/> <xsl:for-each select="."> <xsl:if test="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements"> <xsl:for-each select="current()/ifc:ContainsElements/ifc:IfcRelContainedInSpatialStructure/ifc:RelatedElements/node()"> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match="ifc:IfcSpace"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="'name'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent"> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSpaceHeater.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcSpaceHeater"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcSpaceHeater.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcSpaceHeater"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcType.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.buildingsmart-tech.org/ifcXML/IFC4/final ../../../../../../EnEffBIM_UseCases/IFCSchema/IFC4_ADD1.xsd" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcType"> <xsl:param name="returnTypeObject"/> <xsl:for-each select="."> <xsl:variable name="resolveType"> <xsl:call-template name="ResolveIfcRelDefinesByType"> </xsl:call-template> </xsl:variable> <xsl:variable name="typeTag"> <xsl:value-of select="@ObjectType"/> </xsl:variable> <xsl:variable name="occuranceName"> <xsl:value-of select="name()"/> </xsl:variable> <xsl:variable name="IterateIfcTypes"> <xsl:for-each select="msxsl:node-set($resolveType)/node()"> <xsl:choose> <xsl:when test="current()/ifc:HasPropertySets"> <xsl:choose> <xsl:when test="$returnTypeObject != ''"> <xsl:value-of select="current()/@PredefinedType"/> </xsl:when> <xsl:otherwise> <xsl:for-each select="current()/ifc:HasPropertySets/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="current()[@id = $resolveType]"> <xsl:choose> <xsl:when test="$returnTypeObject != ''"> <xsl:value-of select="@PredefinedType"/> </xsl:when> <xsl:otherwise> <xsl:for-each select="current()/ifc:HasPropertySets/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="$resolveType != ''"> <xsl:copy-of select="$IterateIfcTypes"/> </xsl:when> <xsl:when test="$typeTag != ''"> <xsl:copy-of select="$IterateIfcTypes"/> </xsl:when> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="ResolveIfcRelDefinesByType"> <xsl:variable name="elemid"> <xsl:copy> <xsl:value-of select="@id"/> </xsl:copy> </xsl:variable> <xsl:if test="$elemid != ''"> <xsl:for-each select="msxsl:node-set($allsourceobjects)/ifc:IfcRelDefinesByType/ifc:RelatedObjects/node()"> <xsl:if test="current()[contains(@ref, $elemid)] | current()[contains(@href, $elemid)]"> <xsl:choose> <xsl:when test="../../ifc:RelatingType[@GlobalId] != ''"> <xsl:copy-of select="../../ifc:RelatingType"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="../../ifc:RelatingType/@ref | ../../ifc:RelatingType/@href"/> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcType.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.buildingsmart-tech.org/ifcXML/IFC4/final ../../../../../../EnEffBIM_UseCases/IFCSchema/IFC4_ADD1.xsd" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template name="IfcType"> <xsl:param name="returnTypeObject"/> <xsl:for-each select="."> <xsl:variable name="resolveType"> <xsl:call-template name="ResolveIfcRelDefinesByType"> </xsl:call-template> </xsl:variable> <xsl:variable name="typeTag"> <xsl:value-of select="@ObjectType"/> </xsl:variable> <xsl:variable name="occuranceName"> <xsl:value-of select="name()"/> </xsl:variable> <xsl:variable name="IterateIfcTypes"> <xsl:for-each select="msxsl:node-set($resolveType)/node()"> <xsl:choose> <xsl:when test="current()/ifc:HasPropertySets"> <xsl:choose> <xsl:when test="$returnTypeObject != ''"> <xsl:value-of select="current()/@PredefinedType"/> </xsl:when> <xsl:otherwise> <xsl:for-each select="current()/ifc:HasPropertySets/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="current()[@id = $resolveType]"> <xsl:choose> <xsl:when test="$returnTypeObject != ''"> <xsl:value-of select="@PredefinedType"/> </xsl:when> <xsl:otherwise> <xsl:for-each select="current()/ifc:HasPropertySets/ifc:IfcPropertySet"> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="$resolveType != ''"> <xsl:copy-of select="$IterateIfcTypes"/> </xsl:when> <xsl:when test="$typeTag != ''"> <xsl:copy-of select="$IterateIfcTypes"/> </xsl:when> </xsl:choose> </xsl:for-each> </xsl:template> <xsl:template name="ResolveIfcRelDefinesByType"> <xsl:variable name="elemid"> <xsl:copy> <xsl:value-of select="@id"/> </xsl:copy> </xsl:variable> <xsl:if test="$elemid != ''"> <xsl:for-each select="msxsl:node-set($allsourceobjects)/ifc:IfcRelDefinesByType/ifc:RelatedObjects/node()"> <xsl:if test="current()[contains(@ref, $elemid)] | current()[contains(@href, $elemid)]"> <xsl:choose> <xsl:when test="../../ifc:RelatingType[@GlobalId] != ''"> <xsl:copy-of select="../../ifc:RelatingType"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="../../ifc:RelatingType/@ref | ../../ifc:RelatingType/@href"/> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcValve.xsl 25.7.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcValve"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<!-- KIT Tool | EneffBIM converter 2016 Version 0.5 (Author KIT BLM) IfcValve.xsl 1.8.2016 --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" exclude-result-prefixes="xsl ifc"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ifc:IfcValve"> <xsl:param name="KeyPool"/> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementName"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="generictargetcontent"> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="$KeyPool"/> <xsl:with-param name="elemname" select="name()"/> </xsl:call-template> </xsl:variable> <xsl:variable name="resolvedfromproperties"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filtercontrollercontent"> <xsl:call-template name="tryAssembleTargetController"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="filterreferencepropertycontent"> <xsl:call-template name="tryAssembleTargetElement"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:variable name="mergeGeneratedContents"> <xsl:choose> <xsl:when test="$filtercontrollercontent != 'FALSE' or $filterreferencepropertycontent != 'FALSE'"> <xsl:variable name="filteredcurrentelementcontents"> <xsl:call-template name="filterAllElementContents"> <xsl:with-param name="input" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$filteredcurrentelementcontents"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="MergeTargetElementContentCollections"> <xsl:with-param name="generictargetcontent" select="$generictargetcontent"/> <xsl:with-param name="resolvedfromproperties" select="$resolvedfromproperties"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="GenerateTargetElement"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="simelemname" select="$simelemname"/> <xsl:with-param name="unsortedtargetcontent" select="$mergeGeneratedContents"/> </xsl:call-template> <xsl:copy-of select="$filtercontrollercontent"/> <xsl:copy-of select="$filterreferencepropertycontent"/> </xsl:if> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:missingSub="http://subnamespace.undeclared" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:template name="resolvekeypool"> <xsl:param name="KeyPoolSnippet"/> <xsl:param name="elemname"/> <xsl:param name="psetname"/> <xsl:param name="pname"/> <xsl:param name="pvalue"/> <xsl:param name="preEvaluation"/> <xsl:param name="parentElement"/> <xsl:param name="elementId"/> <xsl:choose> <xsl:when test="contains($KeyPoolSnippet, '§') and ($psetname != '' and contains($KeyPoolSnippet, $psetname) or $elemname != '')"> <xsl:call-template name="resolvekeypoolpairs"> <xsl:with-param name="KeyPoolSnippet" select="substring-before($KeyPoolSnippet, '§')"/> <xsl:with-param name="elemname" select="$elemname"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="parentElement" select="$parentElement"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="substring-after($KeyPoolSnippet, '§')"/> <xsl:with-param name="elemname" select="$elemname"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="parentElement" select="$parentElement"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template> <xsl:template name="resolvekeypoolpairs"> <xsl:param name="KeyPoolSnippet"/> <xsl:param name="elemname"/> <xsl:param name="psetname"/> <xsl:param name="pname"/> <xsl:param name="pvalue"/> <xsl:param name="preEvaluation"/> <xsl:param name="parentElement"/> <xsl:param name="elementId"/> <xsl:variable name="parentelem" select="msxsl:node-set($parentElement)/node()"/> <xsl:if test="contains($KeyPoolSnippet, ' ')"> <xsl:variable name="simkey" select="substring-after($KeyPoolSnippet, ' ')"/> <xsl:choose> <xsl:when test="starts-with($simkey, 'Sim')"> <xsl:variable name="subComplexProp"> <xsl:choose> <xsl:when test="contains( substring-after( substring-after( substring-before($KeyPoolSnippet, ' '), concat($elemname, '.')) ,'.') , '.')"> <xsl:value-of select="substring-after( substring-after( substring-after( substring-before($KeyPoolSnippet, ' '), concat($elemname, '.')) ,'.') , '.')"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="simprop"> <xsl:choose> <xsl:when test="contains(substring-after($simkey,'.'), '.')"> <xsl:value-of select="substring-before(substring-after($simkey,'.'), '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-after($simkey,'.')"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="simdesignatedvalue"> <xsl:choose> <xsl:when test="contains(substring-after($simkey,'.'), '.')"> <xsl:value-of select="substring-after(substring-after($simkey, '.'), '.')"/> </xsl:when> <xsl:otherwise>FALSE</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="simpropfullname"> <xsl:choose> <xsl:when test="not(contains($simprop,':'))"> <xsl:value-of select="concat('missingSub:',$simprop)"/> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="contains($simprop, '.')"> </xsl:when> <xsl:otherwise> <xsl:value-of select="$simprop"/> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="$elemname != '' and $psetname = '' and $simprop != ''"> <xsl:variable name="ifckey" select="substring-before($KeyPoolSnippet, ' ')"/> <xsl:variable name="ifcgloid" select="@GlobalId"/> <xsl:variable name="elementchildren"> <xsl:value-of select="concat($elemname, '.')"> </xsl:value-of> </xsl:variable> <xsl:variable name="elementancestor"> <xsl:value-of select="concat('.', $elemname)"/> </xsl:variable> <xsl:variable name="checkall"> <xsl:value-of select="concat('.', $elementchildren)"/> </xsl:variable> <xsl:variable name="nestingpathfromparent"> <xsl:value-of select="substring-before($ifckey,$elementancestor)"/> </xsl:variable> <xsl:variable name="nestingpathtochild"> <xsl:value-of select="substring-after($ifckey,$elementchildren)"/> </xsl:variable> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:variable name="resolvepathtochild"> <xsl:variable name="levelonekey"> <xsl:choose> <xsl:when test="contains( $nestingpathtochild, '.')"> <xsl:value-of select="substring-before( $nestingpathtochild, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathtochild"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="@*[local-name() = substring-after($ifckey, $elementchildren)] != ''"> <xsl:value-of select="@*[local-name() = substring-after($ifckey, $elementchildren)]"/> </xsl:when> <xsl:otherwise> <xsl:variable name="levelonevalue"> <xsl:if test="$levelonekey != ''"> <xsl:choose> <xsl:when test="@*[name() = $levelonekey]"> </xsl:when> <xsl:when test="current()/*[local-name() = $levelonekey]"> </xsl:when> </xsl:choose> </xsl:if> </xsl:variable> <xsl:variable name="nestingpathfromlevelone" select="substring-after($nestingpathtochild, concat($levelonekey, '.'))"/> <xsl:variable name="leveltwokey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelone != '' and contains($nestingpathfromlevelone, '.')"> <xsl:value-of select="substring-before($nestingpathfromlevelone, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelone"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromleveltwo" select="substring-after($nestingpathfromlevelone, concat($leveltwokey, '.'))"/> <xsl:variable name="levelthreekey"> <xsl:choose> <xsl:when test="$nestingpathfromleveltwo != '' and contains($nestingpathfromleveltwo, '.')"> <xsl:value-of select="substring-before($nestingpathfromleveltwo, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromleveltwo"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromlevelthree" select="substring-after($nestingpathfromleveltwo, concat($levelthreekey, '.'))"/> <xsl:variable name="levelfourkey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelthree != '' and contains($nestingpathfromlevelthree, '.')"> <xsl:value-of select="substring-before($nestingpathfromlevelthree, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelthree"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="referencetargetid" select="@id"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="local-name() = $leveltwokey"> <xsl:for-each select="descendant-or-self::node()"> <xsl:if test="local-name() = $levelonekey"> <xsl:choose> <xsl:when test="./node()"> <xsl:for-each select="./node()"> <xsl:if test="current()[@ref = $referencetargetid] | current()[@href = $referencetargetid]"> <xsl:for-each select="../../child::*"> <xsl:if test="local-name() = $levelthreekey"> <xsl:for-each select="current()/@*"> <xsl:if test="local-name() = $levelfourkey"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="."/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> <xsl:value-of select="' '"/> </xsl:if> <xsl:if test="local-name() = 'href'"> <xsl:variable name="refid" select="."/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $refid"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@*[local-name() = $levelfourkey]"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> <xsl:value-of select="' '"/> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:when test="current()[@ref = $referencetargetid] | current()[@href = $referencetargetid]"> <xsl:for-each select="."> <xsl:for-each select=".././node()"> <xsl:if test="local-name() = $levelthreekey"> <xsl:if test="./@*[local-name() = 'ref'] | ./@*[local-name() = 'href']"> <xsl:for-each select="./@*[local-name() = 'ref'] | ./@*[local-name() = 'href']"> <xsl:variable name="refkey"> <xsl:value-of select="."/> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $refkey"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@*[local-name() = $levelfourkey]"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="resolvepathfromparent"> <xsl:variable name="levelonekey"> <xsl:choose> <xsl:when test="contains( $nestingpathfromparent, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromparent"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromparent"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="@*[local-name() = $levelonekey] != ''"> <xsl:value-of select="@*[local-name() = $levelonekey]"/> </xsl:when> <xsl:otherwise> <xsl:variable name="nestingpathfromlevelone" select="substring-before($nestingpathfromparent, concat('.', $levelonekey))"/> <xsl:variable name="leveltwokey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelone != '' and contains($nestingpathfromlevelone, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromlevelone"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelone"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromleveltwo" select="substring-before($nestingpathfromlevelone, concat('.', $leveltwokey))"/> <xsl:variable name="levelthreekey"> <xsl:choose> <xsl:when test="$nestingpathfromleveltwo != '' and contains($nestingpathfromleveltwo, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromleveltwo"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromleveltwo"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromlevelthree" select="substring-before($nestingpathfromleveltwo, concat('.', $levelthreekey))"/> <xsl:variable name="levelfourkey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelthree != '' and contains($nestingpathfromlevelthree, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromlevelthree"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelthree"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="checkedvalue"> <xsl:choose> <xsl:when test="current()"> <xsl:value-of select="msxsl:node-set($parentElement)/@*[local-name() = $levelfourkey]"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="levelonevalue"> <xsl:if test="$levelonekey != ''"> </xsl:if> </xsl:variable> <xsl:choose> <xsl:when test="$checkedvalue != '' and contains($simpropfullname, 'simres:HostElement')"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="$checkedvalue"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:when test="$levelonevalue != ''"> <xsl:copy-of select="$levelonevalue"/> </xsl:when> <xsl:otherwise> <xsl:variable name="referencetargetid" select="@id"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="local-name() = $leveltwokey"> <xsl:for-each select="descendant-or-self::node()"> <xsl:if test="local-name() = $levelonekey"> <xsl:for-each select="."> <xsl:if test="current()[@ref = $referencetargetid] | current()[@href = $referencetargetid]"> AHA <xsl:for-each select=".././*"> <xsl:if test="local-name() = $levelthreekey"> <xsl:for-each select="./@*[local-name() = 'ref'] | ./@*[local-name() = 'href']"> <xsl:variable name="refkey"> <xsl:value-of select="."/> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $refkey"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@*[local-name() = $levelfourkey]"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="current()"/> <xsl:otherwise> <xsl:for-each select="../../../../."> <xsl:if test="current()[@GlobalId]"> <xsl:choose> <xsl:when test="contains(local-name(), 'Type')">ERROR! Not handled conversion from ports defined by object type, add port instance to object occurance.</xsl:when> <xsl:otherwise> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="'GlobalId'"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@GlobalId"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="contains($ifckey, $checkall)"> <xsl:choose> <xsl:when test="$resolvepathfromparent = $resolvepathtochild and ($resolvepathtochild != '' or $resolvepathfromparent != '')"> <xsl:value-of select="$resolvepathfromparent"/> </xsl:when> <xsl:when test="$resolvepathtochild = '' and '' != $resolvepathfromparent"> <xsl:value-of select="$resolvepathfromparent"/> </xsl:when> <xsl:when test="$resolvepathfromparent = '' and '' != $resolvepathtochild"> <xsl:value-of select="$resolvepathtochild"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$resolvepathtochild"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="contains($ifckey, $elementancestor)"> <xsl:choose> <xsl:when test="$resolvepathfromparent != ''"> <xsl:value-of select="$resolvepathfromparent"/> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="starts-with($ifckey, $elementchildren)"> <xsl:choose> <xsl:when test="$resolvepathtochild != ''"> <xsl:value-of select="$resolvepathtochild"/> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:when> <xsl:when test="not($pname = '') and contains($KeyPoolSnippet, $psetname) and contains($KeyPoolSnippet, $pname)"> <xsl:choose> <xsl:when test="$preEvaluation != ''"> <xsl:variable name="currentTestString"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="concat(concat(concat(concat(../../@Name, '.'), @Name), '.'), $pvalue)"/> </xsl:call-template> </xsl:variable> <xsl:variable name="conditionTestString"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="$preEvaluation"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="$conditionTestString = $currentTestString">TRUE</xsl:when> <xsl:otherwise> <xsl:value-of select="$pvalue"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="contains(../../@Name, 'PSim_Controller') and not(local-name() = 'IfcPropertyReferenceValue')"> <xsl:choose> <xsl:when test="@Name = 'ControllerType'"> <xsl:element name="{normalize-space(concat('eeBIMc_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-after($simpropfullname, ':')"/> <xsl:value-of select="concat(' ID_cntrl_', $elementId)"/> </xsl:element> </xsl:when> <xsl:otherwise> <xsl:element name="{normalize-space(concat('eeBIMc_FLAG_', substring-after($simpropfullname, ':')))}"> <xsl:value-of select="concat($simpropfullname,' ')"/> <xsl:value-of select="$pvalue"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="local-name() = 'IfcPropertyReferenceValue'"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:value-of select="concat('ID_prv01_', $elementId)"/> </xsl:element> <xsl:for-each select="current()/ifc:PropertyReference/node()"> <xsl:variable name="KeyPool"> <xsl:call-template name="KeyPoolBuilder"> <xsl:with-param name="ElementName" select="local-name()"/> </xsl:call-template> </xsl:variable> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementNames"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:if test="contains($simelemname, ' ') and substring-before(substring-after($simelemname, ' '), ' ')"> <xsl:element name="{normalize-space(concat('eeBIMprv01_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-before(substring-after($simelemname, ' '), ' ')"/> <xsl:value-of select="concat(' ID_prv01_', $elementId)"/> </xsl:element> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="parentid" select="concat('_prv01_', $elementId)"/> <xsl:with-param name="token" select="'eeBIMprv01_FLAG_'"/> </xsl:call-template> </xsl:if> <xsl:if test="contains(substring-after($simelemname, ' '), ' ') and substring-before(substring-after(substring-after($simelemname, ' '), ' '), ' ')"> <xsl:element name="{normalize-space(concat('eeBIMprv02_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-before(substring-after(substring-after($simelemname, ' '), ' '), ' ')"/> <xsl:value-of select="concat(' ID_prv02_', $elementId)"/> </xsl:element> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="parentid" select="concat('_prv02_', $elementId)"/> <xsl:with-param name="token" select="'eeBIMprv02_FLAG_'"/> </xsl:call-template> </xsl:if> <xsl:if test="contains(substring-after(substring-after($simelemname, ' '), ' '), ' ') and substring-after(substring-after(substring-after($simelemname, ' '), ' '), ' ')"> <xsl:element name="{normalize-space(concat('eeBIMprv03_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-after(substring-after(substring-after($simelemname, ' '), ' '), ' ')"/> <xsl:value-of select="concat(' ID_prv03_', $elementId)"/> </xsl:element> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="parentid" select="concat('_prv03_', $elementId)"/> <xsl:with-param name="token" select="'eeBIMprv03_FLAG_'"/> </xsl:call-template> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$simdesignatedvalue != 'FALSE'"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:value-of select="$simdesignatedvalue"/> </xsl:element> </xsl:when> <xsl:when test="$subComplexProp != ''"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:for-each select="./ifc:HasProperties/node()"> <xsl:if test="@Name = $subComplexProp"> <xsl:value-of select="."/> </xsl:if> </xsl:for-each> </xsl:element> </xsl:when> <xsl:when test="$simdesignatedvalue = 'FALSE'"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:value-of select="$pvalue"/> </xsl:element> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:if test="contains($simkey,' ')"> <xsl:call-template name="resolvekeypoolpairs"> <xsl:with-param name="KeyPoolSnippet" select="substring-after($KeyPoolSnippet, ' ' )"/> <xsl:with-param name="elemname" select="$elemname"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="parentElement" select="$parentElement"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:template> <xsl:template name="extractfistvalue"> <xsl:param name="input"/> <xsl:param name="delimiter"/> <xsl:value-of select="substring-after($input, $delimiter)"/> </xsl:template> <xsl:template name="lastofpath"> <xsl:param name="pathsnippet"/> <xsl:choose> <xsl:when test="contains($pathsnippet, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet"> <xsl:call-template name="extractfistvalue"> <xsl:with-param name="input" select="$pathsnippet"/> <xsl:with-param name="delimiter" select="'.'"/> </xsl:call-template> </xsl:with-param> <xsl:with-param name="delimiter" select="'.'"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$pathsnippet"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="getglobalid"> <xsl:param name="breadcrum"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $breadcrum and @GlobalId"> <xsl:value-of select="@GlobalId"/> </xsl:if> </xsl:for-each> <xsl:apply-templates/> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://d-alchemy.com/schema/simxml/Model" xmlns:simcore="http://d-alchemy.com/schema/simxml/SimModelCore" xmlns:simres="http://d-alchemy.com/schema/simxml/ResourcesGeneral" xmlns:simgeom="http://d-alchemy.com/schema/simxml/ResourcesGeometry" xmlns:simbldg="http://d-alchemy.com/schema/simxml/BuildingModel" xmlns:simmep="http://d-alchemy.com/schema/simxml/MepModel" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:missingSub="http://subnamespace.undeclared" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:template name="resolvekeypool"> <xsl:param name="KeyPoolSnippet"/> <xsl:param name="elemname"/> <xsl:param name="psetname"/> <xsl:param name="pname"/> <xsl:param name="pvalue"/> <xsl:param name="preEvaluation"/> <xsl:param name="parentElement"/> <xsl:param name="elementId"/> <xsl:choose> <xsl:when test="contains($KeyPoolSnippet, '§') and ($psetname != '' and contains($KeyPoolSnippet, $psetname) or $elemname != '')"> <xsl:call-template name="resolvekeypoolpairs"> <xsl:with-param name="KeyPoolSnippet" select="substring-before($KeyPoolSnippet, '§')"/> <xsl:with-param name="elemname" select="$elemname"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="parentElement" select="$parentElement"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> <xsl:call-template name="resolvekeypool"> <xsl:with-param name="KeyPoolSnippet" select="substring-after($KeyPoolSnippet, '§')"/> <xsl:with-param name="elemname" select="$elemname"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="parentElement" select="$parentElement"/> <xsl:with-param name="elementId" select="$elementId"/> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template> <xsl:template name="resolvekeypoolpairs"> <xsl:param name="KeyPoolSnippet"/> <xsl:param name="elemname"/> <xsl:param name="psetname"/> <xsl:param name="pname"/> <xsl:param name="pvalue"/> <xsl:param name="preEvaluation"/> <xsl:param name="parentElement"/> <xsl:param name="elementId"/> <xsl:variable name="parentelem" select="msxsl:node-set($parentElement)/node()"/> <xsl:if test="contains($KeyPoolSnippet, ' ')"> <xsl:variable name="simkey" select="substring-after($KeyPoolSnippet, ' ')"/> <xsl:choose> <xsl:when test="starts-with($simkey, 'Sim')"> <xsl:variable name="subComplexProp"> <xsl:choose> <xsl:when test="contains( substring-after( substring-after( substring-before($KeyPoolSnippet, ' '), concat($elemname, '.')) ,'.') , '.')"> <xsl:value-of select="substring-after( substring-after( substring-after( substring-before($KeyPoolSnippet, ' '), concat($elemname, '.')) ,'.') , '.')"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="simprop"> <xsl:choose> <xsl:when test="contains(substring-after($simkey,'.'), '.')"> <xsl:value-of select="substring-before(substring-after($simkey,'.'), '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-after($simkey,'.')"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="simdesignatedvalue"> <xsl:choose> <xsl:when test="contains(substring-after($simkey,'.'), '.')"> <xsl:value-of select="substring-after(substring-after($simkey, '.'), '.')"/> </xsl:when> <xsl:otherwise>FALSE</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="simpropfullname"> <xsl:choose> <xsl:when test="not(contains($simprop,':'))"> <xsl:value-of select="concat('missingSub:',$simprop)"/> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="contains($simprop, '.')"> </xsl:when> <xsl:otherwise> <xsl:value-of select="$simprop"/> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="$elemname != '' and $psetname = '' and $simprop != ''"> <xsl:variable name="ifckey" select="substring-before($KeyPoolSnippet, ' ')"/> <xsl:variable name="ifcgloid" select="@GlobalId"/> <xsl:variable name="elementchildren"> <xsl:value-of select="concat($elemname, '.')"> </xsl:value-of> </xsl:variable> <xsl:variable name="elementancestor"> <xsl:value-of select="concat('.', $elemname)"/> </xsl:variable> <xsl:variable name="checkall"> <xsl:value-of select="concat('.', $elementchildren)"/> </xsl:variable> <xsl:variable name="nestingpathfromparent"> <xsl:value-of select="substring-before($ifckey,$elementancestor)"/> </xsl:variable> <xsl:variable name="nestingpathtochild"> <xsl:value-of select="substring-after($ifckey,$elementchildren)"/> </xsl:variable> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:variable name="resolvepathtochild"> <xsl:variable name="levelonekey"> <xsl:choose> <xsl:when test="contains( $nestingpathtochild, '.')"> <xsl:value-of select="substring-before( $nestingpathtochild, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathtochild"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="@*[local-name() = substring-after($ifckey, $elementchildren)] != ''"> <xsl:value-of select="@*[local-name() = substring-after($ifckey, $elementchildren)]"/> </xsl:when> <xsl:otherwise> <xsl:variable name="levelonevalue"> <xsl:if test="$levelonekey != ''"> <xsl:choose> <xsl:when test="@*[name() = $levelonekey]"> </xsl:when> <xsl:when test="current()/*[local-name() = $levelonekey]"> </xsl:when> </xsl:choose> </xsl:if> </xsl:variable> <xsl:variable name="nestingpathfromlevelone" select="substring-after($nestingpathtochild, concat($levelonekey, '.'))"/> <xsl:variable name="leveltwokey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelone != '' and contains($nestingpathfromlevelone, '.')"> <xsl:value-of select="substring-before($nestingpathfromlevelone, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelone"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromleveltwo" select="substring-after($nestingpathfromlevelone, concat($leveltwokey, '.'))"/> <xsl:variable name="levelthreekey"> <xsl:choose> <xsl:when test="$nestingpathfromleveltwo != '' and contains($nestingpathfromleveltwo, '.')"> <xsl:value-of select="substring-before($nestingpathfromleveltwo, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromleveltwo"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromlevelthree" select="substring-after($nestingpathfromleveltwo, concat($levelthreekey, '.'))"/> <xsl:variable name="levelfourkey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelthree != '' and contains($nestingpathfromlevelthree, '.')"> <xsl:value-of select="substring-before($nestingpathfromlevelthree, '.')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelthree"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="referencetargetid" select="@id"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="local-name() = $leveltwokey"> <xsl:for-each select="descendant-or-self::node()"> <xsl:if test="local-name() = $levelonekey"> <xsl:choose> <xsl:when test="./node()"> <xsl:for-each select="./node()"> <xsl:if test="current()[@ref = $referencetargetid] | current()[@href = $referencetargetid]"> <xsl:for-each select="../../child::*"> <xsl:if test="local-name() = $levelthreekey"> <xsl:for-each select="current()/@*"> <xsl:if test="local-name() = $levelfourkey"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="."/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> <xsl:value-of select="' '"/> </xsl:if> <xsl:if test="local-name() = 'href'"> <xsl:variable name="refid" select="."/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $refid"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@*[local-name() = $levelfourkey]"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> <xsl:value-of select="' '"/> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:when> <xsl:when test="current()[@ref = $referencetargetid] | current()[@href = $referencetargetid]"> <xsl:for-each select="."> <xsl:for-each select=".././node()"> <xsl:if test="local-name() = $levelthreekey"> <xsl:if test="./@*[local-name() = 'ref'] | ./@*[local-name() = 'href']"> <xsl:for-each select="./@*[local-name() = 'ref'] | ./@*[local-name() = 'href']"> <xsl:variable name="refkey"> <xsl:value-of select="."/> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $refkey"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@*[local-name() = $levelfourkey]"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:when> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="resolvepathfromparent"> <xsl:variable name="levelonekey"> <xsl:choose> <xsl:when test="contains( $nestingpathfromparent, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromparent"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromparent"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="@*[local-name() = $levelonekey] != ''"> <xsl:value-of select="@*[local-name() = $levelonekey]"/> </xsl:when> <xsl:otherwise> <xsl:variable name="nestingpathfromlevelone" select="substring-before($nestingpathfromparent, concat('.', $levelonekey))"/> <xsl:variable name="leveltwokey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelone != '' and contains($nestingpathfromlevelone, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromlevelone"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelone"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromleveltwo" select="substring-before($nestingpathfromlevelone, concat('.', $leveltwokey))"/> <xsl:variable name="levelthreekey"> <xsl:choose> <xsl:when test="$nestingpathfromleveltwo != '' and contains($nestingpathfromleveltwo, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromleveltwo"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromleveltwo"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nestingpathfromlevelthree" select="substring-before($nestingpathfromleveltwo, concat('.', $levelthreekey))"/> <xsl:variable name="levelfourkey"> <xsl:choose> <xsl:when test="$nestingpathfromlevelthree != '' and contains($nestingpathfromlevelthree, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet" select="$nestingpathfromlevelthree"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nestingpathfromlevelthree"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="checkedvalue"> <xsl:choose> <xsl:when test="current()"> <xsl:value-of select="msxsl:node-set($parentElement)/@*[local-name() = $levelfourkey]"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="levelonevalue"> <xsl:if test="$levelonekey != ''"> </xsl:if> </xsl:variable> <xsl:choose> <xsl:when test="$checkedvalue != '' and contains($simpropfullname, 'simres:HostElement')"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="$checkedvalue"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:when test="$levelonevalue != ''"> <xsl:copy-of select="$levelonevalue"/> </xsl:when> <xsl:otherwise> <xsl:variable name="referencetargetid" select="@id"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="local-name() = $leveltwokey"> <xsl:for-each select="descendant-or-self::node()"> <xsl:if test="local-name() = $levelonekey"> <xsl:for-each select="."> <xsl:if test="current()[@ref = $referencetargetid] | current()[@href = $referencetargetid]"> AHA <xsl:for-each select=".././*"> <xsl:if test="local-name() = $levelthreekey"> <xsl:for-each select="./@*[local-name() = 'ref'] | ./@*[local-name() = 'href']"> <xsl:variable name="refkey"> <xsl:value-of select="."/> </xsl:variable> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $refkey"> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="$levelfourkey"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@*[local-name() = $levelfourkey]"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="current()"/> <xsl:otherwise> <xsl:for-each select="../../../../."> <xsl:if test="current()[@GlobalId]"> <xsl:choose> <xsl:when test="contains(local-name(), 'Type')">ERROR! Not handled conversion from ports defined by object type, add port instance to object occurance.</xsl:when> <xsl:otherwise> <xsl:call-template name="TargetValueFormatConditions"> <xsl:with-param name="sourcename"> <xsl:value-of select="'GlobalId'"/> </xsl:with-param> <xsl:with-param name="sourcevalue"> <xsl:value-of select="@GlobalId"/> </xsl:with-param> <xsl:with-param name="targetname"> <xsl:value-of select="$simpropfullname"/> </xsl:with-param> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="contains($ifckey, $checkall)"> <xsl:choose> <xsl:when test="$resolvepathfromparent = $resolvepathtochild and ($resolvepathtochild != '' or $resolvepathfromparent != '')"> <xsl:value-of select="$resolvepathfromparent"/> </xsl:when> <xsl:when test="$resolvepathtochild = '' and '' != $resolvepathfromparent"> <xsl:value-of select="$resolvepathfromparent"/> </xsl:when> <xsl:when test="$resolvepathfromparent = '' and '' != $resolvepathtochild"> <xsl:value-of select="$resolvepathtochild"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$resolvepathtochild"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="contains($ifckey, $elementancestor)"> <xsl:choose> <xsl:when test="$resolvepathfromparent != ''"> <xsl:value-of select="$resolvepathfromparent"/> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="starts-with($ifckey, $elementchildren)"> <xsl:choose> <xsl:when test="$resolvepathtochild != ''"> <xsl:value-of select="$resolvepathtochild"/> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:when> <xsl:when test="not($pname = '') and contains($KeyPoolSnippet, $psetname) and contains($KeyPoolSnippet, $pname)"> <xsl:choose> <xsl:when test="$preEvaluation != ''"> <xsl:variable name="currentTestString"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="concat(concat(concat(concat(../../@Name, '.'), @Name), '.'), $pvalue)"/> </xsl:call-template> </xsl:variable> <xsl:variable name="conditionTestString"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="$preEvaluation"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="$conditionTestString = $currentTestString">TRUE</xsl:when> <xsl:otherwise> FALSE </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="contains(../../@Name, 'PSim_Controller') and not(local-name() = 'IfcPropertyReferenceValue')"> <xsl:choose> <xsl:when test="@Name = 'ControllerType'"> <xsl:element name="{normalize-space(concat('eeBIMc_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-after($simpropfullname, ':')"/> <xsl:value-of select="concat(' ID_cntrl_', $elementId)"/> </xsl:element> </xsl:when> <xsl:otherwise> <xsl:element name="{normalize-space(concat('eeBIMc_FLAG_', substring-after($simpropfullname, ':')))}"> <xsl:value-of select="concat($simpropfullname,' ')"/> <xsl:value-of select="$pvalue"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="local-name() = 'IfcPropertyReferenceValue'"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:value-of select="concat('ID_prv01_', $elementId)"/> </xsl:element> <xsl:for-each select="current()/ifc:PropertyReference/node()"> <xsl:variable name="KeyPool"> <xsl:call-template name="KeyPoolBuilder"> <xsl:with-param name="ElementName" select="local-name()"/> </xsl:call-template> </xsl:variable> <xsl:if test="$KeyPool != ''"> <xsl:variable name="simelemname"> <xsl:call-template name="getTargetElementNames"> <xsl:with-param name="KeyPool" select="$KeyPool"/> </xsl:call-template> </xsl:variable> <xsl:if test="contains($simelemname, ' ') and substring-before(substring-after($simelemname, ' '), ' ')"> <xsl:element name="{normalize-space(concat('eeBIMprv01_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-before(substring-after($simelemname, ' '), ' ')"/> <xsl:value-of select="concat(' ID_prv01_', $elementId)"/> </xsl:element> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="parentid" select="concat('_prv01_', $elementId)"/> <xsl:with-param name="token" select="'eeBIMprv01_FLAG_'"/> </xsl:call-template> </xsl:if> <xsl:if test="contains(substring-after($simelemname, ' '), ' ') and substring-before(substring-after(substring-after($simelemname, ' '), ' '), ' ')"> <xsl:element name="{normalize-space(concat('eeBIMprv02_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-before(substring-after(substring-after($simelemname, ' '), ' '), ' ')"/> <xsl:value-of select="concat(' ID_prv02_', $elementId)"/> </xsl:element> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="parentid" select="concat('_prv02_', $elementId)"/> <xsl:with-param name="token" select="'eeBIMprv02_FLAG_'"/> </xsl:call-template> </xsl:if> <xsl:if test="contains(substring-after(substring-after($simelemname, ' '), ' '), ' ') and substring-after(substring-after(substring-after($simelemname, ' '), ' '), ' ')"> <xsl:element name="{normalize-space(concat('eeBIMprv03_FLAG_', 'SimDummy'))}"> <xsl:value-of select="substring-after(substring-after(substring-after($simelemname, ' '), ' '), ' ')"/> <xsl:value-of select="concat(' ID_prv03_', $elementId)"/> </xsl:element> <xsl:call-template name="resolveRefPropContent"> <xsl:with-param name="KeyPool" select="$KeyPool"/> <xsl:with-param name="parentid" select="concat('_prv03_', $elementId)"/> <xsl:with-param name="token" select="'eeBIMprv03_FLAG_'"/> </xsl:call-template> </xsl:if> </xsl:if> </xsl:for-each> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$simdesignatedvalue != 'FALSE'"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:value-of select="$simdesignatedvalue"/> </xsl:element> </xsl:when> <xsl:when test="$subComplexProp != ''"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:for-each select="./ifc:HasProperties/node()"> <xsl:if test="@Name = $subComplexProp"> <xsl:value-of select="."/> </xsl:if> </xsl:for-each> </xsl:element> </xsl:when> <xsl:when test="$simdesignatedvalue = 'FALSE'"> <xsl:element name="{normalize-space($simpropfullname)}"> <xsl:value-of select="$pvalue"/> </xsl:element> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:if test="contains($simkey,' ')"> <xsl:call-template name="resolvekeypoolpairs"> <xsl:with-param name="KeyPoolSnippet" select="substring-after($KeyPoolSnippet, ' ' )"/> <xsl:with-param name="elemname" select="$elemname"/> <xsl:with-param name="psetname" select="$psetname"/> <xsl:with-param name="pname" select="$pname"/> <xsl:with-param name="pvalue" select="$pvalue"/> <xsl:with-param name="preEvaluation" select="$preEvaluation"/> <xsl:with-param name="parentElement" select="$parentElement"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:template> <xsl:template name="extractfistvalue"> <xsl:param name="input"/> <xsl:param name="delimiter"/> <xsl:value-of select="substring-after($input, $delimiter)"/> </xsl:template> <xsl:template name="lastofpath"> <xsl:param name="pathsnippet"/> <xsl:choose> <xsl:when test="contains($pathsnippet, '.')"> <xsl:call-template name="lastofpath"> <xsl:with-param name="pathsnippet"> <xsl:call-template name="extractfistvalue"> <xsl:with-param name="input" select="$pathsnippet"/> <xsl:with-param name="delimiter" select="'.'"/> </xsl:call-template> </xsl:with-param> <xsl:with-param name="delimiter" select="'.'"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$pathsnippet"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="getglobalid"> <xsl:param name="breadcrum"/> <xsl:for-each select="msxsl:node-set($allsourceobjects)/node()"> <xsl:if test="@id = $breadcrum and @GlobalId"> <xsl:value-of select="@GlobalId"/> </xsl:if> </xsl:for-each> <xsl:apply-templates/> </xsl:template></xsl:stylesheet>
\ No newline at end of file
......
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:variable name="LF" select="'&#xA;'"/> <xsl:template name="KeyPoolBuilder"> <xsl:param name="ElementName"/> <xsl:call-template name="csvrowfilter"> <xsl:with-param name="localname" select="$ElementName"/> <xsl:with-param name="csvStringToFilter" select="$GetMappingTable"/> </xsl:call-template> </xsl:template> <xsl:template name="csvrowfilter"> <xsl:param name="localname" select="''"/> <xsl:param name="csvStringToFilter" select="''"/> <xsl:param name="currentElem" select="''"/> <xsl:choose> <xsl:when test="contains($csvStringToFilter,$LF)"> <xsl:if test="contains(substring-before($csvStringToFilter,$LF),$localname)"> <xsl:variable name="MappingCondition"> <xsl:call-template name="checkConditionCell"> <xsl:with-param name="elementname" select="$localname"/> <xsl:with-param name="rowsnippet"> <xsl:call-template name="remove"> <xsl:with-param name="input" select="substring-before($csvStringToFilter,$LF)"/> <xsl:with-param name="removal" select="'&quot;'"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="contains($MappingCondition, concat($localname, '.'))"> <xsl:choose> <xsl:when test="contains($MappingCondition, '#')"> <xsl:variable name="conditionalTerm" select="substring-after($MappingCondition, '###.###.')"/> <xsl:if test="contains($conditionalTerm, '.')"> <xsl:choose> <xsl:when test="contains(substring-after($conditionalTerm,'.'), '.')"> <xsl:variable name="preEvaluatePsets"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="concat(concat(concat($conditionalTerm,' '),'SimDummy.ElementName'),'§')"/> <xsl:with-param name="preEvaluation" select="$conditionalTerm"/> </xsl:call-template> </xsl:variable> <xsl:if test="$preEvaluatePsets = 'TRUE'"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:variable name="fieldName" select="substring-before($conditionalTerm,'.')"/> <xsl:variable name="expectedValue"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="substring-after($conditionalTerm,'.')"/> </xsl:call-template> </xsl:variable> <xsl:variable name="currentValue"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="@*[name() = $fieldName or $localname = $fieldName]"/> </xsl:call-template> </xsl:variable> <xsl:if test="$currentValue = $expectedValue"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:when> <xsl:when test="contains($MappingCondition, 'PredefinedType')"> <xsl:variable name="expectedValue"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="substring-after($MappingCondition, 'PredefinedType.')"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="current()/@PredefinedType | current()/*/@PredefinedType"> <xsl:if test="current()[@PredefinedType = $expectedValue] | current()/*[@PredefinedType = $expectedValue]"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:variable name="objectsType"> <xsl:call-template name="IfcType"> <xsl:with-param name="returnTypeObject" select="@ObjectType"/> </xsl:call-template> </xsl:variable> <xsl:if test="$objectsType = $expectedValue"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:if> <xsl:call-template name="csvrowfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter"> <xsl:value-of select="substring-after($csvStringToFilter,$LF)"/> </xsl:with-param> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template> <xsl:template name="csvcolumfilter"> <xsl:param name="localname" select="''"/> <xsl:param name="csvStringToFilter" select="''"/> <xsl:choose> <xsl:when test="contains($csvStringToFilter,';')"> <xsl:variable name="currentColumnText"> <xsl:call-template name="remove"> <xsl:with-param name="input" select="substring-before($csvStringToFilter,';')"/> <xsl:with-param name="removal" select="'&quot;'"/> </xsl:call-template> </xsl:variable> <xsl:variable name="triggerWord" select="substring-before($currentColumnText, '.')"/> <xsl:variable name="combinedTrigger" select="concat($localname,'.')"/> <xsl:if test="(not(starts-with($currentColumnText, 'Sim')) and $combinedTrigger !='.') and (contains($currentColumnText, $combinedTrigger) or contains($currentColumnText, concat('.', $localname)))"> <xsl:value-of select="$currentColumnText"/> <xsl:value-of select="' '"/> </xsl:if> <xsl:if test="($currentColumnText = $localname) or boolean($triggerWord != '')"> <xsl:if test="($currentColumnText = $localname) or ($triggerWord = $localname)"> <xsl:value-of select="$currentColumnText"/> <xsl:value-of select="' '"/> </xsl:if> </xsl:if> <xsl:if test="starts-with($currentColumnText, 'Sim') and not(contains($currentColumnText, 'SimModel '))"> <xsl:value-of select="$currentColumnText"/> § </xsl:if> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter"> <xsl:value-of select="substring-after($csvStringToFilter,';')"/> </xsl:with-param> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template> <xsl:template name="checkConditionCell"> <xsl:param name="elementname"/> <xsl:param name="rowsnippet"/> <xsl:choose> <xsl:when test="contains($rowsnippet, ';')"> <xsl:variable name="firstcellofsnippet"> <xsl:value-of select="substring-before($rowsnippet,';' )"/> </xsl:variable> <xsl:variable name="secondcellofsnippet"> <xsl:if test="contains(substring-after($rowsnippet,';'),';')"> <xsl:value-of select="substring-before(substring-after($rowsnippet,';'),';')"/> </xsl:if> </xsl:variable> <xsl:if test="($secondcellofsnippet != '' and contains($firstcellofsnippet,concat($elementname, '.')) and $secondcellofsnippet = $elementname)"> <xsl:value-of select="$firstcellofsnippet"/> </xsl:if> <xsl:call-template name="checkConditionCell"> <xsl:with-param name="elementname" select="$elementname"/> <xsl:with-param name="rowsnippet" select="substring-after($rowsnippet,';')"/> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template></xsl:stylesheet>
\ No newline at end of file
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/Add1" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="xsl ifc msxsl"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:variable name="LF" select="'&#xA;'"/> <xsl:template name="KeyPoolBuilder"> <xsl:param name="ElementName"/> <xsl:variable name="stripedQuotesCSV"> <xsl:call-template name="remove"> <xsl:with-param name="input" select="$GetMappingTable"/> <xsl:with-param name="removal" select="'&quot;'"/> </xsl:call-template> </xsl:variable> <xsl:call-template name="csvrowfilter"> <xsl:with-param name="localname" select="$ElementName"/> <xsl:with-param name="csvStringToFilter" select="$stripedQuotesCSV"/> </xsl:call-template> </xsl:template> <xsl:template name="csvrowfilter"> <xsl:param name="localname" select="''"/> <xsl:param name="csvStringToFilter" select="''"/> <xsl:param name="currentElem" select="''"/> <xsl:choose> <xsl:when test="contains($csvStringToFilter,$LF)"> <xsl:if test="contains(substring-before($csvStringToFilter,$LF),$localname)"> <xsl:variable name="MappingCondition"> <xsl:call-template name="checkConditionCell"> <xsl:with-param name="elementname" select="$localname"/> <xsl:with-param name="rowsnippet" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="contains($MappingCondition, concat($localname, '.'))"> <xsl:choose> <xsl:when test="contains($MappingCondition, '#')"> <xsl:variable name="conditionalTerm" select="substring-after($MappingCondition, '###.###.')"/> <xsl:if test="contains($conditionalTerm, '.')"> <xsl:choose> <xsl:when test="contains(substring-after($conditionalTerm,'.'), '.')"> <xsl:variable name="preEvaluatePsets"> <xsl:call-template name="GenerateTargetElementContentsFromSourceProperties"> <xsl:with-param name="KeyPool" select="concat(concat(concat($conditionalTerm,' '),'SimDummy.ElementName'),'§')"/> <xsl:with-param name="preEvaluation" select="$conditionalTerm"/> </xsl:call-template> </xsl:variable> <xsl:if test="$preEvaluatePsets = 'TRUE'"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:variable name="fieldName" select="substring-before($conditionalTerm,'.')"/> <xsl:variable name="expectedValue"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="substring-after($conditionalTerm,'.')"/> </xsl:call-template> </xsl:variable> <xsl:variable name="currentValue"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="@*[name() = $fieldName or $localname = $fieldName]"/> </xsl:call-template> </xsl:variable> <xsl:if test="$currentValue = $expectedValue"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:when> <xsl:when test="contains($MappingCondition, 'PredefinedType')"> <xsl:variable name="expectedValue"> <xsl:call-template name="ToLower"> <xsl:with-param name="input" select="substring-after($MappingCondition, 'PredefinedType.')"/> </xsl:call-template> </xsl:variable> <xsl:choose> <xsl:when test="current()/@PredefinedType | current()/*/@PredefinedType"> <xsl:if test="current()[@PredefinedType = $expectedValue] | current()/*[@PredefinedType = $expectedValue]"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:variable name="objectsType"> <xsl:call-template name="IfcType"> <xsl:with-param name="returnTypeObject" select="@ObjectType"/> </xsl:call-template> </xsl:variable> <xsl:if test="$objectsType = $expectedValue"> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter" select="substring-before($csvStringToFilter,$LF)"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:if> <xsl:call-template name="csvrowfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter"> <xsl:value-of select="substring-after($csvStringToFilter,$LF)"/> </xsl:with-param> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template> <xsl:template name="csvcolumfilter"> <xsl:param name="localname" select="''"/> <xsl:param name="csvStringToFilter" select="''"/> <xsl:param name="getSingleSnippet" select="''"/> <xsl:choose> <xsl:when test="contains($csvStringToFilter,';')"> <xsl:variable name="preview2delim" select="substring-after(substring-after($csvStringToFilter, ';'), ';')"/> <xsl:if test="starts-with($preview2delim, 'Sim')"> <xsl:variable name="mapConditionColumn"> <xsl:value-of select="substring-before($csvStringToFilter,';')"/> </xsl:variable> <xsl:variable name="sourceColumn"> <xsl:value-of select="substring-before(substring-after($csvStringToFilter, ';'),';')"/> </xsl:variable> <xsl:choose> <xsl:when test="$getSingleSnippet != ''"> <xsl:if test="($sourceColumn != '' and contains($mapConditionColumn,concat($localname, '.')) and $sourceColumn = $localname)"> <xsl:value-of select="$mapConditionColumn"/> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:variable name="targetColumn"> <xsl:value-of select="substring-before($preview2delim,';')"/> </xsl:variable> <xsl:value-of select="concat($mapConditionColumn, ' ')"/> <xsl:value-of select="concat($sourceColumn, ' ')"/> <xsl:value-of select="concat($targetColumn, '§')"/> </xsl:otherwise> </xsl:choose> </xsl:if> <xsl:call-template name="csvcolumfilter"> <xsl:with-param name="localname" select="$localname"/> <xsl:with-param name="csvStringToFilter"> <xsl:value-