Help
RSS
API
Feed
Maltego
Contact
Domain > blog.ifcopenshell.org
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2015-03-06
74.125.202.121
(
ClassC
)
2024-09-14
142.250.217.83
(
ClassC
)
Port 80
HTTP/1.1 200 OKContent-Type: text/html; charsetUTF-8Expires: Sat, 14 Sep 2024 01:06:27 GMTDate: Sat, 14 Sep 2024 01:06:27 GMTCache-Control: private, max-age0Last-Modified: Mon, 09 Sep 2024 10:00:50 GMTX-Content-Type-Options: nosniffX-XSS-Protection: 1; modeblockServer: GSEAccept-Ranges: noneVary: Accept-EncodingTransfer-Encoding: chunked !DOCTYPE html>html classv2 dirltr langen xmlnshttp://www.w3.org/1999/xhtml xmlns:bhttp://www.google.com/2005/gml/b xmlns:datahttp://www.google.com/2005/gml/data xmlns:exprhttp://www.google.com/2005/gml/expr>head>link hrefhttps://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css relstylesheet typetext/css/>meta contentwidth1100 nameviewport/>meta contenttext/html; charsetUTF-8 http-equivContent-Type/>meta contentblogger namegenerator/>link hrefhttp://blog.ifcopenshell.org/favicon.ico relicon typeimage/x-icon/>link hrefhttp://blog.ifcopenshell.org/ relcanonical/>link relalternate typeapplication/atom+xml titleIfcOpenShell - Atom hrefhttp://blog.ifcopenshell.org/feeds/posts/default />link relalternate typeapplication/rss+xml titleIfcOpenShell - RSS hrefhttp://blog.ifcopenshell.org/feeds/posts/default?altrss />link relservice.post typeapplication/atom+xml titleIfcOpenShell - Atom hrefhttps://www.blogger.com/feeds/1792504135258878475/posts/default />link relme hrefhttps://www.blogger.com/profile/02091082558478878837 />!--Cant find substitution for tag blog.ieCssRetrofitLinks-->meta contenthttp://blog.ifcopenshell.org/ propertyog:url/>meta contentIfcOpenShell propertyog:title/>meta contentopen source ifc implementation and geometry engine propertyog:description/>title>IfcOpenShell/title>style idpage-skin-1 typetext/css>!--/*-----------------------------------------------Blogger Template StyleName: SimpleDesigner: BloggerURL: www.blogger.com----------------------------------------------- *//* Content----------------------------------------------- */body {font: normal normal 12px Verdana, Geneva, sans-serif;color: #666666;background: #f2f2f2 none repeat scroll top left;padding: 0 0 0 0;}html body .region-inner {min-width: 0;max-width: 100%;width: auto;}h2 {font-size: 22px;}a:link {text-decoration:none;color: #34aee2;}a:visited {text-decoration:none;color: #2288bb;}a:hover {text-decoration:underline;color: #34aee2;}.body-fauxcolumn-outer .fauxcolumn-inner {background: transparent none repeat scroll top left;_background-image: none;}.body-fauxcolumn-outer .cap-top {position: absolute;z-index: 1;height: 400px;width: 100%;}.body-fauxcolumn-outer .cap-top .cap-left {width: 100%;background: transparent none repeat-x scroll top left;_background-image: none;}.content-outer {-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .15);-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .15);-goog-ms-box-shadow: 0 0 0 #333333;box-shadow: 0 0 0 rgba(0, 0, 0, .15);margin-bottom: 1px;}.content-inner {padding: 10px 40px;}.content-inner {background-color: #ffffff;}/* Header----------------------------------------------- */.header-outer {background: transparent none repeat-x scroll 0 -400px;_background-image: none;}.Header h1 {font: normal normal 40px Verdana, Geneva, sans-serif;color: #34aee2;text-shadow: 0 0 0 rgba(0, 0, 0, .2);}.Header h1 a {color: #34aee2;}.Header .description {font-size: 18px;color: #4d4d4d;}.header-inner .Header .titlewrapper {padding: 22px 0;}.header-inner .Header .descriptionwrapper {padding: 0 0;}/* Tabs----------------------------------------------- */.tabs-inner .section:first-child {border-top: 0 solid #34aee2;}.tabs-inner .section:first-child ul {margin-top: -1px;border-top: 1px solid #34aee2;border-left: 1px solid #34aee2;border-right: 1px solid #34aee2;}.tabs-inner .widget ul {background: transparent none repeat-x scroll 0 -800px;_background-image: none;border-bottom: 1px solid #34aee2;margin-top: 0;margin-left: -30px;margin-right: -30px;}.tabs-inner .widget li a {display: inline-block;padding: .6em 1em;font: normal normal 12px Verdana, Geneva, sans-serif;color: #000000;border-left: 1px solid #ffffff;border-right: 1px solid #34aee2;}.tabs-inner .widget li:first-child a {border-left: none;}.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover {color: #000000;background-color: #eeeeee;text-decoration: none;}/* Columns----------------------------------------------- */.main-outer {border-top: 0 solid transparent;}.fauxcolumn-left-outer .fauxcolumn-inner {border-right: 1px solid transparent;}.fauxcolumn-right-outer .fauxcolumn-inner {border-left: 1px solid transparent;}/* Headings----------------------------------------------- */div.widget > h2,div.widget h2.title {margin: 0 0 1em 0;font: normal bold 11px Trebuchet MS,Trebuchet,Verdana,sans-serif;color: #000000;}/* Widgets----------------------------------------------- */.widget .zippy {color: #999999;text-shadow: 2px 2px 1px rgba(0, 0, 0, .1);}.widget .popular-posts ul {list-style: none;}/* Posts----------------------------------------------- */h2.date-header {font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;}.date-header span {background-color: #ffffff;color: #666666;padding: 0.4em;letter-spacing: 3px;margin: inherit;}.main-inner {padding-top: 35px;padding-bottom: 65px;}.main-inner .column-center-inner {padding: 0 0;}.main-inner .column-center-inner .section {margin: 0 1em;}.post {margin: 0 0 45px 0;}h3.post-title, .comments h4 {font: normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif;margin: .75em 0 0;}.post-body {font-size: 110%;line-height: 1.4;position: relative;}.post-body img, .post-body .tr-caption-container, .Profile img, .Image img,.BlogList .item-thumbnail img {padding: 2px;background: #ffffff;border: 1px solid #eeeeee;-moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);-webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);}.post-body img, .post-body .tr-caption-container {padding: 5px;}.post-body .tr-caption-container {color: #666666;}.post-body .tr-caption-container img {padding: 0;background: transparent;border: none;-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1);-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1);box-shadow: 0 0 0 rgba(0, 0, 0, .1);}.post-header {margin: 0 0 1.5em;line-height: 1.6;font-size: 90%;}.post-footer {margin: 20px -2px 0;padding: 5px 10px;color: #666666;background-color: #ffffff;border-bottom: 1px solid #f2f2f2;line-height: 1.6;font-size: 90%;}#comments .comment-author {padding-top: 1.5em;border-top: 1px solid transparent;background-position: 0 1.5em;}#comments .comment-author:first-child {padding-top: 0;border-top: none;}.avatar-image-container {margin: .2em 0 0;}#comments .avatar-image-container img {border: 1px solid #eeeeee;}/* Comments----------------------------------------------- */.comments .comments-content .icon.blog-author {background-repeat: no-repeat;background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg);}.comments .comments-content .loadmore a {border-top: 1px solid #999999;border-bottom: 1px solid #999999;}.comments .comment-thread.inline-thread {background-color: #ffffff;}.comments .continue {border-top: 2px solid #999999;}/* Accents---------------------------------------------- */.section-columns td.columns-cell {border-left: 1px solid transparent;}.blog-pager {background: transparent url(http://www.blogblog.com/1kt/simple/paging_dot.png) repeat-x scroll top center;}.blog-pager-older-link, .home-link,.blog-pager-newer-link {background-color: #ffffff;padding: 5px;}.footer-outer {border-top: 1px dashed #bbbbbb;}/* Mobile----------------------------------------------- */body.mobile {background-size: auto;}.mobile .body-fauxcolumn-outer {background: transparent none repeat scroll top left;}.mobile .body-fauxcolumn-outer .cap-top {background-size: 100% auto;}.mobile .content-outer {-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15);box-shadow: 0 0 3px rgba(0, 0, 0, .15);}.mobile .tabs-inner .widget ul {margin-left: 0;margin-right: 0;}.mobile .post {margin: 0;}.mobile .main-inner .column-center-inner .section {margin: 0;}.mobile .date-header span {padding: 0.1em 10px;margin: 0 -10px;}.mobile h3.post-title {margin: 0;}.mobile .blog-pager {background: transparent none no-repeat scroll top center;}.mobile .footer-outer {border-top: none;}.mobile .main-inner, .mobile .footer-inner {background-color: #ffffff;}.mobile-index-contents {color: #666666;}.mobile-link-button {background-color: #34aee2;}.mobile-link-button a:link, .mobile-link-button a:visited {color: #ffffff;}.mobile .tabs-inner .section:first-child {border-top: none;}.mobile .tabs-inner .PageList .widget-content {background-color: #eeeeee;color: #000000;border-top: 1px solid #34aee2;border-bottom: 1px solid #34aee2;}.mobile .tabs-inner .PageList .widget-content .pagelist-arrow {border-left: 1px solid #34aee2;}div.content-inner { margin-top: 20px; border: solid 1px #34AEE2 }.Header h1 { padding-bottom: 0; margin-bottom: 0; line-height: 40px; }.header-inner .Header .titlewrapper { padding-bottom: 0; }.Header .description { line-height: 18px; }-->/style>style idtemplate-skin-1 typetext/css>!--body {min-width: 1000px;}.content-outer, .content-fauxcolumn-outer, .region-inner {min-width: 1000px;max-width: 1000px;_width: 1000px;}.main-inner .columns {padding-left: 0px;padding-right: 0px;}.main-inner .fauxcolumn-center-outer {left: 0px;right: 0px;/* IE6 does not respect left and right together */_width: expression(this.parentNode.offsetWidth -parseInt(0px) -parseInt(0px) + px);}.main-inner .fauxcolumn-left-outer {width: 0px;}.main-inner .fauxcolumn-right-outer {width: 0px;}.main-inner .column-left-outer {width: 0px;right: 100%;margin-left: -0px;}.main-inner .column-right-outer {width: 0px;margin-right: -0px;}#layout {min-width: 0;}#layout .content-outer {min-width: 0;width: 800px;}#layout .region-inner {min-width: 0;width: auto;}body#layout div.add_widget {padding: 8px;}body#layout div.add_widget a {margin-left: 32px;}-->/style>script srchttps://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js typetext/javascript>/script>script srchttps://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPlain.min.js typetext/javascript>/script>script srchttps://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushCpp.min.js typetext/javascript>/script>link hrefhttps://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.min.css relstylesheet typetext/css/>link hrefhttps://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeEclipse.min.css relstylesheet typetext/css/>script typetext/javascript> SyntaxHighlighter.config.bloggerMode true; SyntaxHighlighter.all();/script>link hrefhttps://www.blogger.com/dyn-css/authorization.css?targetBlogID1792504135258878475&zxaffa3380-b867-4a65-ab69-77ed63356836 medianone onloadif(media!'all')media'all' relstylesheet/>noscript>link hrefhttps://www.blogger.com/dyn-css/authorization.css?targetBlogID1792504135258878475&zxaffa3380-b867-4a65-ab69-77ed63356836 relstylesheet/>/noscript>meta namegoogle-adsense-platform-account contentca-host-pub-1556223355139109/>meta namegoogle-adsense-platform-domain contentblogspot.com/>/head>body classloading variant-simplysimple>div classnavbar section idnavbar nameNavbar>div classwidget Navbar data-version1 idNavbar1>script typetext/javascript> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener(load, function(){ objectattribute val; }, false); } else { window.attachEvent(onload, function(){ objectattribute val; }); } } /script>div idnavbar-iframe-container>/div>script typetext/javascript srchttps://apis.google.com/js/platform.js>/script>script typetext/javascript> gapi.load(gapi.iframes:gapi.iframes.style.bubble, function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: https://www.blogger.com/navbar.g?targetBlogID\x3d1792504135258878475\x26blogName\x3dIfcOpenShell\x26publishMode\x3dPUBLISH_MODE_HOSTED\x26navbarType\x3dLIGHT\x26layoutType\x3dLAYOUTS\x26searchRoot\x3dhttp://blog.ifcopenshell.org/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttp://blog.ifcopenshell.org/\x26vt\x3d-7020132374313054948, where: document.getElementById(navbar-iframe-container), id: navbar-iframe }); } }); /script>script typetext/javascript>(function() {var script document.createElement(script);script.type text/javascript;script.src //pagead2.googlesyndication.com/pagead/js/google_top_exp.js;var head document.getElementsByTagName(head)0;if (head) {head.appendChild(script);}})();/script>/div>/div>div itemscopeitemscope itemtypehttp://schema.org/Blog styledisplay: none;>meta contentIfcOpenShell itempropname/>/div>div classbody-fauxcolumns>div classfauxcolumn-outer body-fauxcolumn-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/div>div classcontent>div classcontent-fauxcolumns>div classfauxcolumn-outer content-fauxcolumn-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/div>div classcontent-outer>div classcontent-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left content-fauxborder-left>div classfauxborder-right content-fauxborder-right>/div>div classcontent-inner>header>div classheader-outer>div classheader-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left header-fauxborder-left>div classfauxborder-right header-fauxborder-right>/div>div classregion-inner header-inner>div classheader section idheader nameHeader>div classwidget Header data-version1 idHeader1>div idheader-inner>div classtitlewrapper>h1 classtitle>IfcOpenShell/h1>/div>div classdescriptionwrapper>p classdescription>span>open source ifc implementation and geometry engine/span>/p>/div>/div>/div>/div>/div>/div>div classheader-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/header>div classtabs-outer>div classtabs-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left tabs-fauxborder-left>div classfauxborder-right tabs-fauxborder-right>/div>div classregion-inner tabs-inner>div classtabs no-items section idcrosscol nameCross-Column>/div>div classtabs no-items section idcrosscol-overflow nameCross-Column 2>/div>/div>/div>div classtabs-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>div classmain-outer>div classmain-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left main-fauxborder-left>div classfauxborder-right main-fauxborder-right>/div>div classregion-inner main-inner>div classcolumns fauxcolumns>div classfauxcolumn-outer fauxcolumn-center-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>div classfauxcolumn-outer fauxcolumn-left-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>div classfauxcolumn-outer fauxcolumn-right-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>!-- corrects IE6 width calculation -->div classcolumns-inner>div classcolumn-center-outer>div classcolumn-center-inner>div classmain section idmain nameMain>div classwidget Blog data-version1 idBlog1>div classblog-posts hfeed> div classdate-outer> h2 classdate-header>span>Monday, August 23, 2021/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry uncustomized-post-template itempropblogPost itemscopeitemscope itemtypehttp://schema.org/BlogPosting>meta content1792504135258878475 itempropblogId/>meta content1458979522066034868 itemproppostId/>a name1458979522066034868>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.ifcopenshell.org/2021/08/idspy-toolkit-as-result-of-google.html>IDS.py toolkit as a result of Google Summer of Code 2021/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-1458979522066034868 itempropdescription articleBody>p> !--if gte mso 9>xml> o:OfficeDocumentSettings> o:AllowPNG/> /o:OfficeDocumentSettings>/xml>!endif-->!--if gte mso 9>xml> w:WordDocument> w:View>Normal/w:View> w:Zoom>0/w:Zoom> w:TrackMoves/> w:TrackFormatting/> w:PunctuationKerning/> w:ValidateAgainstSchemas/> w:SaveIfXMLInvalid>false/w:SaveIfXMLInvalid> w:IgnoreMixedContent>false/w:IgnoreMixedContent> w:AlwaysShowPlaceholderText>false/w:AlwaysShowPlaceholderText> w:DoNotPromoteQF/> w:LidThemeOther>NO-BOK/w:LidThemeOther> w:LidThemeAsian>X-NONE/w:LidThemeAsian> w:LidThemeComplexScript>X-NONE/w:LidThemeComplexScript> w:Compatibility> w:BreakWrappedTables/> w:SnapToGridInCell/> w:WrapTextWithPunct/> w:UseAsianBreakRules/> w:DontGrowAutofit/> w:SplitPgBreakAndParaMark/> w:EnableOpenTypeKerning/> w:DontFlipMirrorIndents/> w:OverrideTableStyleHps/> /w:Compatibility> m:mathPr> m:mathFont m:valCambria Math/> m:brkBin m:valbefore/> m:brkBinSub m:val--/> m:smallFrac m:valoff/> m:dispDef/> m:lMargin m:val0/> m:rMargin m:val0/> m:defJc m:valcenterGroup/> m:wrapIndent m:val1440/> m:intLim m:valsubSup/> m:naryLim m:valundOvr/> /m:mathPr>/w:WordDocument>/xml>!endif-->!--if gte mso 9>xml> w:LatentStyles DefLockedStatefalse DefUnhideWhenUsedfalse DefSemiHiddenfalse DefQFormatfalse DefPriority99 LatentStyleCount376> w:LsdException Lockedfalse Priority0 QFormattrue NameNormal/> w:LsdException Lockedfalse Priority9 QFormattrue Nameheading 1/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 2/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 3/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 4/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 5/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 6/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 7/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 8/> w:LsdException Lockedfalse Priority9 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Nameheading 9/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 5/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 6/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 7/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 8/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex 9/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 1/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 2/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 3/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 4/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 5/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 6/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 7/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 8/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue Nametoc 9/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameNormal Indent/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Namefootnote text/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameannotation text/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameheader/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Namefooter/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameindex heading/> w:LsdException Lockedfalse Priority35 SemiHiddentrue UnhideWhenUsedtrue QFormattrue Namecaption/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nametable of figures/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameenvelope address/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameenvelope return/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Namefootnote reference/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameannotation reference/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameline number/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Namepage number/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameendnote reference/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameendnote text/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nametable of authorities/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Namemacro/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nametoa heading/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Bullet/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Number/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList 5/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Bullet 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Bullet 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Bullet 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Bullet 5/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Number 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Number 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Number 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Number 5/> w:LsdException Lockedfalse Priority10 QFormattrue NameTitle/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameClosing/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameSignature/> w:LsdException Lockedfalse Priority1 SemiHiddentrue UnhideWhenUsedtrue NameDefault Paragraph Font/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text Indent/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Continue/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Continue 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Continue 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Continue 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameList Continue 5/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameMessage Header/> w:LsdException Lockedfalse Priority11 QFormattrue NameSubtitle/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameSalutation/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameDate/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text First Indent/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text First Indent 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameNote Heading/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text Indent 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBody Text Indent 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBlock Text/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHyperlink/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameFollowedHyperlink/> w:LsdException Lockedfalse Priority22 QFormattrue NameStrong/> w:LsdException Lockedfalse Priority20 QFormattrue NameEmphasis/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameDocument Map/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NamePlain Text/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameE-mail Signature/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Top of Form/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Bottom of Form/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameNormal (Web)/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Acronym/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Address/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Cite/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Code/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Definition/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Keyboard/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Preformatted/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Sample/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Typewriter/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHTML Variable/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameNormal Table/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue Nameannotation subject/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameNo List/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameOutline List 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameOutline List 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameOutline List 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Simple 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Simple 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Simple 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Classic 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Classic 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Classic 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Classic 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Colorful 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Colorful 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Colorful 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Columns 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Columns 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Columns 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Columns 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Columns 5/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 5/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 6/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 7/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Grid 8/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 4/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 5/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 6/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 7/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable List 8/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable 3D effects 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable 3D effects 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable 3D effects 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Contemporary/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Elegant/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Professional/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Subtle 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Subtle 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Web 1/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Web 2/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Web 3/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameBalloon Text/> w:LsdException Lockedfalse Priority39 NameTable Grid/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameTable Theme/> w:LsdException Lockedfalse SemiHiddentrue NamePlaceholder Text/> w:LsdException Lockedfalse Priority1 QFormattrue NameNo Spacing/> w:LsdException Lockedfalse Priority60 NameLight Shading/> w:LsdException Lockedfalse Priority61 NameLight List/> w:LsdException Lockedfalse Priority62 NameLight Grid/> w:LsdException Lockedfalse Priority63 NameMedium Shading 1/> w:LsdException Lockedfalse Priority64 NameMedium Shading 2/> w:LsdException Lockedfalse Priority65 NameMedium List 1/> w:LsdException Lockedfalse Priority66 NameMedium List 2/> w:LsdException Lockedfalse Priority67 NameMedium Grid 1/> w:LsdException Lockedfalse Priority68 NameMedium Grid 2/> w:LsdException Lockedfalse Priority69 NameMedium Grid 3/> w:LsdException Lockedfalse Priority70 NameDark List/> w:LsdException Lockedfalse Priority71 NameColorful Shading/> w:LsdException Lockedfalse Priority72 NameColorful List/> w:LsdException Lockedfalse Priority73 NameColorful Grid/> w:LsdException Lockedfalse Priority60 NameLight Shading Accent 1/> w:LsdException Lockedfalse Priority61 NameLight List Accent 1/> w:LsdException Lockedfalse Priority62 NameLight Grid Accent 1/> w:LsdException Lockedfalse Priority63 NameMedium Shading 1 Accent 1/> w:LsdException Lockedfalse Priority64 NameMedium Shading 2 Accent 1/> w:LsdException Lockedfalse Priority65 NameMedium List 1 Accent 1/> w:LsdException Lockedfalse SemiHiddentrue NameRevision/> w:LsdException Lockedfalse Priority34 QFormattrue NameList Paragraph/> w:LsdException Lockedfalse Priority29 QFormattrue NameQuote/> w:LsdException Lockedfalse Priority30 QFormattrue NameIntense Quote/> w:LsdException Lockedfalse Priority66 NameMedium List 2 Accent 1/> w:LsdException Lockedfalse Priority67 NameMedium Grid 1 Accent 1/> w:LsdException Lockedfalse Priority68 NameMedium Grid 2 Accent 1/> w:LsdException Lockedfalse Priority69 NameMedium Grid 3 Accent 1/> w:LsdException Lockedfalse Priority70 NameDark List Accent 1/> w:LsdException Lockedfalse Priority71 NameColorful Shading Accent 1/> w:LsdException Lockedfalse Priority72 NameColorful List Accent 1/> w:LsdException Lockedfalse Priority73 NameColorful Grid Accent 1/> w:LsdException Lockedfalse Priority60 NameLight Shading Accent 2/> w:LsdException Lockedfalse Priority61 NameLight List Accent 2/> w:LsdException Lockedfalse Priority62 NameLight Grid Accent 2/> w:LsdException Lockedfalse Priority63 NameMedium Shading 1 Accent 2/> w:LsdException Lockedfalse Priority64 NameMedium Shading 2 Accent 2/> w:LsdException Lockedfalse Priority65 NameMedium List 1 Accent 2/> w:LsdException Lockedfalse Priority66 NameMedium List 2 Accent 2/> w:LsdException Lockedfalse Priority67 NameMedium Grid 1 Accent 2/> w:LsdException Lockedfalse Priority68 NameMedium Grid 2 Accent 2/> w:LsdException Lockedfalse Priority69 NameMedium Grid 3 Accent 2/> w:LsdException Lockedfalse Priority70 NameDark List Accent 2/> w:LsdException Lockedfalse Priority71 NameColorful Shading Accent 2/> w:LsdException Lockedfalse Priority72 NameColorful List Accent 2/> w:LsdException Lockedfalse Priority73 NameColorful Grid Accent 2/> w:LsdException Lockedfalse Priority60 NameLight Shading Accent 3/> w:LsdException Lockedfalse Priority61 NameLight List Accent 3/> w:LsdException Lockedfalse Priority62 NameLight Grid Accent 3/> w:LsdException Lockedfalse Priority63 NameMedium Shading 1 Accent 3/> w:LsdException Lockedfalse Priority64 NameMedium Shading 2 Accent 3/> w:LsdException Lockedfalse Priority65 NameMedium List 1 Accent 3/> w:LsdException Lockedfalse Priority66 NameMedium List 2 Accent 3/> w:LsdException Lockedfalse Priority67 NameMedium Grid 1 Accent 3/> w:LsdException Lockedfalse Priority68 NameMedium Grid 2 Accent 3/> w:LsdException Lockedfalse Priority69 NameMedium Grid 3 Accent 3/> w:LsdException Lockedfalse Priority70 NameDark List Accent 3/> w:LsdException Lockedfalse Priority71 NameColorful Shading Accent 3/> w:LsdException Lockedfalse Priority72 NameColorful List Accent 3/> w:LsdException Lockedfalse Priority73 NameColorful Grid Accent 3/> w:LsdException Lockedfalse Priority60 NameLight Shading Accent 4/> w:LsdException Lockedfalse Priority61 NameLight List Accent 4/> w:LsdException Lockedfalse Priority62 NameLight Grid Accent 4/> w:LsdException Lockedfalse Priority63 NameMedium Shading 1 Accent 4/> w:LsdException Lockedfalse Priority64 NameMedium Shading 2 Accent 4/> w:LsdException Lockedfalse Priority65 NameMedium List 1 Accent 4/> w:LsdException Lockedfalse Priority66 NameMedium List 2 Accent 4/> w:LsdException Lockedfalse Priority67 NameMedium Grid 1 Accent 4/> w:LsdException Lockedfalse Priority68 NameMedium Grid 2 Accent 4/> w:LsdException Lockedfalse Priority69 NameMedium Grid 3 Accent 4/> w:LsdException Lockedfalse Priority70 NameDark List Accent 4/> w:LsdException Lockedfalse Priority71 NameColorful Shading Accent 4/> w:LsdException Lockedfalse Priority72 NameColorful List Accent 4/> w:LsdException Lockedfalse Priority73 NameColorful Grid Accent 4/> w:LsdException Lockedfalse Priority60 NameLight Shading Accent 5/> w:LsdException Lockedfalse Priority61 NameLight List Accent 5/> w:LsdException Lockedfalse Priority62 NameLight Grid Accent 5/> w:LsdException Lockedfalse Priority63 NameMedium Shading 1 Accent 5/> w:LsdException Lockedfalse Priority64 NameMedium Shading 2 Accent 5/> w:LsdException Lockedfalse Priority65 NameMedium List 1 Accent 5/> w:LsdException Lockedfalse Priority66 NameMedium List 2 Accent 5/> w:LsdException Lockedfalse Priority67 NameMedium Grid 1 Accent 5/> w:LsdException Lockedfalse Priority68 NameMedium Grid 2 Accent 5/> w:LsdException Lockedfalse Priority69 NameMedium Grid 3 Accent 5/> w:LsdException Lockedfalse Priority70 NameDark List Accent 5/> w:LsdException Lockedfalse Priority71 NameColorful Shading Accent 5/> w:LsdException Lockedfalse Priority72 NameColorful List Accent 5/> w:LsdException Lockedfalse Priority73 NameColorful Grid Accent 5/> w:LsdException Lockedfalse Priority60 NameLight Shading Accent 6/> w:LsdException Lockedfalse Priority61 NameLight List Accent 6/> w:LsdException Lockedfalse Priority62 NameLight Grid Accent 6/> w:LsdException Lockedfalse Priority63 NameMedium Shading 1 Accent 6/> w:LsdException Lockedfalse Priority64 NameMedium Shading 2 Accent 6/> w:LsdException Lockedfalse Priority65 NameMedium List 1 Accent 6/> w:LsdException Lockedfalse Priority66 NameMedium List 2 Accent 6/> w:LsdException Lockedfalse Priority67 NameMedium Grid 1 Accent 6/> w:LsdException Lockedfalse Priority68 NameMedium Grid 2 Accent 6/> w:LsdException Lockedfalse Priority69 NameMedium Grid 3 Accent 6/> w:LsdException Lockedfalse Priority70 NameDark List Accent 6/> w:LsdException Lockedfalse Priority71 NameColorful Shading Accent 6/> w:LsdException Lockedfalse Priority72 NameColorful List Accent 6/> w:LsdException Lockedfalse Priority73 NameColorful Grid Accent 6/> w:LsdException Lockedfalse Priority19 QFormattrue NameSubtle Emphasis/> w:LsdException Lockedfalse Priority21 QFormattrue NameIntense Emphasis/> w:LsdException Lockedfalse Priority31 QFormattrue NameSubtle Reference/> w:LsdException Lockedfalse Priority32 QFormattrue NameIntense Reference/> w:LsdException Lockedfalse Priority33 QFormattrue NameBook Title/> w:LsdException Lockedfalse Priority37 SemiHiddentrue UnhideWhenUsedtrue NameBibliography/> w:LsdException Lockedfalse Priority39 SemiHiddentrue UnhideWhenUsedtrue QFormattrue NameTOC Heading/> w:LsdException Lockedfalse Priority41 NamePlain Table 1/> w:LsdException Lockedfalse Priority42 NamePlain Table 2/> w:LsdException Lockedfalse Priority43 NamePlain Table 3/> w:LsdException Lockedfalse Priority44 NamePlain Table 4/> w:LsdException Lockedfalse Priority45 NamePlain Table 5/> w:LsdException Lockedfalse Priority40 NameGrid Table Light/> w:LsdException Lockedfalse Priority46 NameGrid Table 1 Light/> w:LsdException Lockedfalse Priority47 NameGrid Table 2/> w:LsdException Lockedfalse Priority48 NameGrid Table 3/> w:LsdException Lockedfalse Priority49 NameGrid Table 4/> w:LsdException Lockedfalse Priority50 NameGrid Table 5 Dark/> w:LsdException Lockedfalse Priority51 NameGrid Table 6 Colorful/> w:LsdException Lockedfalse Priority52 NameGrid Table 7 Colorful/> w:LsdException Lockedfalse Priority46 NameGrid Table 1 Light Accent 1/> w:LsdException Lockedfalse Priority47 NameGrid Table 2 Accent 1/> w:LsdException Lockedfalse Priority48 NameGrid Table 3 Accent 1/> w:LsdException Lockedfalse Priority49 NameGrid Table 4 Accent 1/> w:LsdException Lockedfalse Priority50 NameGrid Table 5 Dark Accent 1/> w:LsdException Lockedfalse Priority51 NameGrid Table 6 Colorful Accent 1/> w:LsdException Lockedfalse Priority52 NameGrid Table 7 Colorful Accent 1/> w:LsdException Lockedfalse Priority46 NameGrid Table 1 Light Accent 2/> w:LsdException Lockedfalse Priority47 NameGrid Table 2 Accent 2/> w:LsdException Lockedfalse Priority48 NameGrid Table 3 Accent 2/> w:LsdException Lockedfalse Priority49 NameGrid Table 4 Accent 2/> w:LsdException Lockedfalse Priority50 NameGrid Table 5 Dark Accent 2/> w:LsdException Lockedfalse Priority51 NameGrid Table 6 Colorful Accent 2/> w:LsdException Lockedfalse Priority52 NameGrid Table 7 Colorful Accent 2/> w:LsdException Lockedfalse Priority46 NameGrid Table 1 Light Accent 3/> w:LsdException Lockedfalse Priority47 NameGrid Table 2 Accent 3/> w:LsdException Lockedfalse Priority48 NameGrid Table 3 Accent 3/> w:LsdException Lockedfalse Priority49 NameGrid Table 4 Accent 3/> w:LsdException Lockedfalse Priority50 NameGrid Table 5 Dark Accent 3/> w:LsdException Lockedfalse Priority51 NameGrid Table 6 Colorful Accent 3/> w:LsdException Lockedfalse Priority52 NameGrid Table 7 Colorful Accent 3/> w:LsdException Lockedfalse Priority46 NameGrid Table 1 Light Accent 4/> w:LsdException Lockedfalse Priority47 NameGrid Table 2 Accent 4/> w:LsdException Lockedfalse Priority48 NameGrid Table 3 Accent 4/> w:LsdException Lockedfalse Priority49 NameGrid Table 4 Accent 4/> w:LsdException Lockedfalse Priority50 NameGrid Table 5 Dark Accent 4/> w:LsdException Lockedfalse Priority51 NameGrid Table 6 Colorful Accent 4/> w:LsdException Lockedfalse Priority52 NameGrid Table 7 Colorful Accent 4/> w:LsdException Lockedfalse Priority46 NameGrid Table 1 Light Accent 5/> w:LsdException Lockedfalse Priority47 NameGrid Table 2 Accent 5/> w:LsdException Lockedfalse Priority48 NameGrid Table 3 Accent 5/> w:LsdException Lockedfalse Priority49 NameGrid Table 4 Accent 5/> w:LsdException Lockedfalse Priority50 NameGrid Table 5 Dark Accent 5/> w:LsdException Lockedfalse Priority51 NameGrid Table 6 Colorful Accent 5/> w:LsdException Lockedfalse Priority52 NameGrid Table 7 Colorful Accent 5/> w:LsdException Lockedfalse Priority46 NameGrid Table 1 Light Accent 6/> w:LsdException Lockedfalse Priority47 NameGrid Table 2 Accent 6/> w:LsdException Lockedfalse Priority48 NameGrid Table 3 Accent 6/> w:LsdException Lockedfalse Priority49 NameGrid Table 4 Accent 6/> w:LsdException Lockedfalse Priority50 NameGrid Table 5 Dark Accent 6/> w:LsdException Lockedfalse Priority51 NameGrid Table 6 Colorful Accent 6/> w:LsdException Lockedfalse Priority52 NameGrid Table 7 Colorful Accent 6/> w:LsdException Lockedfalse Priority46 NameList Table 1 Light/> w:LsdException Lockedfalse Priority47 NameList Table 2/> w:LsdException Lockedfalse Priority48 NameList Table 3/> w:LsdException Lockedfalse Priority49 NameList Table 4/> w:LsdException Lockedfalse Priority50 NameList Table 5 Dark/> w:LsdException Lockedfalse Priority51 NameList Table 6 Colorful/> w:LsdException Lockedfalse Priority52 NameList Table 7 Colorful/> w:LsdException Lockedfalse Priority46 NameList Table 1 Light Accent 1/> w:LsdException Lockedfalse Priority47 NameList Table 2 Accent 1/> w:LsdException Lockedfalse Priority48 NameList Table 3 Accent 1/> w:LsdException Lockedfalse Priority49 NameList Table 4 Accent 1/> w:LsdException Lockedfalse Priority50 NameList Table 5 Dark Accent 1/> w:LsdException Lockedfalse Priority51 NameList Table 6 Colorful Accent 1/> w:LsdException Lockedfalse Priority52 NameList Table 7 Colorful Accent 1/> w:LsdException Lockedfalse Priority46 NameList Table 1 Light Accent 2/> w:LsdException Lockedfalse Priority47 NameList Table 2 Accent 2/> w:LsdException Lockedfalse Priority48 NameList Table 3 Accent 2/> w:LsdException Lockedfalse Priority49 NameList Table 4 Accent 2/> w:LsdException Lockedfalse Priority50 NameList Table 5 Dark Accent 2/> w:LsdException Lockedfalse Priority51 NameList Table 6 Colorful Accent 2/> w:LsdException Lockedfalse Priority52 NameList Table 7 Colorful Accent 2/> w:LsdException Lockedfalse Priority46 NameList Table 1 Light Accent 3/> w:LsdException Lockedfalse Priority47 NameList Table 2 Accent 3/> w:LsdException Lockedfalse Priority48 NameList Table 3 Accent 3/> w:LsdException Lockedfalse Priority49 NameList Table 4 Accent 3/> w:LsdException Lockedfalse Priority50 NameList Table 5 Dark Accent 3/> w:LsdException Lockedfalse Priority51 NameList Table 6 Colorful Accent 3/> w:LsdException Lockedfalse Priority52 NameList Table 7 Colorful Accent 3/> w:LsdException Lockedfalse Priority46 NameList Table 1 Light Accent 4/> w:LsdException Lockedfalse Priority47 NameList Table 2 Accent 4/> w:LsdException Lockedfalse Priority48 NameList Table 3 Accent 4/> w:LsdException Lockedfalse Priority49 NameList Table 4 Accent 4/> w:LsdException Lockedfalse Priority50 NameList Table 5 Dark Accent 4/> w:LsdException Lockedfalse Priority51 NameList Table 6 Colorful Accent 4/> w:LsdException Lockedfalse Priority52 NameList Table 7 Colorful Accent 4/> w:LsdException Lockedfalse Priority46 NameList Table 1 Light Accent 5/> w:LsdException Lockedfalse Priority47 NameList Table 2 Accent 5/> w:LsdException Lockedfalse Priority48 NameList Table 3 Accent 5/> w:LsdException Lockedfalse Priority49 NameList Table 4 Accent 5/> w:LsdException Lockedfalse Priority50 NameList Table 5 Dark Accent 5/> w:LsdException Lockedfalse Priority51 NameList Table 6 Colorful Accent 5/> w:LsdException Lockedfalse Priority52 NameList Table 7 Colorful Accent 5/> w:LsdException Lockedfalse Priority46 NameList Table 1 Light Accent 6/> w:LsdException Lockedfalse Priority47 NameList Table 2 Accent 6/> w:LsdException Lockedfalse Priority48 NameList Table 3 Accent 6/> w:LsdException Lockedfalse Priority49 NameList Table 4 Accent 6/> w:LsdException Lockedfalse Priority50 NameList Table 5 Dark Accent 6/> w:LsdException Lockedfalse Priority51 NameList Table 6 Colorful Accent 6/> w:LsdException Lockedfalse Priority52 NameList Table 7 Colorful Accent 6/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameMention/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameSmart Hyperlink/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameHashtag/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameUnresolved Mention/> w:LsdException Lockedfalse SemiHiddentrue UnhideWhenUsedtrue NameSmart Link/> /w:LatentStyles>/xml>!endif-->!--if gte mso 10>style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:Table Normal; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0in; line-height:107%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:Calibri,sans-serif; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:Times New Roman; mso-bidi-theme-font:minor-bidi; mso-ansi-language:NO-BOK;}/style>!endif-->/p>p classMsoNormal>span langEN-GB>This year a hrefhttp://ifcopenshell.org/ target_blank>span stylecolor: #4a6ee0;>ifcopenshell.org/span>/a>,and the umbrella mentoring organisation a hrefhttps://brlcad.org/ target_blank>span stylecolor: #4a6ee0;>brlcad.org/span>/a> tookpart in the Google Summer of Code project (a hrefhttps://summerofcode.withgoogle.com/ target_blank>span stylecolor: #4a6ee0;>summerofcode.withgoogle.com//span>/a>span classMsoHyperlink>span stylecolor: #4a6ee0;>)/span>/span>, where studentscontribute to open-source under the wings of experienced mentors. Out of manyproposals contributing to IfcOpenShell, two projects were selected. One of themis the development of the IDS toolkit by Artur Tomczak with support from ThomasKrijnen, that is a response to the issue: a hrefhttps://github.com/IfcOpenShell/IfcOpenShell/issues/1349>github.com/IfcOpenShell/IfcOpenShell/issues/1349/a>./span>/p>p classMsoNormal>span langEN-GB>IDS – Information Delivery Specifications –is a standard being development for defining BIM information requirements in aneasy to present way in both machine and human-readable form. With IDS you canspecify what data must be included in the BIM model and validate if it isdelivered. IDS is related to the em>span stylecolor: #0e101a; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;>Level ofInformation Need/span>/em> that can be used in project documentation (em>span stylecolor: #0e101a; font-family: "Calibri",sans-serif; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;>OIR, PIR, AIR, EIR, BEP, TIDP,MIDP, MPDT/span>/em> etc.). Finally, it is the solution for predictableand reliable data exchange workflows. Read more about IDS at a hrefhttps://technical.buildingsmart.org/projects/information-delivery-specification-ids/>technical.buildingsmart.org/projects/information-delivery-specification-ids//a> andtechnical: a hrefhttps://github.com/buildingSMART/IDS>github.com/buildingSMART/IDS/a>./span>/p>p classMsoNormal>span langEN-GB>During the project, we were able tocomplete objectives according to the plan. The toolkit now fully supports IDSauthoring, allowing to define all possible requirements and restrictions. Italso supports the validation of the IFC models against such IDS files. As aresult of the validation, one can print all the issues in the model or savethem as BCF report and view them in the 3D viewer. To get started with thetoolkit have a look at the documentation: a hrefhttps://ifcopenshell.github.io/docs/python/html/ifcopenshell-python.html>ifcopenshell.github.io/docs/python/html/ifcopenshell-python.html/a>./span>/p>p classMsoNormal>span langEN-GB>As one of the first implementations of thestandard, the project contributed to the improvement of the standard, whichresulted in two schema updates. The newly created XSD standard is availableat: a hrefhttp://standards.buildingsmart.org/IDS/ids_04.xsd target_blank>span stylecolor: #4a6ee0;>http://standards.buildingsmart.org/IDS/ids_04.xsd/span>/a>. /span>/p>p classMsoNormal>span langEN-GB>To help users create own IDS withoutinstalling the tool and for non-coding users, the web application has also beendeveloped that works thanks to the Python toolkit. It is accessible at a hrefhttp://artomczak.pythonanywhere.com/create/ target_blank>span stylecolor: #4a6ee0;>artomczak.pythonanywhere.com/create//span>/a>. You candefine your specifications with applicability filters and requirements thatyour BIM model must fulfil and download it as an XML file./span>/p>p classMsoNormal>b>span langEN-GB>Project deliverables:/span>/b>/p>p classMsoListParagraphCxSpFirst stylemso-list: l0 level1 lfo1; text-indent: -.25in;>span langEN-GB stylefont-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;>span stylemso-list: Ignore;>·span stylefont: 7.0pt "Times New Roman";> /span>/span>/span>span langEN-GB>Main work is available at GSoC#45-IDS-checkingbranch: a hrefhttps://github.com/atomczak/IfcOpenShell/tree/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell target_blank>span stylecolor: #4a6ee0;>github.com/atomczak/IfcOpenShell/tree/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell/span>/a>./span>/p>p classMsoListParagraphCxSpMiddle stylemargin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;>span langEN-GB stylefont-family: "Courier New"; mso-fareast-font-family: "Courier New";>span stylemso-list: Ignore;>ospan stylefont: 7.0pt "Times New Roman";> /span>/span>/span>span langEN-GB>The IDS toolkit is enclosed inthe ids.py file (a hrefhttps://github.com/atomczak/IfcOpenShell/blob/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell/ids.py>github.com/atomczak/IfcOpenShell/blob/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell/ids.py/a>)./span>/p>p classMsoListParagraphCxSpMiddle stylemargin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;>span langEN-GB stylefont-family: "Courier New"; mso-fareast-font-family: "Courier New";>span stylemso-list: Ignore;>ospan stylefont: 7.0pt "Times New Roman";> /span>/span>/span>span langEN-GB>Test cases showing possibleusage of the toolkit are in the file test_ids.py (a hrefhttps://github.com/atomczak/IfcOpenShell/blob/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell/test_ids.py target_blank>span stylecolor: #4a6ee0;>github.com/atomczak/IfcOpenShell/blob/GSoC%2345-IDS-checking/src/ifcopenshell-python/ifcopenshell/test_ids.py/span>/a>)./span>/p>p classMsoListParagraphCxSpMiddle stylemargin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;>span langEN-GB stylefont-family: "Courier New"; mso-fareast-font-family: "Courier New";>span stylemso-list: Ignore;>ospan stylefont: 7.0pt "Times New Roman";> /span>/span>/span>span langEN-GB>The full list of commits: a hrefhttps://github.com/atomczak/IfcOpenShell/commits/GSoC%2345-IDS-checking target_blank>span stylecolor: #4a6ee0;>github.com/atomczak/IfcOpenShell/commits/GSoC%2345-IDS-checking/span>/a>./span>/p>p classMsoListParagraphCxSpMiddle stylemso-list: l0 level1 lfo1; text-indent: -.25in;>span langEN-GB stylefont-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;>span stylemso-list: Ignore;>·span stylefont: 7.0pt "Times New Roman";> /span>/span>/span>span langEN-GB>Test cases are supplementedwith a repository of sample IDS and IFC files available at: a hrefhttps://github.com/atomczak/Sample-BIM-Files target_blank>span stylecolor: #4a6ee0;>github.com/atomczak/Sample-BIM-Files/span>/a>. /span>/p>p classMsoListParagraphCxSpMiddle stylemso-list: l0 level1 lfo1; text-indent: -.25in;>span langEN-GB stylefont-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;>span stylemso-list: Ignore;>·span stylefont: 7.0pt "Times New Roman";> /span>/span>/span>span langEN-GB>The web page is hosted at: a hrefhttp://artomczak.pythonanywhere.com/ target_blank>span stylecolor: #4a6ee0;>artomczak.pythonanywhere.com//span>/a>span classMsoHyperlink>span stylecolor: #4a6ee0;>./span>/span>/span>/p>p classMsoListParagraphCxSpLast stylemso-list: l0 level1 lfo1; text-indent: -.25in;>span langEN-GB stylefont-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;>span stylemso-list: Ignore;>·span stylefont: 7.0pt "Times New Roman";> /span>/span>/span>span langEN-GB>The web interface source codeis kept in another repository: a hrefhttps://github.com/atomczak/IDS-web-app target_blank>span stylecolor: #4a6ee0;>github.com/atomczak/IDS-web-app/span>/a>. All thecurrent limitations of the web app are listed in the repository’s issues./span>/p>p classMsoNormal>span langEN-GB>If you have any questions or comments,please join the discussion at OSArch thread (a hrefhttps://community.osarch.org/discussion/647/ target_blank>span stylecolor: #4a6ee0;>https://community.osarch.org/discussion/647//span>/a>)./span>/p>p classMsoNormal>span langEN-GB> /span>/p>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn itempropauthor itemscopeitemscope itemtypehttp://schema.org/Person>meta contenthttps://www.blogger.com/profile/02091082558478878837 itempropurl/>a classg-profile hrefhttps://www.blogger.com/profile/02091082558478878837 relauthor titleauthor profile>span itempropname>thomas/span>/a>/span>/span>span classpost-timestamp>atmeta contenthttp://blog.ifcopenshell.org/2021/08/idspy-toolkit-as-result-of-google.html itempropurl/>a classtimestamp-link hrefhttp://blog.ifcopenshell.org/2021/08/idspy-toolkit-as-result-of-google.html relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2021-08-23T17:04:00+02:00>5:04 PM/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.ifcopenshell.org/2021/08/idspy-toolkit-as-result-of-google.html#comment-form onclick>No comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-1663573582>a hrefhttps://www.blogger.com/post-edit.g?blogID1792504135258878475&postID1458979522066034868&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1458979522066034868&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1458979522066034868&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1458979522066034868&targettwitter target_blank titleShare to Twitter>span classshare-button-link-text>Share to Twitter/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1458979522066034868&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1458979522066034868&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Wednesday, December 30, 2020/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry uncustomized-post-template itempropblogPost itemscopeitemscope itemtypehttp://schema.org/BlogPosting>meta contenthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQHrgpF9sZ1avV71AdxAx9KpdFRsSJ_Ch3sWugaZ0ZYPtzGk0BQJefvAmavlBg-IGMM2Vu0DMThx0az00mwQftFnhMvGQOHIuVjofXm3caHT1qNXJlof4VNN396-NDHdcs1vGlos4OLvA/s320/ifcopenbot-retired.JPG itempropimage_url/>meta content1792504135258878475 itempropblogId/>meta content3549742677350219456 itemproppostId/>a name3549742677350219456>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.ifcopenshell.org/2020/12/a-new-year-new-ifcopenbot.html>A new year; a new IfcOpenBot/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-3549742677350219456 itempropdescription articleBody>div classseparator styleclear: both; float: right; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQHrgpF9sZ1avV71AdxAx9KpdFRsSJ_Ch3sWugaZ0ZYPtzGk0BQJefvAmavlBg-IGMM2Vu0DMThx0az00mwQftFnhMvGQOHIuVjofXm3caHT1qNXJlof4VNN396-NDHdcs1vGlos4OLvA/s1024/ifcopenbot-retired.JPG styleclear: right; float: right; margin-bottom: 1em; margin-left: 1em;>img border0 data-original-height881 data-original-width1024 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQHrgpF9sZ1avV71AdxAx9KpdFRsSJ_Ch3sWugaZ0ZYPtzGk0BQJefvAmavlBg-IGMM2Vu0DMThx0az00mwQftFnhMvGQOHIuVjofXm3caHT1qNXJlof4VNN396-NDHdcs1vGlos4OLvA/s320/ifcopenbot-retired.JPG width320 />/a>/div>p>Compilation of large C++ projects takes patience so for a while now we have been provided automated builds to the community using a dedicated physical system we called IfcOpenBot. In reality this poor thing was a Mac Mini from 2014 in the least powerful configuration possible, sitting next to the meter box at the AECgeeks office. The reason for this setup is that compiling for macOS requires a macOS operating system and a running a macOS virtual machine on non-apple hardware is a violation of their terms of service. We filled the Mac Mini with VirtualBox virtual machines (including a cheap Win 8 Pro license that got a free upgrade to Win 10) and tied things together with a bunch of shell scripts (VBoxManage to start and stop the VMs) and SSH to connect into the hosts. We installed Cygwin into the windows box to allow SSH access. Then it was simply a matter of running the build scripts we have in the repository and collecting the output./p>p>This approach worked well for several years, but began to face issues:br />/p>ul styletext-align: left;>li>The physical setup and MacOS host didnt really allow for full remote access, this meant we had to carry monitors around occasionally to connect and debug./li>li>The setup of VirtualBox incremental snapshots introduced a massive storage overhead. So more and more portable USB SSD drives were added./li>li>Build times were really slow, even with caching the dependencies and using ccache it took several days./li>li>In the end it wasnt really possible anymore to run the latest Win 10 guest anymore along the macOS host as they were fighting for the little 4GB of RAM./li>/ul>h3 styletext-align: left;>New approach br />/h3>p styletext-align: left;>The christmas holidays gave us some time to rework this solution./p>p styletext-align: left;>We rent a hosted Mac Mini using one of the commercially available solutions. Monthly cost $60.br />We have a digital ocean droplet doing the orchestration. Monthly cost $5.br />Windows and Linux machines are spinned up using the AWS EC2 command line tools. Build on linux takes about 1 hour on t2.2xlarge so thats 30 dollar cents per build according to the current prices.br />For windows we have configured the user-data scripts to install chocolatey and WinRM on boot and on the host we use ansible to control the build. For the other systems we just use plain SSH.br />br />The new builds from this system have just a hrefhttps://github.com/IfcOpenBot/IfcOpenShell/commit/7ae685dbffb7db3443090d8388a5a84849447590#commitcomment-45519447 target_blank>arrived/a>: please help test for issues. In addition to the changes discussed above, the linux distro is changed from Debian to Ubuntu 16.04 (so this changes glibc versions and all). Since EC2 does not host 32bit operating systems (anymore, it seems), we use cross-compiling now on 64bit Ubuntu. The visual studio version on Windows is now 2017 instead of 2015 (using the build tools package from chocolatey).br />/p>p styletext-align: left;>/p>h4 styletext-align: left;>Support/h4>p styletext-align: left;>Among others, this shows the complexity for open source projects to build for macOS. Initially it drove us to expensive hardware that we couldnt upgrade. In the current approach it takes up over 85% of the cost (assuming a weekly build on EC2)./p>p styletext-align: left;>If the IfcOpenBot builds are useful to you, please consider a small donation at a hrefhttps://opencollective.com/opensourcebim>https://opencollective.com/opensourcebim/a> to cover these costs. OpenSourceBIM is a new foundation started by myself and Dion Moult that tries to organize and support the development of open source software for OpenBIM. We will provide more details later./p>a hrefhttps://opencollective.com/opensourcebim/donate target_blank> img srchttps://opencollective.com/opensourcebim/donate/button@2x.png?colorblue width300 />/a>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn itempropauthor itemscopeitemscope itemtypehttp://schema.org/Person>meta contenthttps://www.blogger.com/profile/02091082558478878837 itempropurl/>a classg-profile hrefhttps://www.blogger.com/profile/02091082558478878837 relauthor titleauthor profile>span itempropname>thomas/span>/a>/span>/span>span classpost-timestamp>atmeta contenthttp://blog.ifcopenshell.org/2020/12/a-new-year-new-ifcopenbot.html itempropurl/>a classtimestamp-link hrefhttp://blog.ifcopenshell.org/2020/12/a-new-year-new-ifcopenbot.html relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2020-12-30T12:27:00+01:00>12:27 PM/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.ifcopenshell.org/2020/12/a-new-year-new-ifcopenbot.html#comment-form onclick>No comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-1663573582>a hrefhttps://www.blogger.com/post-edit.g?blogID1792504135258878475&postID3549742677350219456&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID3549742677350219456&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID3549742677350219456&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID3549742677350219456&targettwitter target_blank titleShare to Twitter>span classshare-button-link-text>Share to Twitter/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID3549742677350219456&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID3549742677350219456&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Wednesday, December 4, 2019/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry uncustomized-post-template itempropblogPost itemscopeitemscope itemtypehttp://schema.org/BlogPosting>meta content1792504135258878475 itempropblogId/>meta content2116038898323760529 itemproppostId/>a name2116038898323760529>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.ifcopenshell.org/2019/12/v060.html>v0.6.0/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-2116038898323760529 itempropdescription articleBody>Many people perhaps dont follow the development of IfcOpenShell actively and are happily using the master branch of the github repository. They might be surprised to know there is a lot of activity happening in the v0.6.0 and v0.7.0 branches. This post discusses the changes in the v0.6.0 branch. The following post will elaborate on some of the design decisions we are making in the v0.7.0 branch.br />br />h3>Schemas/h3>br />One of the most significant improvements in the v0.6.0 branch is that multiple schemas (IFC2X3, IFC4, IFC4X1 and IFC4X2) are supported from within the same executable, module or plug-in. Previously, selecting the schema had been a compile-time option.br />br />In IfcOpenShell and most other EXPRESS-based toolkits, the IFC schema is compiled into (a) the early-bound definitions: a class hierarchy with member functions and (b) a set of methods to operate on the schema definitions at runtime (late-bound access). C++ only allows very limited runtime reflection (but the development of C++ is very active, see for example a hrefhttps://github.com/cplusplus/papers/issues/545>P1240/a>) so to complement the lack of introspection a set of methods exists to query for example all attribute names or the sub- and supertypes of an entity. In the master branch these methods are static, in the v0.6.0 branch these are the member functions of a schema class, that is a more complete reference mirroring the EXPRESS schema definition at runtime. See br />pre classbrush:cpp>IfcBaseEntity::declararation()/pre>or br />pre classbrush:cpp>IfcParse::schema::declaration_by_name(IfcWall)->as_entity()->all_attribute_names()/pre>br />h3>Writing schema agnostic code/h3>br />The code generated from the four schemas are completely orthogonal class hiercharies. For the C++ compiler there is no relationship between a Ifc2x3::IfcWall and a Ifc4::IfcWall. But IfcOpenShell offers three ways to write code that adapts to the schema of the file at runtime.br />br />h4>(a) preprocessor/h4>br />This is the approach taken in the IfcGeom modules in v0.6.0. Essentially the same code base is compiled multiple times where the schema is available as a preprocessor constant. This means you can enable specific code paths with for example #ifdef directives. In this way the added entities in Ifc4 (IfcBSplineSurface, yay!) can be selectively compiled for example. br />br />a hrefhttps://github.com/IfcOpenShell/IfcOpenShell/blob/e283b51dbcced6d8121c55fafd49c9ee1f954b74/src/ifcgeom/IfcGeomFaces.cpp#L1147>https://github.com/IfcOpenShell/IfcOpenShell/blob/e283b51dbcced6d8121c55fafd49c9ee1f954b74/src/ifcgeom/IfcGeomFaces.cpp#L1147/a>br />br />Smaller code blocks can be written as macros as well. br />br />a hrefhttps://github.com/IfcOpenShell/IfcOpenShell/blob/e283b51dbcced6d8121c55fafd49c9ee1f954b74/src/ifcgeom_schema_agnostic/Kernel.cpp#L74>https://github.com/IfcOpenShell/IfcOpenShell/blob/e283b51dbcced6d8121c55fafd49c9ee1f954b74/src/ifcgeom_schema_agnostic/Kernel.cpp#L74/a>br />br />IfcOpenShell uses CMake to create multiple shared libraries from the same code, see a hrefhttps://github.com/IfcOpenShell/IfcOpenShell/blob/e283b51dbcced6d8121c55fafd49c9ee1f954b74/cmake/CMakeLists.txt#L557>https://github.com/IfcOpenShell/IfcOpenShell/blob/e283b51dbcced6d8121c55fafd49c9ee1f954b74/cmake/CMakeLists.txt#L557/a> for the foreach loop creating multiple libraries with different directives.br />br />b>Benefits:/b> fairly readible code, full autocompletion typically in an IDE when using the static library approachbr />b>Downsides:/b> Some infrastructure required to compile the different libraries and select the correct implementation at runtimebr />br />h4>(b) late-bound access/h4>br />There are two modes of accessing schemas. In the early-bound approach function signatures and return types are known at compilation time. In the late-bound approach attribute names are referenced by strings and types are (basically) a tagged union of all data types used in the IFC schema, mapped to C++ types.br />br />pre classbrush:cpp>Ifc2x3::IfcWall* wall;// Early-bound access;{std::string global_id wall->GlobalId();}// Late-bound access.{std::string global_id *wall->get(GlobalId);}// ERROR: By dereferencing the return type, it is cast into a string, which will cause an exception *at runtime* when the types do not match.{int global_id *wall->get(GlobalId);}/pre>br />b>Benefits:/b>br />fairly readible codebr />no complicated setup of different librariesbr />b>Downsides: /b>br />no code completionbr />errors are only spotted at runtime, not compile-timebr />late-bound manipulation of inverse attributes is not well supported currently in IfcOpenShellbr />less means for the compiler to create highly optimized codebr />br />h4>(c) templates/h4>br />C++ has very extensive support for compile time generic arguments: templates. For this purpose the Ifc2x3 and Ifc4 definitions are no longer namespaces (in v0.5.0) but are now structs to allow for dependent names.br />br />pre classbrush:cpp>template <typename Schema>void print_globalid(typename Schema::IfcWall* wall) { std::cout << wall->GlobalId();}/pre>br />b>Benefits:/b>br />no complicated setup of different librariesbr />no autocompletion typically, but errors caught at compile-timebr />b>Downsides: /b>br />fairly unreadable code due the necessity to sprinkle the code with additional template and typename keywords throughout.br />error messages are harder to make sense up (due to two phase lookup rules for example)br />br />All three approaches are used in the IfcOpenShell code-base.br />br />h3>Other improvements:/h3>br />Multi-threading in collaboration with TNO, a hrefhttps://github.com/sanderboer/IfcOpenShell/commits/multithreaded>MAUC/a> and a hrefhttps://www.airsquire.ai/>Airsquire/a>br />br />Direct binary glTF v2.0 output (previously supported through Collada and Collada2Gltf) in collaboration with Schuco US.br />br />Exciting developments called a hrefhttp://blenderbim.org/>BlenderBIM/a>br />br />Much more efficient handling of detailed facesets.br />br />Remember, get the latest builds from IfcOpenBot a hrefhttps://github.com/IfcOpenBot/IfcOpenShell/commit/9bcd932bed48486bf5b5f48d24b49329c280462f#comments>https://github.com/IfcOpenBot/IfcOpenShell/commit/9bcd932bed48486bf5b5f48d24b49329c280462f#comments/a>br />br />div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn itempropauthor itemscopeitemscope itemtypehttp://schema.org/Person>meta contenthttps://www.blogger.com/profile/02091082558478878837 itempropurl/>a classg-profile hrefhttps://www.blogger.com/profile/02091082558478878837 relauthor titleauthor profile>span itempropname>thomas/span>/a>/span>/span>span classpost-timestamp>atmeta contenthttp://blog.ifcopenshell.org/2019/12/v060.html itempropurl/>a classtimestamp-link hrefhttp://blog.ifcopenshell.org/2019/12/v060.html relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2019-12-04T09:07:00+01:00>9:07 AM/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.ifcopenshell.org/2019/12/v060.html#comment-form onclick>3 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-1663573582>a hrefhttps://www.blogger.com/post-edit.g?blogID1792504135258878475&postID2116038898323760529&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID2116038898323760529&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID2116038898323760529&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID2116038898323760529&targettwitter target_blank titleShare to Twitter>span classshare-button-link-text>Share to Twitter/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID2116038898323760529&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID2116038898323760529&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Wednesday, October 7, 2015/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry uncustomized-post-template itempropblogPost itemscopeitemscope itemtypehttp://schema.org/BlogPosting>meta contenthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsHjfj185hyMUuaQzfqAHuayGDSooIl2hLnsCkudVBsGznSBnUMiI65KuNKLAtY8eytxylcRAQMG5xj5-NNlAz4R6bzF3d8tcT0mSBbsWBcOXmN-GYBdFocCE0__krFEFgwD4vXpa8XRg/s1600/ifcmateriallayersets.jpg itempropimage_url/>meta content1792504135258878475 itempropblogId/>meta content625212750821427635 itemproppostId/>a name625212750821427635>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.ifcopenshell.org/2015/10/separating-elements-by-their-material.html>Separating elements by their material layers/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-625212750821427635 itempropdescription articleBody>An advantage that IfcOpenShell has over the many mesh-based viewers is that it is backed by a powerful modelling kernel called Open Cascade. This has already proven its significance for example in the ease of creating 2d floor plans from 3d elements in the a hrefhttp://blog.ifcopenshell.org/2015/07/creating-2d-svg-floor-plans-from-ifc.html>SVG exporter/a>. Now, a new feature in IfcOpenShell is introduced, once again demonstrating IfcOpenShell as a forerunner in terms of accurate and advanced visualisation of IFC geometry.br />br />As building professionals readily know, building elements such as walls and slabs can be built up using several layers, for example including brick, thermal insulation and an air gap. This information is typically represented in IFC using an IfcMaterialLayerSet, which describes the thickness of such layers relatively to the axis of the wall. Therefore, it is not a direct part of the geometric representation of the element and therefore not visible in most IFC viewers. Alternatively, IFC exporters can choose to decompose the wall element into several IfcBuildingElementParts describing every of such layers as a separate product.br />br />IfcOpenShell now introduces the possibility to separate the body representation according to its layers, with the appropriate style information applied. Furthermore, topological information that describes how wall end points connect to one another is used to fold such layers around corners where connecting walls meet. To our knowledge this is functionality that is currently not offered in any other IFC viewer, let me know if otherwise.br />br />Currently this feature is in extended testing and is available in a hrefhttps://github.com/aothms/IfcOpenShell/tree/layerset_slicing>a development branch/a>. It will be part of the upcoming new build once testing is complete. Note that it is potentially a time intensive operation and hence will have to be enable with the flag --enable-layerset-slicing in the IfcConvert utility.br />br />div stylefont-size: 80%; text-align: center;>img border0 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsHjfj185hyMUuaQzfqAHuayGDSooIl2hLnsCkudVBsGznSBnUMiI65KuNKLAtY8eytxylcRAQMG5xj5-NNlAz4R6bzF3d8tcT0mSBbsWBcOXmN-GYBdFocCE0__krFEFgwD4vXpa8XRg/s1600/ifcmateriallayersets.jpg />br/>Visuals rendered using IfcBlender of the a hrefhttp://www.nibs.org/?pagebsa_commonbimfiles#project1>Duplex apartment building/a> model by abbr titleEngineer Research and Development Center, U.S Army, Corps of Engineers>USACE ERDC/abbr> and buildingSMART Alliance. 1. A view from the outside with one window removed. 2. An exploded view of the lower level walls showcasing how layers are folded based on topological connectivity with other walls. 3. An image for contrast from a common IFC viewer with only a single surface style per product./div>.div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn itempropauthor itemscopeitemscope itemtypehttp://schema.org/Person>meta contenthttps://www.blogger.com/profile/02091082558478878837 itempropurl/>a classg-profile hrefhttps://www.blogger.com/profile/02091082558478878837 relauthor titleauthor profile>span itempropname>thomas/span>/a>/span>/span>span classpost-timestamp>atmeta contenthttp://blog.ifcopenshell.org/2015/10/separating-elements-by-their-material.html itempropurl/>a classtimestamp-link hrefhttp://blog.ifcopenshell.org/2015/10/separating-elements-by-their-material.html relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2015-10-07T20:00:00+02:00>8:00 PM/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.ifcopenshell.org/2015/10/separating-elements-by-their-material.html#comment-form onclick>3 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-1663573582>a hrefhttps://www.blogger.com/post-edit.g?blogID1792504135258878475&postID625212750821427635&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID625212750821427635&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID625212750821427635&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID625212750821427635&targettwitter target_blank titleShare to Twitter>span classshare-button-link-text>Share to Twitter/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID625212750821427635&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID625212750821427635&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>Labels:a hrefhttp://blog.ifcopenshell.org/search/label/Geometry reltag>Geometry/a>,a hrefhttp://blog.ifcopenshell.org/search/label/IFC reltag>IFC/a>,a hrefhttp://blog.ifcopenshell.org/search/label/IfcSurfaceStyle reltag>IfcSurfaceStyle/a>,a hrefhttp://blog.ifcopenshell.org/search/label/Materials reltag>Materials/a>,a hrefhttp://blog.ifcopenshell.org/search/label/Open%20Cascade reltag>Open Cascade/a>,a hrefhttp://blog.ifcopenshell.org/search/label/Rendering reltag>Rendering/a>,a hrefhttp://blog.ifcopenshell.org/search/label/Visualisation reltag>Visualisation/a>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Sunday, July 26, 2015/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry uncustomized-post-template itempropblogPost itemscopeitemscope itemtypehttp://schema.org/BlogPosting>meta contenthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh91kZ9YR_jw0GvZz68yJo-GgCNRN2ZXm0yHpgxHq_ifmpOw_RjWz8Wwb8s_OFXL-RcOtBo82NlQPAM0VinrPq5NY1LVPpz2dXDW7zGQdt4vDIAFuzqQleiFfdW8N8uCok3nsWB_onRL04/s1600/clinic-svg.png itempropimage_url/>meta content1792504135258878475 itempropblogId/>meta content1016804006298391061 itemproppostId/>a name1016804006298391061>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.ifcopenshell.org/2015/07/creating-2d-svg-floor-plans-from-ifc.html>Creating 2d SVG floor plans from IFC files/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-1016804006298391061 itempropdescription articleBody>div stylefloat: right; margin-left: 20px; width: 200px; font-size: 60%; text-align: center>img border0 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh91kZ9YR_jw0GvZz68yJo-GgCNRN2ZXm0yHpgxHq_ifmpOw_RjWz8Wwb8s_OFXL-RcOtBo82NlQPAM0VinrPq5NY1LVPpz2dXDW7zGQdt4vDIAFuzqQleiFfdW8N8uCok3nsWB_onRL04/s1600/clinic-svg.png stylefloat: right; height: auto;width: 200px; margin-bottom:10px />br>SVG floor plans extracted from the a hrefhttp://www.nibs.org/?pagebsa_commonbimfiles#project3>Medical Clinic/a> model by abbr titleEngineer Research and Development Center, U.S Army, Corps of Engineers>USACE ERDC/abbr> and buildingSMART Alliance/div>IfcConvert converts IFC files into a variety of output formats. Most of you will know these formats include geometrical models, either tessellated and easy to understand for importing applications, such as Wavefront OBJ and Collada, or Boundary Representation models in STEP or IGES with support for curved surfaces. Some of you might know the 0.5.0 branch also features an XML output format that contains a decomposition tree and property data of the building elements.br />br />In collaboration with a hrefhttp://www.root-bv.nl/>ROOT B.V./a> a new two-dimensional geometrical output format is added, called SVG (Scalable Vector Graphics). In order to turn the three-dimensional IFC model into 2d floor plans, the model is sliced at horizontal cross-sections. ROOT B.V. uses this format for their web-based tool a hrefhttps://www.flatt.io/>flatt./a>, an online facility management platform that aggregates sources of additional information into a two-dimensional overview. The development of the SVG conversion has been executed by a hrefhttp://aecgeeks.com/>AECgeeks/a>, a consultancy company founded by one of the main contributors to IfcOpenShell. Both companies are strongly committed to free open source software, so we are happy to see that these developments are merged back into IfcOpenShell for the greater public good.br />br />The SVG output format of IfcConvert is integrated into the public a hrefhttps://svn.code.sf.net/p/ifcopenshell/svn/trunk/src/ifcconvert>IfcOpenShell source code/a> as of today. The image on the right does not show the direct output of IfcConvert, the isometric projection is added in a vector graphics manipulation tool.br />br />span idgoog_1161128431>/span>span idgoog_1161128432>/span>br />div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn itempropauthor itemscopeitemscope itemtypehttp://schema.org/Person>meta contenthttps://www.blogger.com/profile/02091082558478878837 itempropurl/>a classg-profile hrefhttps://www.blogger.com/profile/02091082558478878837 relauthor titleauthor profile>span itempropname>thomas/span>/a>/span>/span>span classpost-timestamp>atmeta contenthttp://blog.ifcopenshell.org/2015/07/creating-2d-svg-floor-plans-from-ifc.html itempropurl/>a classtimestamp-link hrefhttp://blog.ifcopenshell.org/2015/07/creating-2d-svg-floor-plans-from-ifc.html relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2015-07-26T16:00:00+02:00>4:00 PM/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.ifcopenshell.org/2015/07/creating-2d-svg-floor-plans-from-ifc.html#comment-form onclick>14 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-1663573582>a hrefhttps://www.blogger.com/post-edit.g?blogID1792504135258878475&postID1016804006298391061&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1016804006298391061&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1016804006298391061&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1016804006298391061&targettwitter target_blank titleShare to Twitter>span classshare-button-link-text>Share to Twitter/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1016804006298391061&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID1016804006298391061&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>Labels:a hrefhttp://blog.ifcopenshell.org/search/label/2d reltag>2d/a>,a hrefhttp://blog.ifcopenshell.org/search/label/Floor%20plan reltag>Floor plan/a>,a hrefhttp://blog.ifcopenshell.org/search/label/IfcConvert reltag>IfcConvert/a>,a hrefhttp://blog.ifcopenshell.org/search/label/SVG reltag>SVG/a>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Thursday, February 26, 2015/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry uncustomized-post-template itempropblogPost itemscopeitemscope itemtypehttp://schema.org/BlogPosting>meta content1792504135258878475 itempropblogId/>meta content5462051261678225125 itemproppostId/>a name5462051261678225125>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.ifcopenshell.org/2015/02/two-new-ifcopenshell-releases.html>Two new IfcOpenShell releases/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-5462051261678225125 itempropdescription articleBody>It has been a long wait since the previous official IfcOpenShell release. But now, two releases are presented at once, to make up for testing the patience of the community to this extent. On the one hand the new 0.4 release candidate improves on the stability of the 0.4 branch. The 0.5 preview release features more bleeding-edge work. Both releases have been updated for changes in upstream projects and include builds for the new a hrefhttp://www.blender.org/>blender 2.73/a> and 3ds Max 2015 and are built using Open Cascade 6.7.1 (a hrefhttps://github.com/tpaviot/oce>OCE/a> 0.16).br />br />Both releases can be downloaded from the a hrefhttp://ifcopenshell.org/>ifcopenshell.org/a> website. As always, it includes a hrefhttp://ifcopenshell.org/ifcblender.html>IfcBlender/a>, a hrefhttp://ifcopenshell.org/ifcmax.html>IfcMax/a> and a hrefhttp://ifcopenshell.org/ifcconvert.html>IfcConvert/a>. The 0.5 release now introduces a hrefhttp://ifcopenshell.org/python.html>ifcopenshell-python/a>, a Python module for parsing and writing IFC files and creating BReps and explicit triangulated geometry from the implicit IFC geometry. The a hrefhttps://github.com/opensourceBIM/IfcOpenShell-BIMserver-plugin>BIMserver plug-in/a> has been provided with updated executables for its geometry interpretation.br />br />h3>The 0.4 release/h3>An excerpt of the improvements is provided below:br />ul>li>More faithful use of precision information in IFC/li>li>Fixes and improvements for IfcLShapeProfileDef, IfcCShapeProfileDef, IfcRectangleHollowProfileDef, IfcCartesianTransformOperator3D, IfcSpecularExponent, IfcFacetedBrep, IfcPolyline, IfcPolyLoop/li>li>Prevent errors in triangulations due to zero-length normals/li>li>Fixes for parsing files with comments/li>li>Write unique IDs in Collada files/li>li>Speed up output of Wavefront OBJ files/li>li>Less unnecessary nurbs conversion in the STEP and IGES output/li>li>Check the validity of solids and fillets/li>li>Make parsing and serialization locale-independent/li>/ul>br />h3>The 0.5 preview release/h3>Simultaneously, a large amount of improvements and new features have been added to the 0.5 branch, which we do not want to withhold from the community. Hence, a preview of the 0.5 branch is released for adventurous users. Most notably, it contains all the improvements to geometry handling as outlined in a hrefhttp://blog.ifcopenshell.org/2014/05/updates-on-geometry.html>this post/a> and a brand new Python interface and coupling with a hrefhttp://www.pythonocc.org/>pythonOCC/a>. The Python interface has been built in collaboration with the FreeCAD team and its users, which are about to release a a hrefhttp://yorik.uncreated.net/guestblog.php?201522>new version/a> that includes a very promising full blown IFC importer and exporter. For programmers a new API is introduced that supersedes the IfcGeomObjects API. A new output format is added to a hrefhttp://ifcopenshell.org/ifcconvert.html>IfcConvert/a> which provides textual output from the IFC file that describes the header, decomposition structure and property values in XML format.br />br />h3>Introducing a hrefhttp://academy.ifcopenshell.org/>IfcOpenShell Academy/a>/h3>With the introduction of the Python interface to IfcOpenShell and the integration with a hrefhttp://www.pythonocc.org/>pythonOCC/a>, IfcOpenShell becomes even more suitable as a platform for academia, research and rapid development. With Python+IfcOpenShell+pythonOCC+Qt a complete framework is presented to interactively and visually present, analyse and construct IFC data. a hrefhttp://academy.ifcopenshell.org/>IfcOpenShell Academy/a> provides an overview of quick recipes or building blocks to accomplish common tasks related to IFC. If you wish to contribute a recipe to the cookbook contact a hrefmailto:thomas@ifcopenshell.org>thomas@ifcopenshell.org/a>.br />br />Enjoy! And remember that a hrefhttp://blog.ifcopenshell.org/2011/08/ifcopenshell-needs-your-help.html>IfcOpenShell still needs your help/a>!div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn itempropauthor itemscopeitemscope itemtypehttp://schema.org/Person>meta contenthttps://www.blogger.com/profile/02091082558478878837 itempropurl/>a classg-profile hrefhttps://www.blogger.com/profile/02091082558478878837 relauthor titleauthor profile>span itempropname>thomas/span>/a>/span>/span>span classpost-timestamp>atmeta contenthttp://blog.ifcopenshell.org/2015/02/two-new-ifcopenshell-releases.html itempropurl/>a classtimestamp-link hrefhttp://blog.ifcopenshell.org/2015/02/two-new-ifcopenshell-releases.html relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2015-02-26T20:00:00+01:00>8:00 PM/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.ifcopenshell.org/2015/02/two-new-ifcopenshell-releases.html#comment-form onclick>3 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-1663573582>a hrefhttps://www.blogger.com/post-edit.g?blogID1792504135258878475&postID5462051261678225125&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID5462051261678225125&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID5462051261678225125&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID5462051261678225125&targettwitter target_blank titleShare to Twitter>span classshare-button-link-text>Share to Twitter/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID5462051261678225125&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID5462051261678225125&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>Labels:a hrefhttp://blog.ifcopenshell.org/search/label/BIMserver reltag>BIMserver/a>,a hrefhttp://blog.ifcopenshell.org/search/label/FreeCAD reltag>FreeCAD/a>,a hrefhttp://blog.ifcopenshell.org/search/label/IfcOpenShell reltag>IfcOpenShell/a>,a hrefhttp://blog.ifcopenshell.org/search/label/Release%20Candidate reltag>Release Candidate/a>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Friday, December 19, 2014/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry uncustomized-post-template itempropblogPost itemscopeitemscope itemtypehttp://schema.org/BlogPosting>meta contenthttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm67LvB7vzm3mFGGuhT_4RW79JEjMSgBwHVOVJTRI9nE7SlpbXlR629JHSh7QugqhAswBq5Py1LOJFWw7jizWucsz8gFBqHDknVDS_8ZkV-wqa8ixAoR8XGgz9gRGWjCeqwJr6J732AU0/s1600/IfcOpenShell-pythonOCC.png itempropimage_url/>meta content1792504135258878475 itempropblogId/>meta content6605487446493739325 itemproppostId/>a name6605487446493739325>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.ifcopenshell.org/2014/12/combining-ifcopenshell-and-pythonocc.html>Combining IfcOpenShell and pythonOCC/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-6605487446493739325 itempropdescription articleBody>One of the strengths of the IfcOpenShell library is the vast amount of shape analysis and healing tools that Open Cascade provides. This allows for transforming, validating, generating and analysing geometry in IFC files, for example, to compute missing IfcProperty values, validate geometrical constraints, implement clash- and interference checking and the generation of new geometry.br />br />a hrefhttp://www.pythonocc.org/>pythonOCC/a> exposes the rich set of functionality that Open Cascade provides to a Python environment, which allows for intuitive rapid prototyping. Since IfcOpenShell also provides a Python wrapper, the two of them can be easility tied together to create a development environment for working with geometry in IFC files in an interactive, quick, but also, very powerful way.br />br />To demonstrate the possibilities, or rather, the first baby steps towards a more interesting and meaningful demonstration, I put together a quick example here: a hrefhttp://ifcopenshell.org/pythonOCC/example1/>http://ifcopenshell.org/pythonOCC/example1//a>. The set of dependencies to get the system running is long, but it is worth it!br />br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm67LvB7vzm3mFGGuhT_4RW79JEjMSgBwHVOVJTRI9nE7SlpbXlR629JHSh7QugqhAswBq5Py1LOJFWw7jizWucsz8gFBqHDknVDS_8ZkV-wqa8ixAoR8XGgz9gRGWjCeqwJr6J732AU0/s1600/IfcOpenShell-pythonOCC.png imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm67LvB7vzm3mFGGuhT_4RW79JEjMSgBwHVOVJTRI9nE7SlpbXlR629JHSh7QugqhAswBq5Py1LOJFWw7jizWucsz8gFBqHDknVDS_8ZkV-wqa8ixAoR8XGgz9gRGWjCeqwJr6J732AU0/s1600/IfcOpenShell-pythonOCC.png />/a>/div>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn itempropauthor itemscopeitemscope itemtypehttp://schema.org/Person>meta contenthttps://www.blogger.com/profile/02091082558478878837 itempropurl/>a classg-profile hrefhttps://www.blogger.com/profile/02091082558478878837 relauthor titleauthor profile>span itempropname>thomas/span>/a>/span>/span>span classpost-timestamp>atmeta contenthttp://blog.ifcopenshell.org/2014/12/combining-ifcopenshell-and-pythonocc.html itempropurl/>a classtimestamp-link hrefhttp://blog.ifcopenshell.org/2014/12/combining-ifcopenshell-and-pythonocc.html relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2014-12-19T12:00:00+01:00>12:00 PM/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.ifcopenshell.org/2014/12/combining-ifcopenshell-and-pythonocc.html#comment-form onclick>No comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-1663573582>a hrefhttps://www.blogger.com/post-edit.g?blogID1792504135258878475&postID6605487446493739325&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID6605487446493739325&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID6605487446493739325&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID6605487446493739325&targettwitter target_blank titleShare to Twitter>span classshare-button-link-text>Share to Twitter/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID6605487446493739325&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID1792504135258878475&postID6605487446493739325&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>Labels:a hrefhttp://blog.ifcopenshell.org/search/label/Geometry reltag>Geometry/a>,a hrefhttp://blog.ifcopenshell.org/search/label/IFC reltag>IFC/a>,a hrefhttp://blog.ifcopenshell.org/search/label/Python reltag>Python/a>,a hrefhttp://blog.ifcopenshell.org/search/label/pythonOCC reltag>pythonOCC/a>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> /div>div classblog-pager idblog-pager>span idblog-pager-older-link>a classblog-pager-older-link hrefhttp://blog.ifcopenshell.org/search?updated-max2014-12-19T12:00:00%2B01:00&max-results7 idBlog1_blog-pager-older-link titleOlder Posts>Older Posts/a>/span>a classhome-link hrefhttp://blog.ifcopenshell.org/>Home/a>/div>div classclear>/div>div classblog-feeds>div classfeed-links>Subscribe to:a classfeed-link hrefhttp://blog.ifcopenshell.org/feeds/posts/default target_blank typeapplication/atom+xml>Posts (Atom)/a>/div>/div>/div>/div>/div>/div>div classcolumn-left-outer>div classcolumn-left-inner>aside>/aside>/div>/div>div classcolumn-right-outer>div classcolumn-right-inner>aside>/aside>/div>/div>/div>div styleclear: both>/div>!-- columns -->/div>!-- main -->/div>/div>div classmain-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>footer>div classfooter-outer>div classfooter-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left footer-fauxborder-left>div classfauxborder-right footer-fauxborder-right>/div>div classregion-inner footer-inner>div classfoot no-items section idfooter-1>/div>table border0 cellpadding0 cellspacing0 classsection-columns columns-2>tbody>tr>td classfirst columns-cell>div classfoot no-items section idfooter-2-1>/div>/td>td classcolumns-cell>div classfoot no-items section idfooter-2-2>/div>/td>/tr>/tbody>/table>!-- outside of the include in order to lock Attribution widget -->div classfoot section idfooter-3 nameFooter>div classwidget Attribution data-version1 idAttribution1>div classwidget-content styletext-align: center;>Simple theme. Powered by a hrefhttps://www.blogger.com target_blank>Blogger/a>./div>div classclear>/div>/div>/div>/div>/div>div classfooter-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/footer>!-- content -->/div>/div>div classcontent-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/div>script typetext/javascript> window.setTimeout(function() { document.body.className document.body.className.replace(loading, ); }, 10); /script>script typetext/javascript srchttps://www.blogger.com/static/v1/widgets/4140855455-widgets.js>/script>script typetext/javascript>window__wavt AOuZoY5Y0bKHgJW5jxiIUG7-nmNGOlBNwQ:1726275987160;_WidgetManager._Init(//www.blogger.com/rearrange?blogID\x3d1792504135258878475,//blog.ifcopenshell.org/,1792504135258878475);_WidgetManager._SetDataContext({name: blog, data: {blogId: 1792504135258878475, title: IfcOpenShell, url: http://blog.ifcopenshell.org/, canonicalUrl: http://blog.ifcopenshell.org/, homepageUrl: http://blog.ifcopenshell.org/, searchUrl: http://blog.ifcopenshell.org/search, canonicalHomepageUrl: http://blog.ifcopenshell.org/, blogspotFaviconUrl: http://blog.ifcopenshell.org/favicon.ico, bloggerUrl: https://www.blogger.com, hasCustomDomain: true, httpsEnabled: false, enabledCommentProfileImages: true, gPlusViewType: FILTERED_POSTMOD, adultContent: false, analyticsAccountNumber: , encoding: UTF-8, locale: en, localeUnderscoreDelimited: en, languageDirection: ltr, isPrivate: false, isMobile: false, isMobileRequest: false, mobileClass: , isPrivateBlog: false, isDynamicViewsAvailable: true, feedLinks: \x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22IfcOpenShell - Atom\x22 href\x3d\x22http://blog.ifcopenshell.org/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22IfcOpenShell - RSS\x22 href\x3d\x22http://blog.ifcopenshell.org/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22IfcOpenShell - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/1792504135258878475/posts/default\x22 /\x3e\n, meTag: \x3clink rel\x3d\x22me\x22 href\x3d\x22https://www.blogger.com/profile/02091082558478878837\x22 /\x3e\n, adsenseHostId: ca-host-pub-1556223355139109, adsenseHasAds: false, adsenseAutoAds: false, boqCommentIframeForm: true, loginRedirectParam: , view: , dynamicViewsCommentsSrc: //www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js, dynamicViewsScriptSrc: //www.blogblog.com/dynamicviews/5702e3d62c3de6e9, plusOneApiSrc: https://apis.google.com/js/platform.js, disableGComments: true, interstitialAccepted: false, sharing: {platforms: {name: Get link, key: link, shareMessage: Get link, target: }, {name: Facebook, key: facebook, shareMessage: Share to Facebook, target: facebook}, {name: BlogThis!, key: blogThis, shareMessage: BlogThis!, target: blog}, {name: Twitter, key: twitter, shareMessage: Share to Twitter, target: twitter}, {name: Pinterest, key: pinterest, shareMessage: Share to Pinterest, target: pinterest}, {name: Email, key: email, shareMessage: Email, target: email}, disableGooglePlus: true, googlePlusShareButtonWidth: 0, googlePlusBootstrap: \x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e}, hasCustomJumpLinkMessage: false, jumpLinkMessage: Read more, pageType: index, pageName: , pageTitle: IfcOpenShell}}, {name: features, data: {}}, {name: messages, data: {edit: Edit, linkCopiedToClipboard: Link copied to clipboard!, ok: Ok, postLink: Post Link}}, {name: template, data: {name: custom, localizedName: Custom, isResponsive: false, isAlternateRendering: false, isCustom: true, variant: simplysimple, variantId: simplysimple}}, {name: view, data: {classic: {name: classic, url: ?view\x3dclassic}, flipcard: {name: flipcard, url: ?view\x3dflipcard}, magazine: {name: magazine, url: ?view\x3dmagazine}, mosaic: {name: mosaic, url: ?view\x3dmosaic}, sidebar: {name: sidebar, url: ?view\x3dsidebar}, snapshot: {name: snapshot, url: ?view\x3dsnapshot}, timeslide: {name: timeslide, url: ?view\x3dtimeslide}, isMobile: false, title: IfcOpenShell, description: open source ifc implementation and geometry engine, url: http://blog.ifcopenshell.org/, type: feed, isSingleItem: false, isMultipleItems: true, isError: false, isPage: false, isPost: false, isHomepage: true, isArchive: false, isLabelSearch: false}});_WidgetManager._RegisterWidget(_NavbarView, new _WidgetInfo(Navbar1, navbar, document.getElementById(Navbar1), {}, displayModeFull));_WidgetManager._RegisterWidget(_HeaderView, new _WidgetInfo(Header1, header, document.getElementById(Header1), {}, displayModeFull));_WidgetManager._RegisterWidget(_BlogView, new _WidgetInfo(Blog1, main, document.getElementById(Blog1), {cmtInteractionsEnabled: false, lightboxEnabled: true, lightboxModuleUrl: https://www.blogger.com/static/v1/jsbin/2675689289-lbx.js, lightboxCssUrl: https://www.blogger.com/static/v1/v-css/13464135-lightbox_bundle.css}, displayModeFull));_WidgetManager._RegisterWidget(_AttributionView, new _WidgetInfo(Attribution1, footer-3, document.getElementById(Attribution1), {}, displayModeFull));/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]