Calorifero Step by Step di Tubes designed by Alberto Meda
Calorifero Step by Step di Tubes designed by Alberto Meda

Caloriferi di design per l’architettura. Moduli ellittici plissettati che creano giochi di luci

Alberto Meda progetta il calorifero di design Step by Step per la collezione Elements di Tubes. Un corpo in alluminio che sembra in movimento con i suoi moduli ellittici plissettati che creano suggestivi giochi di luce ed effetti visivi.

Il calorifero Step by Step entra di diritto nella collezione Elements di Tubes. La collezione Elements riunisce progetti di caloriferi e scaldasalviette reinterpretati da designer del panorama internazionale, diventando così elementi della struttura architettonica, dotati di forte personalità e capacità arredativa

Calorifero Step by Step di Tubes designed by Alberto Meda

Il concept che ha guidato Alberto Meda nella  progettazione è stato quello di partire da un solido corpo in alluminio la cui superficie si articola in moduli ellittici plissettati, inclinati verso destra oppure verso sinistra. A seconda della loro disposizione e della prospettiva dell'osservatore, si creano suggestivi giochi di luce ed effetti visivi che suscitano emozioni completamente diverse: da un leggero senso di movimento fino all'architettonico-monumentale

Calorifero Step by Step di Tubes designed by Alberto Meda

Un’altra caratteristica importante di Step by Step è le flessibilità nella composizione che lo rende adatto alle più diverse esigenze progettuali. Il modulo base può essere installato singolarmente o posizionato a fianco di un altro modulo, creando così quattro configurazioni che lo rendono ideale sia per ampi spazi nei quali si voglia inserire una presenza decorativa importante, sia per ambienti ristretti, nei quali il limitato ingombro (il calorifero sporge solo 7,8 cm dalla parete) fa guadagnare spazio agli interni

Calorifero Step by Step di Tubes designed by Alberto Meda

Step-by-Step è disponibile in versione idraulica, elettrica e mista. Il riscaldamento avviene in due modi: per radiazione, cioè irraggiando direttamente il calore attraverso l'ampia superficie di scambio termico, e per convezione naturale, grazie all'aria calda che lo attraversa dal basso verso l'alto

Calorifero Step by Step di Tubes designed by Alberto Meda

Step-by-Step inoltre, può essere accessoriato con portasalviette e appendino, per l'applicazione nell'ambiente bagno ed è disponibile in diversi colori tra cui bianco, grigio alluminio, grigio antracite metalizzato, marrone rame e avorio, oltre alle possibili personalizzazioni nei colori opachi della gamma Tubes.

Calorifero Step by Step di Tubes designed by Alberto Meda

Gallery

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> value_list[seq_index]  [in template "20101#20127#2776835" at line 127, column 62]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign key_value = value_list[seq_in...  [in template "20101#20127#2776835" at line 127, column 41]
----
1<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
4<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
5 
6<#-- 
7Mostro il titolo del portlet qui 
8--> 
9<#assign languageId = themeDisplay.getLanguageId()> 
10<#assign propertyKey = "portletSetupTitle_"+languageId> 
11 
12<#assign title = ""> 
13<#assign counter = 1> 
14 
15<#if portletPreferences?has_content> 
16    <#list portletPreferences?keys as key> 
17     
18        <#if key == propertyKey> 
19            <#assign values = portletPreferences[key] /> 
20            <#if values?has_content> 
21                <#list values as value> 
22                    <#assign title = value> 
23                </#list> 
24            </#if> 
25        </#if> 
26     
27     </#list> 
28</#if> 
29 
30<#assign size = 0> 
31 
32<#list entries as curEntry> 
33    <#assign renderer = curEntry.getAssetRenderer() > 
34    <#assign className = renderer.getClassName() > 
35    <#if className == "com.liferay.journal.model.JournalArticle"> 
36        <#assign article = renderer.getArticle() > 
37         
38        <#assign currentArticleAssetEntryId = curEntry.getEntryId() /> 
39        <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
40         
41        <#assign relatedDesigner = "" /> 
42         
43        <#list currentArticleRelatedLinks as related_entry> 
44         
45            <#assign relatedAssetEntryId = related_entry.getEntryId1() /> 
46             
47            <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
48         
49            <#assign relatedGroup = groupLocalService.getGroup(relatedAssetEntry.groupId) /> 
50             
51            <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
52                 
53            <#assign relatedArticle = journalArticleLocalService.fetchLatestArticle(relatedAssetEntryPrimKey)!'' /> 
54                 
55            <#if relatedArticle?has_content> 
56                 
57                <#assign relatedArticleStructureKey = relatedArticle.getDDMStructure().getStructureKey() /> 
58                 
59                <#if relatedArticleStructureKey = "DESIGNER-PROFILE"> 
60                 
61                    <#assign size = size + 1> 
62                     
63                </#if> 
64                 
65            </#if> 
66        </#list> 
67    </#if> 
68</#list> 
69 
70<#if (size > 0) > 
71    <h2 class="portlet-title-text">${title}</h2> 
72</#if> 
73 
74<#-- un ARTICLE può essere legato a un DESIGNER, un COMPANY, un SHOWCASE --> 
75 
76<#list entries as curEntry> 
77 
78    <#assign renderer = curEntry.getAssetRenderer() > 
79    <#assign className = renderer.getClassName() > 
80    <#if className == "com.liferay.journal.model.JournalArticle"> 
81        <#assign article = renderer.getArticle() > 
82         
83        <#assign currentArticleAssetEntryId = curEntry.getEntryId() /> 
84        <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
85         
86        <#assign relatedDesigner = "" /> 
87         
88        <#list currentArticleRelatedLinks as related_entry> 
89         
90            <#assign relatedAssetEntryId = related_entry.getEntryId1() /> 
91             
92            <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
93         
94            <#assign relatedGroup = groupLocalService.getGroup(relatedAssetEntry.groupId) /> 
95             
96            <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
97                 
98            <#assign relatedArticle = journalArticleLocalService.fetchLatestArticle(relatedAssetEntryPrimKey)!'' /> 
99                 
100            <#if relatedArticle?has_content> 
101                 
102                <#assign relatedArticleStructureKey = relatedArticle.getDDMStructure().getStructureKey() /> 
103                 
104                <#if relatedArticleStructureKey = "DESIGNER-PROFILE"> 
105                 
106                    <#assign relatedDesigner = relatedArticle> 
107                     
108                </#if> 
109                 
110            </#if> 
111        </#list> 
112         
113        <#if relatedDesigner?has_content> 
114         
115            <#assign relatedArticleId = relatedDesigner.getArticleId() /> 
116            <#assign articleGroupId = relatedDesigner.getGroupId() > 
117            			 
118			<#assign designer = journalArticleLocalService.getArticle(articleGroupId, relatedArticleId) /> 
119			 
120			<#assign designerFriendlyURL = "" /> 
121			<#assign designerFirendlyURLMap = designer.getFriendlyURLMap() /> 
122			<#assign key_list = designerFirendlyURLMap?keys/> 
123			<#assign value_list = designerFirendlyURLMap?values/> 
124			<#list key_list as key> 
125				<#assign seq_index = key_list?seq_index_of(key) /> 
126				<#if seq_index != -1 > 
127					<#assign key_value = value_list[seq_index]/> 
128					<#if key == themeDisplay.getLocale()> 
129						<#-- assign designerFriendlyURL = stringUtil.replace(key_value, "/-/", "") --> 
130						<#assign designerFriendlyURL = key_value /> 
131					</#if> 
132				</#if> 
133			</#list> 
134						 
135			<#assign hasLinkDesigner = false /> 
136			<#if designerFriendlyURL != "" > 
137				<#assign hasLinkDesigner = articleLanguage.hasLanguageCategory(request, designer, themeDisplay.getScopeGroupId(), themeDisplay.getCompanyId(), 
138					"/arkitube", true) && articleLanguage.isFriendlyURLCorrectLanguage(request, designer, themeDisplay.getLanguageId(), 
139					designerFriendlyURL, themeDisplay.getScopeGroupId(), true, "/arkitube") /> 
140			</#if> 
141			 
142			<#assign cssClassWrappDesigner = "mb-4" /> 
143			<#if (counter < entries?size)> 
144                <#assign cssClassWrappDesigner = "mb-5" /> 
145            </#if> 
146			 
147			<div class="${cssClassWrappDesigner}"> 
148				<#if hasLinkDesigner> 
149					<a href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, relatedAssetEntry, true)}"> 
150				</#if>	 
151						<@liferay_journal["journal-article"] 
152							articleId="${relatedDesigner.getArticleId()}" 
153							ddmTemplateKey="MINIMAL_DESIGNER_INFO" 
154							groupId=articleGroupId /> 
155				<#if hasLinkDesigner>			 
156					</a> 
157				</#if> 
158			</div> 
159         
160        </#if> 
161         
162    </#if> 
163	 
164	<#assign counter += 1> 
165</#list> 
0