{"id":1762,"date":"2026-01-25T22:36:03","date_gmt":"2026-01-25T14:36:03","guid":{"rendered":"https:\/\/fengshecad.com\/1762\/"},"modified":"2026-01-29T21:09:50","modified_gmt":"2026-01-29T13:09:50","slug":"en-1991-1-1-2025-pdf-%e4%b8%8b%e8%bd%bd","status":"publish","type":"post","link":"https:\/\/fengshecad.com\/en\/1762\/","title":{"rendered":"Learning from Failure: Real Project Lessons When EN 1991-1-1 Was Not Properly Followed"},"content":{"rendered":"<p>The project was a straightforward one on paper: a new, single-story logistics warehouse on the outskirts of an industrial park. The client\u2019s brief emphasized speed and economy, a common enough directive. The structural scheme was simple\u2014long-span steel portal frames on pad foundations. Our initial calculations, based on assumed dead loads and a basic wind pressure from an older national annex, seemed robust. The design sailed through our internal review, and construction began on schedule. It was only when the steel erection was nearly complete that the first signs of trouble emerged. During a routine inspection of the column base plates, our site engineer noted unexpected, visible deflection in several of the secondary roof purlins under a modest wind load. The structure was safe, but it was behaving in a way our models hadn\u2019t predicted. The root cause, we would later discover, was not a gross error in member sizing, but a fundamental misapplication of the loading standard, EN 1991-1-1.<\/p>\n<p>Where the project team misjudged the requirements wasn&#8217;t in forgetting to apply loads, but in failing to appreciate the standard\u2019s systematic philosophy. We had treated the standard as a menu of discrete loads to be picked and applied in isolation. For the roof, we took the dead weight of the cladding and imposed loads for maintenance. For the wind, we pulled a pressure coefficient from a generic table for a simple rectangular building. The critical misstep was in the interaction and combination of these actions. EN 1991-1-1 isn&#8217;t just a catalog of weights and forces; it\u2019s a framework for building a realistic load model. We failed to adequately consider the specific, and in this case severe, local wind effects on the roof\u2019s edge and corner zones. Our simplified, uniform pressure model missed the significant suction forces that occur at roof perimeters, which are precisely where the lighter-gauge purlins are most vulnerable.<\/p>\n<p>This oversight bled directly into construction and procurement. The purlin supplier, working to our specified loads, supplied a product that was technically compliant with our drawings but fundamentally under-specified for the real physical environment. No one was at fault for installing what was specified, yet the system as a whole was flawed. The issue manifested as serviceability problems\u2014excessive vibration and perceptible sag\u2014long before any ultimate limit state was approached. This is a classic failure mode when EN 1991-1-1 is misunderstood: the structure stands, but its performance is compromised, leading to occupant concern, potential cladding damage, and inevitable, costly retrofit.<\/p>\n<p>How inspectors usually identify these problems is often through a combination of observation and probing questions. In our case, the visible deflection during a windy day was the trigger. A knowledgeable inspector doesn\u2019t just check bolt tightness; they think about load paths. They might ask: &#8220;Did the design consider torsional effects on the frame from non-symmetric wind loading?&#8221; or &#8220;What combination factors were used for the snow load on this monopitch roof adjacent to the taller office block?&#8221; In our project, a review of the wind load calculations would have revealed the absence of edge zone detailing. Inspectors, and later our own forensic review, look for the <em>completeness<\/em> of the load model. Was the notional horizontal load applied for global stability? Were the imposed loads for the storage area classified correctly (we had used a generic warehouse value, not accounting for potential high-bay stacking)? EN 1991-1-1 provides the methodology to answer these questions systematically, and deviation from that methodology leaves clear traces in the calculation package.<\/p>\n<p>What should have been controlled earlier was the very first step: the definition of actions. We rushed past Clause 4.2 in spirit, if not in letter. The standard demands a structured identification of permanent, variable, and accidental actions, considering their spatial variation and duration. We should have held a dedicated session to map out all actions on the structure, not in a spreadsheet, but on the drawings: Where does snow drift? Could the client ever hang lighting or services from the purlins (an imposed point load we omitted)? How does the construction sequence, with large open walls before cladding, affect the stability loading? This upfront investment in building a comprehensive load model is the core value of EN 1991-1-1. It forces a discipline that prevents the &#8220;load blindness&#8221; we experienced.<\/p>\n<p>The lesson was profound. We weren&#8217;t ignorant of the standard; we had a copy and used parts of it. The failure was in treating it as a source of <em>answers<\/em> instead of a guide for asking the right <em>questions<\/em>. It is the difference between looking up a wind pressure and conducting a proper wind action analysis. The standard\u2019s true application is in its ability to structure uncertainty. It provides the logic for combining a gust of wind with a team of maintenance workers on the roof and the weight of a new dust accumulation on a solar panel\u2014all while considering the probability of these events occurring together.<\/p>\n<p>In the end, the retrofit involved installing additional bracing and upgrading the perimeter purlins. The cost was not catastrophic, but it far exceeded the time and effort a proper, initial application of EN 1991-1-1 would have required. The standard is often seen as bureaucratic overhead, a box to tick. Our project demonstrated it is precisely the opposite: it is the most practical tool an engineer has to preemptively solve problems on paper, before they become expensive steel in the air, bending in the wind. The failure wasn&#8217;t in the steel; it was in the load model. And a robust load model is the first, and most non-negotiable, gift of a properly followed Eurocode 1.<\/p>\n\r\n            <div class=\"download-box mg-b\" id=\"download-box\" ref=\"downloadBox\">\r\n            <div>\r\n                \r\n                <div class=\"down-ready\">\r\n                    <div class=\"download-list gujia\" ref=\"gujia\">\r\n                        <div class=\"download-item\">\r\n                            <div class=\"download-thumb\" style=\"'background-image: url();'\">\r\n                            <\/div>\r\n                            <div class=\"download-rights\">\r\n                                <div class=\"download-rights-title\"><span class=\"gujia-bg\"><\/span><\/div>\r\n                                <ul>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                <\/ul>\r\n                            <\/div>\r\n                            <div class=\"download-info\">\r\n                            <div class=\"download-rights-title\"><span class=\"gujia-bg\"><\/span><\/div>\r\n                                <ul>\r\n                                <\/ul>\r\n                                <div class=\"download-current\">\r\n                                    <div class=\"\"><\/div>\r\n                                <\/div>\r\n                                <div class=\"download-button-box\">\r\n                                    <div class=\"\"><\/div>\r\n                                    <div class=\"\"><\/div>\r\n                                    <div class=\"\"><\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div> \r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"download-list\" v-cloak>\r\n                    <div v-for=\"(item,index) in list\" :class=\"'download-item b2-radius '+(item.current_user.can.allow ? 'allow-down' : 'not-allow-down')\" v-show=\"picked == index\" v-cloak>\r\n                        <div class=\"download-rights\" v-cloak>\r\n                        <div class=\"download-rights-title\"><i class=\"b2font b2-download-cloud-line1\"><\/i>Download permission<\/div><span class=\"mobile-show\" @click=\"item.show_role = !item.show_role\">View<\/span>\r\n                            <ul v-if=\"item.show_role\">\r\n                                <li v-for=\"right in item.rights\" :class=\"right.lv == item.current_user.lv.lv.lv || right.lv == item.current_user.lv.vip.lv ? 'red' : ''\">\r\n                                    <div><span v-text=\"right.lv_name+'\uff1a'\"><\/span><\/div>\r\n                                    <div v-if=\"right.type == 'money'\">\uffe5<span v-text=\"right.value\"><\/span><\/div>\r\n                                    <div v-if=\"right.type == 'credit'\"><i class=\"b2font b2-coin-line\"><\/i><span v-text=\"right.value\"><\/span><\/div>\r\n                                    <div v-if=\"right.type == 'free'\">Download for free<\/div>\r\n                                    <div v-if=\"right.type == 'comment'\">Download after comment<\/div>\r\n                                    <div v-if=\"right.type == 'login'\">Download after login<\/div>\r\n                                    \r\n                                <\/li>\r\n                            <\/ul>\r\n                        <\/div>\r\n                        \r\n                        <div class=\"download-info\">\r\n                        <div class=\"download-rights-title\"><span v-text=\"item.name\"><\/span><a :href=\"item.view\" target=\"_blank\" class=\"download-view button empty text\" v-if=\"item.view\">View demo<i class=\"b2font b2-arrow-right-s-line\"><\/i><\/a><\/div>\r\n                            <ul v-show=\"item.attrs.length >0\">\r\n                                <li v-for=\"attr in item.attrs\">\r\n                                    <span class=\"download-attr-name\">{{attr.name}}\uff1a<\/span>\r\n                                    <span v-html=\"attr.value\"><\/span>\r\n                                <\/li>\r\n                            <\/ul>\r\n                            <div class=\"download-current\">\r\n                                <span>Your current level is<\/span>\r\n                                <span v-if=\"item.current_user.lv.lv\" v-html=\"item.current_user.lv.lv.icon\"><\/span>\r\n                                <span v-if=\"item.current_user.lv.vip\" v-html=\"item.current_user.lv.vip.icon\"><\/span>\r\n                                <div class=\"\" v-if=\"!item.current_user.can.allow\">\r\n                                    <span v-if=\"item.current_user.can.type == 'login'\">\r\n                                    Login for free download<a href=\"javascript:void(0)\" onclick=\"login.show = true;login.loginType = 1\">Login<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.lv.lv.lv == 'dark_room'\">\r\n                                    Your account has been temporarily suspended and cannot be operated\uff01\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'comment'\">\r\n                                    Download after comment<a href=\"#respond\">Comment<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.lv.lv.lv == 'guest' && !item.current_user.guest\">\r\n                                        <span v-show=\"list[index].rights[0].lv == 'all'\" v-cloak>Download after paying <b><template v-if=\"item.current_user.can.type == 'credit'\"><i class=\"b2font b2-coin-line\"><\/i><\/template><template v-else>\uffe5<\/template><i v-html=\"list[index].current_user.can.value\"><\/i><\/b> points<\/span>\r\n                                        please first<a href=\"javascript:void(0)\" onclick=\"login.show = true;login.loginType = 1\">Login<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'full'\" class=\"green\">\r\n                                        You have run out of downloads (<b v-text=\"item.current_user.can.total_count\"><\/b> times) please come back tomorrow  or<a href=\"https:\/\/www.vrgoo.org\/vips\">Upgrade Membership<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'credit'\">\r\n                                        Download after paying <b><i class=\"b2font b2-coin-line\"><\/i><i v-html=\"list[index].current_user.can.value\"><\/i><\/b> points<a href=\"javascript:void(0)\" @click=\"credit(index)\">Pay Now<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'money'\">\r\n                                        Download after paying <b v-text=\"'\uffe5'+list[index].current_user.can.value\"><\/b> points<a href=\"javascript:void(0)\" @click=\"pay(index)\">Pay Now<\/a>\r\n                                    <\/span>\r\n                                    \r\n                                    <span v-else>\r\n                                        Your current user level is not allowed to download<a href=\"https:\/\/fengshecad.com\/en\/vips\/\" target=\"_blank\">Upgrade Membership<\/a>\r\n                                    <\/span>\r\n                                <\/div>\r\n                                <div class=\"\" v-else>\r\n                                    <span v-if=\"item.current_user.current_guest == 0 || item.current_user.can.free_down\" class=\"green\">\r\n                                        You have obtained download permission\r\n                                    <\/span>\r\n                                    <span class=\"green\" v-else>\r\n                                        You can download resources every day<b v-text=\"item.current_user.can.total_count\"><\/b>times, remaining today<b v-text=\"item.current_user.can.count\"><\/b>times left today\r\n                                    <\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                            <div class=\"download-button-box\">\r\n                                <button @click=\"go(b.link,item.current_user.can.allow,item,index)\" class=\"button\" v-text=\"b.name\" v-for=\"b in item.button\"><\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n                <\/div>\r\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>The project was a straightforward one on paper: a new, single-story logistics warehouse on the outskirts of an industrial park. The client\u2019s brief emphasized speed and economy, a common enough directive. The structural scheme was simple\u2014long-span steel portal<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64],"tags":[62],"collection":[],"class_list":["post-1762","post","type-post","status-publish","format-standard","hentry","category-eurocode","tag-en1991"],"_links":{"self":[{"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/posts\/1762","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/comments?post=1762"}],"version-history":[{"count":2,"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/posts\/1762\/revisions"}],"predecessor-version":[{"id":1900,"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/posts\/1762\/revisions\/1900"}],"wp:attachment":[{"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/media?parent=1762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/categories?post=1762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/tags?post=1762"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/fengshecad.com\/en\/wp-json\/wp\/v2\/collection?post=1762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}