BRE Academy at UK Construction Week 2025
BRE Academy proudly exhibited at UK Construction Week from 7–9 May 2025 at London’s ExCeL, drawing in large crowds and generating valuable conversations around the future of the built environment. Visitors to Stand D719 had the chance to speak directly with BRE experts, explore the Academy’s full range of training courses — including BREEAM, BIM, Sustainability, and Fire & Safety.
BRE Academy showcased their full range of training courses. The event served as an ideal platform for face-to-face engagement with professionals seeking to upskill in an evolving construction landscape where quality, resilience, and compliance are more critical than ever.
A highlight of BRE’s presence was its panel discussion on 8 May, titled “Enhancing the Built Environment in the Digital Age”. Led by Alison Nicholl, Head of Constructing Excellence at BRE, the session explored how information management and digital transformation can drive smarter decision-making across the sector.
The expert panel included Mike Tofton, BIM & Digital Construction Lead at BRE Academy; Virginia Cinquemani, BREEAM Trainer; Mohammad Shana’a, CEO of Morta; and Lilian Ho, Associate Director at AECOM. Together, they unpacked the challenges and opportunities of digital construction, concluding that the real value of information management lies with those who actively and effectively use it.
Reflecting on the event, Polly Wilkinson, Head of BRE Academy, commented:
Browse more from our latest news:
The following has evaluated to null or missing:
==> journalArticle.getArticleId [in template "20096#20121#319294" at line 26, column 68]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to 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: @liferay_journal["journal-article"] a... [in template "20096#20121#319294" at line 26, column 21]
----
1<#assign ddmTemplateLocalService=serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMTemplateLocalService") />
2<#assign classNameLocalService=serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") />
3
4<#assign classNameId=classNameLocalService.getClassNameId("com.liferay.dynamic.data.mapping.model.DDMStructure")/>
5<#assign templates=ddmTemplateLocalService.getTemplates(themeDisplay.getLayout().getGroupId(),classNameId) />
6<#assign rn=randomNamespace>
7
8<#list templates as temp>
9 <#assign templateTitle=temp.getName(themeDisplay.getLocale()) />
10
11 <#if templateTitle == "Article Card Stackable Test">
12 <#assign templateKey=temp.getTemplateKey() />
13 <#break>
14 </#if>
15</#list>
16
17<#assign entriescount=entries?size />
18
19<#if entriescount gt 2>
20 <div class="slick-carousel slick-carousel--three-card" id="${rn}_Carousel">
21 <#if entries?has_content>
22 <#list entries as curEntry>
23 <div>
24 <#assign assetRenderer=curEntry.getAssetRenderer()
25 journalArticle=assetRenderer.getAssetObject() />
26 <@liferay_journal["journal-article"] articleId=journalArticle.getArticleId()
27 ddmTemplateKey=templateKey groupId=journalArticle.getGroupId() />
28 </div>
29 </#list>
30 </#if>
31 </div>
32<#else>
33 <div class="slick-carousel slick-carousel--two-card">
34 <div class="row">
35 <#if entries?has_content>
36 <#list entries as curEntry>
37 <div class="col-lg-6">
38 <#assign assetRenderer=curEntry.getAssetRenderer()
39 journalArticle=assetRenderer.getAssetObject() />
40 <@liferay_journal["journal-article"] articleId=journalArticle.getArticleId()
41 ddmTemplateKey=templateKey groupId=journalArticle.getGroupId() />
42 </div>
43 </#list>
44 </#if>
45 </div>
46 </div>
47</#if>
48
49
50<script>
51 $(document).ready(function () {
52 $('#${rn}_Carousel').slick({
53 slidesToShow: 3,
54 slidesToScroll: 1,
55 dots: true,
56 arrows: true,
57 infinite: false,
58 accessibility: false,
59 responsive: [
60 {
61 breakpoint: 1199,
62 settings: {
63 slidesToShow: 3
64 }
65 },
66 {
67 breakpoint: 980,
68 settings: {
69 slidesToShow: 2
70 }
71 },
72 {
73 breakpoint: 600,
74 settings: {
75 arrows: false,
76 slidesToShow: 1
77 }
78 }
79 ]
80 });
81 });
82</script>