The Board of Directors of MC-BIFI Bauchemie at the contract-signing ceremony held in Hanoi in August 2017 to establish the joint venture. MC-BIFI 2026
The Board of Directors of MC-BIFI Bauchemie at the contract-signing ceremony held in Hanoi in August 2017 to establish the joint venture.
© MC-BIFI 2026
Die Veranstaltung wurde auch dazu genutzt, um auf die MC-Bauchemie als traditionsreiches, international tätiges Familienunternehmen aufmerksam zu machen und über ihre Produktsysteme zu informieren. Die unterhaltsame Bühnenshow und die aufwendige Choreographie, die die Entstehungsgeschichte der MC-BIFI erzählte, wurden von allen Anwesenden mit Begeisterung aufgenommen. Das Event schaffte es sogar in die Abendnachrichten des bekanntesten Fernsehsenders in Vietnam.
Marktführer bei Betonzusatzmittel und Mahlhilfen
BIFI ist 2004 gegründet worden und war zunächst im Norden Vietnams aktiv. Heute verfügt MC-BIFI über zwei Produktionswerke in Hanoi im Norden und eines in Ho-Chi-Minh-Stadt im Süden des langgestreckten Landes und beschäftigt über 60 Mitarbeiter in Produktion, Forschung & Entwicklung, Verwaltung und Vertrieb. MC-BIFI besitzt einen beachtlichen Marktanteil in den Bereichen Betonzusatzmittel sowie Mahlhilfen für die Zementindustrie in Vietnam. Das Land nimmt damit eine strategisch wichtige Funktion für die MC-Gruppe in Südostasien ein, die mit dem Markteintritt ihre globale Wachstumsstrategie weiter vorantreibt.
Große Wachstumsperspektiven
„Die Bauwirtschaft in Vietnam boomt seit vielen Jahren und große Infrastrukturprojekte werden derzeit sehr stark gefördert, wir sehen daher große Wachstumsperspektiven“, so Dr. Ekkehard zur Mühlen, Geschäftsführer der MC sowie Mitglied im Board of Directors der MC-BIFI, und fügt hinzu: „Von unserem Joint Venture erhoffen wir uns zudem kürzere Distributionswege und niedrigere Produktions- und Distributionskosten in der Region Südostasien.“
„Mit der MC-Gruppe an unserer Seite haben wir uns auf dem vietnamesischen Markt sehr gut für die Zukunft aufgestellt“, ergänzt Ngoc Truong Vu, Geschäftsführer der MC-BIFI Bauchemie JSC. „Unsere Mitarbeiter und Kunden sind von diesem Zusammenschluss begeistert, denn ‚Made in Germany‘ hat in Vietnam immer noch eine große Bedeutung. Mit dem zusätzlichen Know-how und den führenden Produktsystemen der MC werden wir die Bereiche rund um den Schutz und die Instandsetzung von Betonbauwerken erschließen, in denen wir bisher nicht tätig waren, und weiteres Wachstum generieren“, ist Truong Vu überzeugt.
„MC und MC-BIFI werden sehr stark voneinander profitieren und sich gegenseitig ideal ergänzen. Wir werden gemeinsam unseren Beitrag für eine noch bessere Baukultur in Vietnam leisten und unsere Stellung im Markt weiter ausbauen“, betonte Nicolaus Müller, Geschäftsführer der MC, in seiner Begrüßungsrede an die Gäste.
MC in Asien
MC ist schon seit vielen Jahren in Asien tätig und startete bereits 1985 mit einer eigenen Gesellschaft in Indien. In den folgenden Jahrzehnten kamen weitere Gesellschaften in Taiwan, Malaysia und Singapur hinzu. Darüber hinaus ist MC in weiteren Ländern Asiens projektbezogen aktiv, beispielsweise in China, Indonesien, den Philippinen und Thailand.
pageImpression = pageImpression + 1;
});
barba.init({
preventRunning: true,
timeout: 5000,
/*
for debuggin usi this parameters
debug: false,
logLevel: 'debug',
*/
/*sync: true,*/
// define a custom function that will prevent Barba
// from working on links that contains a `prevent` CSS class
prevent: ({ el, event, href }) => {
if (!el) {
return false;
}
if (el.href && el.href.includes('landingpages')) {
return true;
}
if (el.classList && el.classList.contains('prevent')) {
return true;
}
return false;
},
preventScroll: true,
scroll: false,
views: [],
transitions: [
{
name: 'header-transition',
sync: false,
from: {
custom: ({ trigger }) => {
if (trigger.classList && trigger.classList.contains('headerFlip')) {
transistionImage = trigger.getElementsByClassName("transitionImage")[0];
if (typeof transistionImage == "undefined") {
return false;
}
transisitionEffect = getRandomInt(1);
return true;
}
return false;
}
},
async leave(data) {
if (transistionImage === null) return; // can be null, return if null to not throw an error
if ( transisitionEffect == 0) {
const done = this.async();
let element = transistionImage;
let state = Flip.getState(element);
let headerImage = document.getElementById('headerImage');
headerImage.removeChild(headerImage.getElementsByTagName('img')[0]);
let headerContent = document.querySelector('.headerContent');
gsap.to(headerContent, {
opacity: 0,
});
let content = document.querySelector('.content');
gsap.to(content, {
opacity: 0,
});
headerImage.appendChild(element);
scroll(0,0);
Flip.from(state, {duration:0.9, ease: "power1.inOut", scale: true, absolute:true,});
await delay(900); // Der await Operator wird genutzt, um auf einen Promise zu warten. Er kann nur in einer async Funktion benutzt werden.
done();
}
},
enter(data) {
window.scrollTop = '0';
let content = data.next.container.querySelector('.content');
gsap.from(content, {
opacity: 0,
});
let headerContent = data.next.container.querySelector('.headerContent');
gsap.from(headerContent, {
opacity: 0,
delay: 0.5,
});
},
after(data) {
}
},
{
name: 'microsites_sliding_scroll',
sync: true,
from: {
custom: (data) => {
const { trigger, current, next } = data;
function getParent(pathname) {
const parts = pathname.split('/').filter(part => part !== '')
return parts.length > 1 ? parts[parts.length - 2] : parts[0] || null
}
if (trigger === 'popstate' || trigger === 'back' || trigger === 'forward') {
return false;
}
if(trigger.classList.contains('microsites_sliding_scroll') || trigger.classList.contains('sliding_scroll')){
return true;
}
if(current.namespace == 'template_138' && next.namespace == 'template_138') {
return getParent(current.url.path) === getParent(next.url.path)
}
return false;
}
},
to: {
namespace: [
'template_120',
'template_138',
]
},async leave({ current, next, trigger }) {
const debug = window.debug;
if (debug) console.log('Debug mode enabled');
const done = this.async();
const menuindexCurrent = +current.container.querySelector('[data-menuindex]').dataset.menuindex;
const menuindexNext = +next.container.querySelector('[data-menuindex]').dataset.menuindex;
const nextContent = next.container.querySelector('.content');
const currentContent = current.container.querySelector('.content');
let xPerc = menuindexCurrent < menuindexNext ? 100 : -100;
const navbarHeight = document.querySelector('.navbar').offsetHeight;
const pageHeight = document.querySelector('.header').offsetHeight;
const nextContentHeight = nextContent.offsetHeight;
const totalHeight = nextContentHeight + navbarHeight + pageHeight;
document.body.style.minHeight = `${totalHeight}px`;
const targetScrollY = trigger.classList.contains('microsites_sliding_scroll')
? pageHeight - navbarHeight
: pageHeight + navbarHeight;
const top = trigger.classList.contains('microsites_sliding_scroll') ? '0px' : '116px';
gsap.set(next.container, {
xPercent: xPerc,
position: 'absolute',
top: top,
left: 0,
display: 'block'
});
const tl = gsap.timeline({
onComplete: () => {
gsap.set(current.container, { display: "none" });
gsap.set(next.container, { clearProps: 'position,top,left,xPercent' });
gsap.set(nextContent, { clearProps: 'xPercent' });
document.body.style.minHeight = '';
done();
}
});
tl.to(currentContent, {
xPercent: -xPerc,
duration: debug ? 5 : 0.5,
ease: "power1.inOut",
}, 0);
tl.to(nextContent, {
xPercent: -xPerc,
duration: debug ? 5 : 0.5,
ease: "power1.inOut"
}, 0);
tl.to(window, {
scrollTo: { y: targetScrollY },
duration: debug ? 5 : 0.5,
ease: "power1.inOut"
}, 0);
},
enter({ next }) {
gsap.from(next.container, {
opacity: 0,
});
}
},
{
name: 'microsites_sliding',
sync: true,
from: {
custom: ({ trigger }) => {
if (trigger === 'popstate' || trigger === 'back' || trigger === 'forward') {
return false;
}
if(trigger.classList.contains('microsites_sliding')){
return true;
}
return false;
}
},
to: {
namespace: [
'template_120',
]
},
async leave({current, next}) {
const done = this.async();
const tl = gsap.timeline({onComplete: ()=>{
gsap.set(next.container, {clearProps: 'all'})
gsap.set(next.container.querySelector('.content'), {clearProps: 'all'})
}})
const currentContent = current.container.querySelector('.content')
const nextContent = next.container.querySelector('.content')
const currentH1 = document.querySelector('.currentPagetitle')
const currentIntrotext = document.querySelector('.currentIntrotext')
const nextH1 = next.container.querySelector('.pageTitle')
const nextIntrotext = next.container.querySelector('.introtext')
gsap.set(next.container, { xPercent: 100, position: 'absolute', top: 0, left: 0 })
tl.to(currentContent, {xPercent: -100, opacity: 0, duration: 1, ease: "power1.inOut", onComplete: () => {
gsap.set(current.container, { display: "none" });
}}, 0)
.to([currentH1, currentIntrotext], { opacity: 0, duration: 0.5, ease: "power1.inOut", onComplete: () => {
currentH1.innerText = nextH1.innerText;
currentIntrotext.innerText = nextIntrotext.innerText;
}}, 0)
.to([currentH1, currentIntrotext], { opacity: 1, duration: 0.5, ease: "power1.inOut" }, 0.5)
.to(nextContent, {xPercent: -100, duration: 1, ease: "power1.inOut"}, 0)
await delay(1000);
done();
},
enter({next}){
gsap.from(next.container, {
opacity: 0,
});
}
},
{
name: 'default',
sync: false,
async leave(data) {
const done = this.async();
gsap.to(data.current.container, {
opacity: 0,
duration: 0.5,
});
await delay(500); // Der await Operator wird genutzt, um auf einen Promise zu warten. Er kann nur in einer async Funktion benutzt werden.
scroll(0,0);
done();
},
enter(data) {
window.scrollTop = '0';
gsap.from(data.next.container, {
opacity: 0,
duration: 0.5,
});
},
after(data) {
// START: Ankur - 15062023 - For Scroll Position History
if(scrollHistory[data.next.url.href]) {
let scroll = scrollHistory[data.next.url.href];
window.scrollTo({top: scroll.y, behavior: 'instant'});
}
// END: Ankur
}
},
{
name: 'self',
enter() {
},
}
]
});
});