Bump to latest version
authorDion Moult <dion@thinkmoult.com>
Thu, 7 Nov 2019 20:47:27 +0000 (21:47 +0100)
committerDion Moult <dion@thinkmoult.com>
Thu, 7 Nov 2019 20:47:27 +0000 (21:47 +0100)
24 files changed:
.gitignore [new file with mode: 0644]
Makefile
config.sh
pages/blenderbim-vs-revit/page.html
pages/community/metadata.sh [moved from pages/contribute/metadata.sh with 100% similarity]
pages/community/page.html [moved from pages/contribute/page.html with 78% similarity]
pages/download/page.html
pages/ifcglobalid/metadata.sh [new file with mode: 0644]
pages/ifcglobalid/page.html [new file with mode: 0644]
pages/index/page.html
pages/learn-blender/metadata.sh [new file with mode: 0644]
pages/learn-blender/page.html [new file with mode: 0644]
pages/search-ifc-class/page.html
pages/training/page.html
templates/header.html
www/assets/bimtester.svg [new file with mode: 0644]
www/assets/ifccobie.svg [new file with mode: 0644]
www/assets/images/blenderbim-ifcglobalid.png [new file with mode: 0644]
www/assets/images/revit-export-dialog.png [new file with mode: 0644]
www/assets/images/revit-params-ifcglobalid.png [new file with mode: 0644]
www/assets/images/revit-settings-ifcglobalid.png [new file with mode: 0644]
www/assets/kopete.svg [new file with mode: 0644]
www/assets/v0.6.0.atom [new file with mode: 0644]
www/style.css

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..d78f9b7
--- /dev/null
@@ -0,0 +1,4 @@
+www/*
+!www/assets/
+www/assets/*.atom
+*.swp
index ec947c41ef73a961ecc472961ff2bfdec06acdcf..452bed2fa498f044921a7c097dda50a4938f8200 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,10 @@ pages :
 
 .PHONY : page
 page :
-       source config.sh && source pages/$$name/metadata.sh && mo templates/header.html > www/$$name.html
-       source config.sh && source pages/$$name/metadata.sh && mo pages/$$name/page.html >> www/$$name.html 
-       source config.sh && source pages/$$name/metadata.sh && mo templates/footer.html >> www/$$name.html
+       source config.sh && source pages/$$name/metadata.sh && /home/blenderbimorg/mo templates/header.html > www/$$name.html
+       source config.sh && source pages/$$name/metadata.sh && /home/blenderbimorg/mo pages/$$name/page.html >> www/$$name.html 
+       source config.sh && source pages/$$name/metadata.sh && /home/blenderbimorg/mo templates/footer.html >> www/$$name.html
+
+.PHONY : rss
+rss :
+       wget -O www/assets/v0.6.0.atom https://github.com/IfcOpenShell/IfcOpenShell/commits/v0.6.0.atom
index fb3def6abc1759a644dcc849308fb20c70e2f646..1f3f82f7ee20af7f0451348c296a3a219d676fd1 100644 (file)
--- a/config.sh
+++ b/config.sh
@@ -1 +1 @@
-export baseurl="http://blenderbim/"
+export baseurl="https://blenderbim.org/"
index 6ae703147f2d6d19ba4324b2996059d72e393ea0..9c1bcc6de9d0c6e54abb1ad4b29aeebce6a39a46 100644 (file)
@@ -85,7 +85,7 @@
     <p>
         This comparison table is based off the table of contents for the various
         concepts supported by the IFC schema. As this is a long table, in
-        summary, BlenderBIM supports <strong>48/105 concepts or 46%</strong>,
+        summary, BlenderBIM supports <strong>52.5/105 concepts or 50%</strong>,
         and Revit supports <strong>39/105 concepts, or 37%</strong>. Partially
         supported concepts are counted as half.
     </p>
         </tr>
         <tr>
             <td>4.1.1 Project Declaration</td>
+            <td class="supported">Supported</td>
             <td class="partially-supported">Partially supported</td>
-            <td class="partially-supported">Partially supported</td>
-            <td>IfcRelDeclares currently only declares to project libraries in
-                BlenderBIM, not directly to projects. Revit has no project library
-                support.</td>
+            <td>Revit has no project library support.</td>
         </tr>
         <tr>
             <td>4.1.2 Project Units</td>
-            <td class="partially-supported">Partially supported</td>
             <td class="supported">Supported</td>
-            <td>Blender doesn't support imperial units yet.</td>
+            <td class="supported">Supported</td>
+            <td></td>
         </tr>
         <tr>
             <td>4.1.3 Project Representation Context</td>
+            <td class="supported">Supported</td>
             <td class="partially-supported">Partially supported</td>
-            <td class="partially-supported">Partially supported</td>
-            <td>Only model view representations are supported in both Blender and
-                Revit.</td>
+            <td>Revit does not support plan views or target views.</td>
         </tr>
         <tr>
             <td>4.1.4 Project Global Positioning</td>
         </tr>
         <tr>
             <td>4.2.2.1 Property Sets for Objects</td>
+            <td class="supported">Supported</td>
             <td class="partially-supported">Partially supported</td>
-            <td class="partially-supported">Partially supported</td>
-            <td>Blender does not support custom psets. Complex data types are not
-                supported in either. There seem to be some gotchas about units in
-                Revit.</td>
+           <td>Complex data types are not supported in Revit. There seem to be
+           some gotchas about units in Revit.</td>
         </tr>
         <tr>
             <td>4.2.2.1.1 Property Sets with Override</td>
-            <td class="partially-supported">Partially supported</td>
+            <td class="supported">Supported</td>
             <td class="not-supported">Not supported</td>
-            <td>Blender does not support custom psets. Revit does a blanket override
-                which doesn't count.</td>
+           <td>Revit does a blanket override which doesn't count.</td>
         </tr>
         <tr>
             <td>4.2.2.2 Property Sets for Types</td>
-            <td class="partially-supported">Partially supported</td>
+            <td class="supported">Supported</td>
             <td class="partially-supported">Partially supported</td>
             <td></td>
         </tr>
         </tr>
         <tr>
             <td>4.7.2.1 Space Boundaries 1st Level</td>
+            <td class="partially-supported">Partially supported</td>
             <td class="not-supported">Not supported</td>
-            <td class="not-supported">Not supported</td>
-            <td></td>
+            <td>Note that Blender support for this is experimental.</td>
         </tr>
         <tr>
             <td>4.7.2.2 Space Boundaries 2nd Level</td>
         </tr>
         <tr>
             <td>4.8.2.12 Survey Points Geometry</td>
-            <td class="not-supported">Not supported</td>
+            <td class="supported">Supported</td>
             <td>Unknown</td>
             <td></td>
         </tr>
similarity index 78%
rename from pages/contribute/page.html
rename to pages/community/page.html
index 95e02689f0632914d1dc6987bcb3c080ea2389dd..99c5e054a9fe8bc5e0e78e388b441803e4fd13a2 100644 (file)
@@ -1,5 +1,5 @@
 <section>
-    <h2>Contribute to the future of open-source digital engineering</h2>
+    <h2>Be part of the future of open-source digital engineering</h2>
     <p>
         BlenderBIM would not be possible without dedicated open-source
         developers, volunteers, and industry members. You can be part of this
@@ -8,7 +8,22 @@
         friends and colleagues, suggest changes, and help change the industry
         for the better.
     </p>
-    <h3>Contribute to the IfcOpenShell Project</h3>
+    <h3>Chat with us live on IRC!</h3>
+    <div class="feature">
+        <img src="assets/kopete.svg" width="64" alt="IRC" class="symbol" />
+        <div class="feature-snippet">
+           <p>
+               IRC is a free, online, real-time chatroom. It is incredibly popular with the free software community, where thousands of people are around to discuss a topic of interest. It is a great way to ask questions and get an instant reply.
+           </p>
+           <p>
+               Unfortunately, it is relatively unknown to most of the AEC industry, so there are usually only 2 or 3 people online talking about architecture. However, you can try your luck and join <a href="http://webchat.freenode.net/">the Freenode IRC webchat</a>, and join the channel called <code>##architect</code>. My username there is <code>Moult</code>. Mention my name and send a message to me, and if I am available, I will reply.
+           </p>
+           <p>
+               You should also join the <code>#blender</code> channel which usually has several hundred people online. You can ask about general Blender questions there. It is standard culture for people to remain connected 24/7 to the chatroom, but not always be at their computer to respond, so don't worry if you don't get a reply straight away, especially with only a few people in different timezones! The longer you stick around, the more likely you will get a response, and we can make this community grow!
+           </p>
+        </div>
+    </div>
+    <h3>Participate in the IfcOpenShell Project</h3>
     <div class="feature">
         <img src="assets/git-gui.svg" width="64" alt="Git" class="symbol" />
         <div class="feature-snippet">
index a0b2918655150211ff5e4702b8c5854dd7a79bb7..1e6447363c2634ec7a08529ee716d6893a5fdfd3 100644 (file)
@@ -1,7 +1,10 @@
 <section>
     <h2>Get BlenderBIM</h2>
     <p>
-        BlenderBIM is still alpha software.
+        <strong>BlenderBIM is <a href="https://www.fsf.org/about/what-is-free-software">free software</a>, and always will be</strong>. You have the freedom to download it, modify it, use it however you want, and even redistribute it. If your current BIM authoring package has issues with <a href="https://www.gnu.org/proprietary/proprietary-incompatibility.html">proprietary incompatibility</a>, <a href="https://www.gnu.org/proprietary/proprietary-obsolescence.html">proprietary obsolescence</a>, or locks your business into <a href="https://www.gnu.org/proprietary/proprietary-subscriptions.html">proprietary subscriptions</a>, it's time to see what you can do with OpenBIM.
+    </p>
+    <p>
+        <em>Note: BlenderBIM is still alpha software. Use at your own risk.</em>
     </p>
     <p>
         If you know what you're doing or just don't care, instructions for installation are
         outdated, but as it is Python code, you can replace it easily with the
         latest plugin.
     </p>
+    <h3>BIMTester</h3>
+    <div class="feature">
+        <img src="assets/bimtester.svg" width="64" alt="BIMTester" class="symbol" />
+        <div class="feature-snippet">
+            <p>
+                BIMTester is a cross-platform, lightweight, ultra-fast, and flexible BIM analysis package. BIM models and information are highly complex and interrelated. Usually, it is difficult to ask questions about the BIM model and prevent regressions and mistakes. Most existing model analysis tools, including those that do clash detection, are clunky, operate in a black-box fashion, and do not properly ensure your BIM data is correctly stored in an OpenBIM compliant way. This is where BIMTester comes in.
+            </p>
+            <p>
+                BIMTester can ask almost any imaginable question to your BIM model - from simple things like whether objects are classified correctly, to whether there is a fire rating, or even if you can see a signpost from a certain angle. By building up a comprehensive test suite of design expectations, you can ensure that your model becomes increasingly data-rich and useful for more stakeholders in the built environment.
+            </p>
+            <p>
+                <em>Note: BIMTester is still alpha software. Use at your own risk.</em>
+            </p>
+            <p>
+                If you know what you're doing, <a href="builds/">download the latest build today</a>.
+            </p>
+            <p>
+                Documentation is not yet available. Please consult your BIM consultant.
+            </p>
+        </div>
+    </div>
+    <div class="feature">
+        <img src="assets/ifccobie.svg" width="64" alt="IFC COBie" class="symbol" />
+        <div class="feature-snippet">
+            <h3>IFC COBie</h3>
+            <p>
+                Although an IFC file should be the primary deliverable for COBie information, in the form of the COBie MVD, sometimes, it is necessary to visualise COBie data in a spreadsheet form. This tool converts any IFC file into CSV and XLSX formats.
+            </p>
+            <p>
+                <em>Note: IFC COBie is still alpha software. Use at your own risk.</em>
+            </p>
+            <p>
+                If you know what you're doing, <a href="builds/">download the latest build today</a>.
+            </p>
+        </div>
+    </div>
+    <h3>OpenBIM for Revit</h3>
+    <p>
+        BIM models originating from Revit are often poor in quality. The OpenBIM tools project has started to help provide utilities to query OpenBIM data in Revit itself.
+    </p>
+    <p>
+        <em>Note: OpenBIM for Revit is still alpha software. Use at your own risk.</em>
+    </p>
+    <p>
+        If you know what you're doing, <a href="builds/">download the latest build today</a>.
+    </p>
+    <p>
+        To install, copy the <code>OpenBIM.addin</code> and <code>OpenBIM.dll</code> file into your <code>C:\Users\*\AppData\Roaming\Autodesk\Revit\Addins\2019</code> folder. To uninstall, just delete those two files.
+    </p>
+    <h3>Blender Archipack</h3>
+    <div class="feature">
+        <img src="https://blender-archipack.org/fileadmin/introduction/images/logo-color.svg" width="64" alt="Archipack" class="symbol" />
+        <div class="feature-snippet">
+            <p>
+               Archipack is a great little addon that supports domain specific modeling for architects. This means you can create walls, floors, ceilings, doors, roofs, and furniture with a single click and with specific measurement controls to manipulate them similar to other BIM software. This geometry can then be assigned BIM data with BlenderBIM.
+            </p>
+           <p>
+               <a href="https://blender-archipack.org/">Check out Blender Archipack</a>
+           </p>
+        </div>
+    </div>
+
 </section>
diff --git a/pages/ifcglobalid/metadata.sh b/pages/ifcglobalid/metadata.sh
new file mode 100644 (file)
index 0000000..4938930
--- /dev/null
@@ -0,0 +1 @@
+export description=""
diff --git a/pages/ifcglobalid/page.html b/pages/ifcglobalid/page.html
new file mode 100644 (file)
index 0000000..f83aac0
--- /dev/null
@@ -0,0 +1,57 @@
+<section>
+    <h2>The importance of the IFC <code>GlobalId</code> attribute</h2>
+    <p>
+        IFC files store information about your BIM model and BIM data. Some of this data is specific to the industry, such as <code>IfcWall</code>, or <code>IfcBeam</code>. We call these domain-specific entities <em>Rooted elements</em> in IFC-jargon.
+    </p>
+    <p>
+        In contrast, other data in an IFC file is generic, such as the colour red's RGB code <code>(255, 0, 0)</code>, or the coordinate point <code>(0, 0, 0)</code>. These are <em>non-rooted</em> elements. By themselves, they lack meaning, but they are referenced by <em>Rooted elements</em>.
+    </p>
+    <p>
+        <em>Rooted elements</em> are special because they can have information such as a <code>Name</code>, <code>Description</code>, and <code>OwnerHistory</code>, which allows people and responsibilities of organisations to be captured. <em>Rooted elements</em> also have one <em>compulsory</em> attribute, called the <code>GlobalId</code>.
+    </p>
+    <p>
+        This <code>GlobalId</code> attribute is a special, computer-generated unique identifier for a particular element. You might have heard other names for it, such as a <em>Universally Unique Identifier</em>, or UUID, or <em>Globally Unique Identifier</em>, or GUID. They all mean the same thing in principle, but IFC's <code>GlobalId</code> is a little special that it is always exactly 22 characters long, and the first digit must be <code>0</code>, <code>1</code>, <code>2</code>, or <code>3</code>. Despite the IFC-specific formatting, they actually contain the same data underneath using some fancy computer math.
+    </p>
+    <p>
+        The <code>GlobalId</code> is important because it is the only way to uniquely identify an element, even if other attributes such as its <code>Name</code> changes. Even across two different IFC files, there should be no duplicate <code>GlobalId</code> values. This means you can build a BIM model consisting of thousands of IFC files for a city, or even the world, and you can uniquely identify a single screw. You may be familiar with element IDs in your own BIM program, but it may not be as properly unique as an IFC <code>GlobalId</code>, which creates problems in large BIM data warehouses. When BIM quality auditing is performed, the <code>GlobalId</code> must be used as the element reference.
+    </p>
+    <h3>Common issues</h3>
+    <p>
+        When multiple disciplines create IFC files, they often refer to the same element in multiple files, such as the same <code>IfcProject</code>, same <code>IfcSite</code>, same <code>IfcBuilding</code>, and same <code>IfcBuildingStorey</code>. However, if the authoring programs generate different <code>GlobalId</code> values for each IFC file, then they are creating duplicate, and therefore incorrect, BIM information.
+    </p>
+    <p>
+        When the BIM authoring tool does not support the ability to reference <code>GlobalId</code> values from other IFC files, then you must fix this error by editing the <code>GlobalId</code> of elements in your IFC model. The process for this is different depending on which BIM authoring tool you use.
+    </p>
+    <p>
+        Please note that editing <code>GlobalId</code> values manually is <em>dangerous</em>. It must be specifically generated in a way that complies with OpenBIM requirements. If in doubt, consult your BIM specialist.
+    </p>
+    <h3>How to manage <code>GlobalId</code> in BlenderBIM</h3>
+    <p>
+        As soon as you export an IFC object in BlenderBIM for the first time, it will generate a <code>GlobalId</code>. This will be stored in the object's properties. It is free for you to copy, paste, and edit to a custom <code>GlobalId</code> if you need to specifically match an exact BIM object.
+    </p>
+    <p>
+        <img src="assets/images/blenderbim-ifcglobalid.png">
+    </p>
+    <h3>How to manage <code>GlobalId</code> in Revit</h3>
+    <p>
+        In Revit, even before you export an IFC file, the IFC <code>GlobalId</code> is predetermined. However, to see the <code>GlobalId</code>, you will need to export your Revit model to an IFC file.
+    </p>
+    <p>
+        If you use the open-source IFC exporter, you will need to press the "<em>Modify setup ...</em>" button to access more settings.
+    </p>
+    <p>
+        <img src="assets/images/revit-export-dialog.png">
+    </p>
+    <p>
+        In the "<em>Advanced</em>" tab of the setup window, ensure that "<em>Store the IFC GUID in an element parameter after export</em>" is checked. We recommend that this option is <em>always checked</em>.
+    </p>
+    <p>
+        <img src="assets/images/revit-settings-ifcglobalid.png">
+    </p>
+    <p>
+        After your export is complete, you can now see a new parameter called <code>IfcGUID</code> for your objects. Despite the inconsistent naming, this is actually the IFC <code>GlobalId</code>. This property can now be overriden, copied, or searched for. If the text is deleted, it will be rewritten on your next export. However, it will always rewrite the original <code>GlobalId</code>. There is no way to regenerate a fresh ID - it will always be predetermined.
+    </p>
+    <p>
+        <img src="assets/images/revit-params-ifcglobalid.png">
+    </p>
+</section>
index aa77679cea7854fb2b9e6e10782748d8631afdaa..c3f825d543ef4b43a50377709e30141a766629d4 100644 (file)
                 <a href="download.html">Yeah, whatever, let me use it anyway.</a>
             </p>
         </div>
+       <h3>Latest Updates</h3>
+       <p>BlenderBIM is updated so frequently, it can be hard to catch up. Let's see the latest 20 updates. For even more updates, check out <a href="https://github.com/IfcOpenShell/IfcOpenShell/commits/v0.6.0">the commit log</a>.</p>
+       <div id="commits"></div>
     </div>
 </section>
+<script type ="text/javascript">
+function loadRSS(callback) {   
+    var xobj = new XMLHttpRequest();
+        xobj.overrideMimeType('application/xml');
+    xobj.open('GET', 'assets/v0.6.0.atom', true);
+    xobj.onreadystatechange = function () {
+          if (xobj.readyState == 4 && xobj.status == '200') {
+            callback(xobj.responseText);
+          }
+    };
+    xobj.send(null);  
+}
+loadRSS(function(response) {
+    parser = new DOMParser();
+    xmlDoc = parser.parseFromString(response, 'text/xml');
+    entries = xmlDoc.getElementsByTagName('entry');
+    var liTemplate = '<img src="_THUMBNAIL_" width="20px" height="20px"> _TITLE_<br /><span style="color: #999; font-size: 0.8em;">Updated _UPDATED_ by <a href="_AUTHORURL_">_AUTHORNAME_</a> - <a href="_LINK_">See details</a></span>'
+    var ul = document.createElement('ul');
+    for (var i = 0; i < entries.length; i++) {
+       console.log(entries[i].getElementsByTagName('link')[0].getAttribute('href'));
+       console.log(entries[i].getElementsByTagName('link')[0]);
+        data = {
+            '_TITLE_': entries[i].getElementsByTagName('title')[0].textContent,
+            '_UPDATED_': entries[i].getElementsByTagName('updated')[0].textContent.split('T')[0],
+            '_LINK_': entries[i].getElementsByTagName('link')[0].getAttribute('href'),
+            '_THUMBNAIL_': entries[i].getElementsByTagName('media:thumbnail')[0].getAttribute('url'),
+            '_AUTHORNAME_': entries[i].getElementsByTagName('author')[0].getElementsByTagName('name')[0].textContent,
+            '_AUTHORURL_': entries[i].getElementsByTagName('author')[0].getElementsByTagName('uri')[0].textContent
+       };
+       var innerHTML = liTemplate;
+       for (var key in data) {
+           innerHTML = innerHTML.replace(key, data[key]);
+       }
+       var li = document.createElement('li');
+       li.innerHTML = innerHTML;
+       ul.appendChild(li);
+    }
+    var commits = document.getElementById('commits');
+    commits.appendChild(ul);
+});
+</script>
diff --git a/pages/learn-blender/metadata.sh b/pages/learn-blender/metadata.sh
new file mode 100644 (file)
index 0000000..4938930
--- /dev/null
@@ -0,0 +1 @@
+export description=""
diff --git a/pages/learn-blender/page.html b/pages/learn-blender/page.html
new file mode 100644 (file)
index 0000000..835bb51
--- /dev/null
@@ -0,0 +1,42 @@
+<section>
+    <h2>Learn Blender</h2>
+    <p>
+        In the past, great architects had to know how to draw. In the digital age, architects need to know how to do digital modeling! It's time to start learning the exact same 3D modeling techniques that the CG industry uses, like Pixar, Dreamworks, Weta Digital, Disney, and so on. It's more complex than pressing the "door" tool then having a door magically appear, but it can let you create anything you can possibly imagine. If you haven't already, please <a href="https://blender.org">download and install Blender</a>, and then follow the tutorials below.
+    </p>
+    <p>
+        Blender is an extremely advanced tool for modeling, and just about anything you can imagine in the computer graphics industry. However, with all of its flexibility, it can be a bit intimidating to beginners who don't have a background in 3D modeling. If you have only done modeling with a tool like Revit or ArchiCAD, or even NURBs modeling in Rhino, you will discover that polygonal modeling in Blender is a wild ride and can model complex objects to a level of detail that may be impractical in other software. It takes a bit of practice, though, but it's not hard to get started!
+    </p>
+    <h3>Part 1: Donuts and flaming monkey heads</h3>
+    <p>
+        We're going to start by <em>modeling a donut and setting a monkey head on fire</em> with <a href="https://www.youtube.com/channel/UCOKHwx1VCdgnxwbjyb9Iu1g">BlenderGuru</a>'s great beginner tutorial series. Why are we doing this, and not modeling a house? That's because we want to teach the fundamentals of 3D first. If you can model a monkey, you'll find that anything the building industry throws at you will be a piece of cake (or donut!). Take a deep breath, break away from the safe harbours, and watch the video below.
+    </p>
+    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/TPrnSACiTJ4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+    <h3>Part 2: Modeling</h3>
+    <p>
+        Part 2 teaches you how to do simple mesh editing to create a donut.
+    </p>
+    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/RaT-uG5wgUw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+    <h3>Part 3: More modeling</h3>
+    <p>
+        Another bite-sized (get it?) tutorial to use modifiers and model icing on your donut.
+    </p>
+    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/R2qjqqfkH6E" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+    <h3>Part 4: Basic extrusion</h3>
+    <p>
+        Let that icing drip!
+    </p>
+    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/jmSgsaNSQ6s" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+    <h3>Part 5: Sculpting</h3>
+    <p>Imagine if you could sculpt your designs ...</p>
+    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/6OTX3ZdYvEA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+    <h3>Part 6: Lighting and Rendering</h3>
+    <p>Learn basic rendering and lighting to visualise your designs with real-time rendering.</p>
+    <iframe width="560" height="315" src="https://www.youtube.com/embed/ZTxBrjN1ugA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+    <h3>Part 7: Materials and basic compositing</h3>
+    <p>Time to add realism with materials.</p>
+    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/5lr8QnR5WWU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+    <h3>Where to from here?</h3>
+    <p>
+        I highly recommend watching <a href="https://www.youtube.com/playlist?list=PLjEaoINr3zgEq0u2MzVgAaHEBt--xLB6U">the rest of the Blender Beginner Tutorials</a>, as there are 3 more levels which expose you to textures, liquids, more modeling, parametric particle generation, and rendering. It's also a good idea to practice modeling pretty much anything that you want! It's an art-form, so don't be afraid to express yourself as an artist! When you're starting to feel comfortable with generic modeling, we'll introduce how to assign BIM data with BlenderBIM, and some best practices for architectural modeling. <em>Coming soon</em>.
+    </p>
+</section>
index 18fb393b808de7b7aa07d2be8e3652cc653024dd..1d1da07172b5ceccb7ca9db6728a44c631c4e453 100644 (file)
@@ -111,7 +111,9 @@ loadJSON(function(response) {
         'Glazing / Glass / Pane': { 'description': 'If you are trying to classify a single pane of glass or glazing aggregated within a larger system, consider using an IfcPlate. Otherwise, if it is an entire window, use IfcWindow. If it is a glazed wall, consider IfcWall.', 'attributes': [] },
         'Signage': { 'description': 'If you are trying to classify signage, please consider using IfcFurniture.', 'attributes': [] },
         'Hob': { 'description': 'If you are trying to classify a hob on the ground, such as a concrete hob, please consider using an IfcSlab, unless the hob is of a construction method that detaches it from the slab.', 'attributes': [] },
-        'Flashing / Capping': { 'description': 'If you are trying to classify flashing, such as ridge flashing, or barge cappings, often used for waterproofing at junctions, please consider using an IfcCovering.', 'attributes': [] }
+        'Flashing / Capping': { 'description': 'If you are trying to classify flashing, such as ridge flashing, or barge cappings, often used for waterproofing at junctions, please consider using an IfcCovering.', 'attributes': [] },
+        'Lighting rod': { 'description': 'If you are trying to classify a lighting rod, typically placed high up on a building, try an IfcCableSegment.', 'attributes': [] },
+        'Card or Fob Reader': { 'description': 'If you are trying to classify a card reader or fob reader to gain access to a door, try an IfcSensor with PredefinedType of IDENTIFIERSENSOR.', 'attributes': [] }
     }
     query.addEventListener('change', getResults);
     query.addEventListener('keyup', getResults);
index 1d8882f93098ad52b1c75fb14125301bff189674..4e8aae193e77bee358be74b0a1b1115472c70ae7 100644 (file)
@@ -1,9 +1,43 @@
-<section>
+<section style="overflow: hidden;">
     <h2>Training &amp; Support</h2>
     <p>
         This page is under construction.
     </p>
-    <p>
-        <a href="{{baseurl}}search-ifc-class.html">Which IFC class should I use?</a>
-    </p>
+    <div class="third"><article>
+        <h3>Learn Blender</h3>
+        <p>
+            <a href="{{baseurl}}learn-blender.html">Read article</a>
+        </p>
+       <p>
+           If you're completely new to Blender and 3D modeling, or if you've only modeled with tools like Revit and ArchiCAD and haven't seen what the real computer graphics modeling industry is capable of, follow this easy beginners tutorial to learn 3D modeling with Blender!
+       </p>
+    </article></div>
+    <div class="third"><article>
+        <h3>Which IFC class should I use?</h3>
+        <p>
+            <a href="{{baseurl}}search-ifc-class.html">Read article</a>
+        </p>
+       <p>
+           All BIM objects must be classified correctly to be useful. Learning which IFC class to use is one of the most fundamental concepts to get right in OpenBIM.
+       </p>
+    </article></div>
+    <div class="third"><article>
+        <h3>The importance of the IFC <code>GlobalId</code> attribute</h3>
+        <p>
+            <a href="{{baseurl}}ifcglobalid.html">Read article</a>
+        </p>
+       <p>
+           All BIM objects must have a correctly generated identifier. However, not all BIM authoring programs do this correctly.
+       </p>
+    </article></div>
+    <div class="third"><article>
+        <h3>BlenderBIM and Revit comparison</h3>
+        <p>
+            <a href="{{baseurl}}blenderbim-vs-revit.html">Read article</a>
+        </p>
+       <p>
+           Revit is currently the most common BIM authoring tool by marketshare. Despite this, it is not necessarily the most powerful geometric modeling package, and nor is it necessarily the most powerful BIM data authoring tool.
+       </p>
+    </article></div>
+
 </section>
index 11dd582c645b37ab0887f0e1bff328988f57eef6..33a3dcd716147d4233b4cb9ad8397c582967468a 100644 (file)
@@ -18,7 +18,7 @@
                 <li><a href="{{baseurl}}">Home</a></li>
                 <li><a href="{{baseurl}}download.html">Get BlenderBIM</a></li>
                 <li><a href="{{baseurl}}training.html">Training &amp; Support</a></li>
-                <li><a href="{{baseurl}}contribute.html">Contribute</a></li>
+                <li><a href="{{baseurl}}community.html">Community</a></li>
             </ul>
         </nav>
     </header>
diff --git a/www/assets/bimtester.svg b/www/assets/bimtester.svg
new file mode 100644 (file)
index 0000000..00e8b3e
--- /dev/null
@@ -0,0 +1,75 @@
+<svg width="48" xmlns="http://www.w3.org/2000/svg" height="48">
+ <defs>
+  <linearGradient id="a" y1="543.8" y2="503.8" x2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1 0 0 .9 0 54.38)">
+   <stop stop-color="#1d1e1e"/>
+   <stop offset="1" stop-color="#44484c"/>
+  </linearGradient>
+  <linearGradient id="b" y1="44" y2="4" x2="0" gradientUnits="userSpaceOnUse">
+   <stop stop-color="#c6cdd1"/>
+   <stop offset="1" stop-color="#e0e5e7"/>
+  </linearGradient>
+ </defs>
+ <g transform="translate(-384.57-499.8)">
+  <path stroke-opacity=".55" fill="url(#b)" stroke-width="2.8" d="m4 4v40h40v-40z" transform="translate(384.57 499.8)"/>
+  <rect width="40" x="388.57" y="542.8" fill="#99a1a7" height="1"/>
+  <path fill="#eff0f1" fill-rule="evenodd" d="m402.57 514.8v15l12-7.5z"/>
+  <rect width="40" x="388.57" y="508.8" fill="url(#a)" rx="0" height="31"/>
+  <g transform="translate(-51-7)">
+   <rect width="40" x="439.57" y="510.8" fill="#566069" height="4"/>
+   <rect width="40" x="439.57" y="514.8" fill="#3daee9" height="1"/>
+   <rect width="2" x="476.57" y="511.8" fill="#eff0f1" rx="1" height="2"/>
+  </g>
+  <g stroke-linejoin="round" stroke-linecap="round" color="#000000" stroke-width="3">
+   <circle fill="#eff0f1" cx="395.07" cy="533.3" r="3.5"/>
+   <circle fill="#3daefd" cx="395.07" cy="533.3" r="2.5"/>
+   <circle fill="#eff0f1" cx="395.07" cy="524.3" r="3.5"/>
+   <circle fill="#3daefd" cx="395.07" cy="524.3" r="2.5"/>
+  </g>
+  <g fill="#da4453">
+   <rect width="2" x="399.57" y="513.8" height="1"/>
+   <rect width="3" x="402.57" y="513.8" height="1"/>
+  </g>
+  <g fill="#95a5a6">
+   <rect width="3" x="408.57" y="513.8" height="1"/>
+   <rect width="6" x="413.57" y="513.8" height="1"/>
+   <rect width="4" x="420.57" y="513.8" height="1"/>
+  </g>
+  <g fill="#bdc3c7">
+   <rect width="4" x="399.57" y="515.8" height="1"/>
+   <rect width="2" x="404.57" y="515.8" height="1"/>
+  </g>
+  <rect width="8" x="408.57" y="515.8" fill="#95a5a6" height="1"/>
+  <g fill="#3daefd">
+   <rect width="2" x="399.57" y="522.8" height="1"/>
+   <rect width="3" x="402.57" y="522.8" height="1"/>
+  </g>
+  <g fill="#95a5a6">
+   <rect width="4" x="408.57" y="522.8" height="1"/>
+   <rect width="4" x="414.57" y="522.8" height="1"/>
+   <rect width="5" x="419.57" y="522.8" height="1"/>
+  </g>
+  <rect width="3" x="399.57" y="524.8" fill="#bdc3c7" height="1"/>
+  <g fill="#95a5a6">
+   <rect width="3" x="408.57" y="524.8" height="1"/>
+   <rect width="1" x="412.57" y="524.8" height="1"/>
+   <rect width="5" x="414.57" y="524.8" height="1"/>
+   <g transform="scale(-1 1)">
+    <rect width="2" x="-419.57" y="533.8" height="1"/>
+    <rect width="8" x="-416.57" y="533.8" height="1"/>
+   </g>
+  </g>
+  <g transform="scale(-1 1)">
+   <rect width="7" x="-406.57" y="533.8" fill="#bdc3c7" height="1"/>
+   <g fill="#95a5a6">
+    <rect width="2" x="-424.57" y="531.8" height="1"/>
+    <rect width="3" x="-421.57" y="531.8" height="1"/>
+    <rect width="9" x="-417.57" y="531.8" height="1"/>
+   </g>
+   <rect width="5" x="-404.57" y="531.8" fill="#3daefd" height="1"/>
+  </g>
+  <g fill-rule="evenodd">
+   <path fill="#eff0f1" color-rendering="auto" shape-rendering="auto" color-interpolation-filters="linearRGB" image-rendering="auto" text-rendering="auto" color-interpolation="sRGB" color="#000000" stroke-width="2" d="m395.07 511.72l-3.501 1.467c0 0 .416 1.902.867 3 .225.551.5 1.121.889 1.617.389.496.965.99 1.745.99.78 0 1.354-.494 1.743-.99.389-.496.664-1.066.889-1.617.451-1.102.869-3 .869-3z"/>
+   <path fill="#da4453" d="m392.57 513.8l2.5-1 2.5 1c0 0-.928 4-2.5 4-1.572 0-2.5-4-2.5-4"/>
+  </g>
+ </g>
+</svg>
diff --git a/www/assets/ifccobie.svg b/www/assets/ifccobie.svg
new file mode 100644 (file)
index 0000000..ce96173
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="64" version="1.1" xmlns="http://www.w3.org/2000/svg" height="64" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
+ <defs id="defs5455">
+  <linearGradient inkscape:collect="always" id="linearGradient4610">
+   <stop style="stop-color:#84cbfe" id="stop4612"/>
+   <stop offset="1" style="stop-color:#84cbfe;stop-opacity:0" id="stop4614"/>
+  </linearGradient>
+  <linearGradient inkscape:collect="always" id="linearGradient4212">
+   <stop id="stop4214"/>
+   <stop offset="1" style="stop-opacity:0" id="stop4216"/>
+  </linearGradient>
+  <linearGradient inkscape:collect="always" xlink:href="#linearGradient4303" id="linearGradient4158" y1="543.79797" y2="503.798" x2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.4378762 0 0 1.1250009 -178.89768 -63.975264)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient4303">
+   <stop style="stop-color:#c6cdd1" id="stop4305"/>
+   <stop offset="1" style="stop-color:#e0e5e7" id="stop4307"/>
+  </linearGradient>
+  <linearGradient inkscape:collect="always" id="linearGradient4218" xlink:href="#linearGradient4212" y1="507.67389" y2="535.79797" x1="390.57144" gradientUnits="userSpaceOnUse" x2="418.57144" gradientTransform="matrix(1.288793 0 0 1.2937921 -117.7943 -153.98804)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient5002">
+   <stop style="stop-color:#2e5d89" id="stop5004"/>
+   <stop offset="1" style="stop-color:#1b92f4" id="stop5006"/>
+  </linearGradient>
+  <linearGradient inkscape:collect="always" id="linearGradient4199">
+   <stop style="stop-color:#2f3943" id="stop4201"/>
+   <stop offset="1" style="stop-color:#4d5662" id="stop4203"/>
+  </linearGradient>
+  <linearGradient inkscape:collect="always" id="linearGradient4191">
+   <stop style="stop-color:#18222a" id="stop4193"/>
+   <stop offset="1" style="stop-color:#566069" id="stop4195"/>
+  </linearGradient>
+  <linearGradient inkscape:collect="always" id="linearGradient4514" xlink:href="#linearGradient4199" y1="507.798" y2="503.798" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.3 0 0 1.2500057 -122.57143 -131.9524)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient4522" xlink:href="#linearGradient4303" y1="46" y2="37" x1="43" gradientUnits="userSpaceOnUse" x2="8" gradientTransform="matrix(1.2888893 0 0 1.3 377.83808 492.59797)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient4530" xlink:href="#linearGradient5002" y1="509.798" y2="537.79797" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.3124999 0 0 1.3571435 -127.67852 -187.07106)"/>
+  <linearGradient inkscape:collect="always" xlink:href="#linearGradient4199" id="linearGradient4545-5-7" x1="3" x2="-1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 1.3124924 -1.2857143 0 426.57143 544.79799)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient4616" xlink:href="#linearGradient4610" y1="-521.79797" y2="-518.79797" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.2500004 0 0 1.3333395 -102.14303 174.93583)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient4616-6" xlink:href="#linearGradient4610" y1="-521.79797" y2="-518.79797" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.2500004 0 0 1.3333394 -102.14303 1218.5319)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient4650" xlink:href="#linearGradient4191" y1="505.798" y2="509.798" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.3 0 0 1.3 -122.57143 -157.13943)"/>
+  <linearGradient inkscape:collect="always" id="linearGradient4530-3" xlink:href="#linearGradient4303" y1="509.798" y2="537.79797" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.3781177 0 0 1.4104872 -154.43824 -215.26546)"/>
+ </defs>
+ <metadata id="metadata5458"/>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1 0 0 1 -376.57144 -491.79797)">
+  <rect width="46.01197" x="385.57144" y="502.79794" rx="0" height="45" style="fill:url(#linearGradient4158)" id="rect4139"/>
+  <rect width="44" x="386.57144" y="503.798" height="40" style="fill:url(#linearGradient4530-3);stroke-linecap:round;stroke-linejoin:bevel;stroke-width:6.2" id="rect4189-8"/>
+  <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4522)" id="rect4188" d="m 385.57143,544.53098 0,3.26699 c 0,1.4764 0.9157,2 2.37948,2 l 41.62053,0 c 0.99999,0 2,-0.99998 2,-2 l -10e-6,-2.99998 z"/>
+  <rect width="41.999992" x="387.57144" y="504.798" height="38.00002" style="fill:url(#linearGradient4530);stroke-linecap:round;stroke-linejoin:bevel;stroke-width:6.2" id="rect4189"/>
+  <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4514)" id="rect4188-1" d="m 385.57143,502.79799 10e-6,-3.00002 c 0,-0.99998 0.99999,-2 2.04503,-2 l 41.95497,0 c 0.99999,0 2,1.00002 2,2 l -10e-6,3.00002 z"/>
+  <rect width="40.00001" x="388.57144" y="520.79797" height="1.999993" style="fill:#84cbfe;stroke-linecap:round;stroke-linejoin:bevel;stroke-width:6.2" id="rect4585"/>
+  <rect width="40.00001" x="388.57144" y="522.79797" height="3.999983" style="fill:url(#linearGradient4616-6);opacity:0.2;stroke-linecap:round;stroke-linejoin:bevel;stroke-width:6.2" id="rect4585-1-9"/>
+  <rect width="40.00001" x="388.57144" y="-520.79797" height="3.999983" style="fill:url(#linearGradient4616);opacity:0.2;stroke-linecap:round;stroke-linejoin:bevel;stroke-width:6.2" id="rect4585-1" transform="matrix(1 0 0 -1 0 0)"/>
+  <rect width="21.999979" x="389.57144" y="514.79803" height="26.999958" style="fill:#eff0f1;stroke-linecap:round;stroke-linejoin:bevel;stroke-width:6.2" id="rect4532"/>
+  <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4218);opacity:0.2;fill-rule:evenodd" id="path4210" d="m 385.57143,502.83645 41,41.96154 5,0 0,-42 z"/>
+  <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4545-5-7);stroke-linecap:round;stroke-linejoin:round;stroke-width:2" id="rect4512-0-1" d="m 426.57143,544.79799 -36,0 0,1.99998 c 0,1.00002 1,2 2.00001,2 l 32,0 c 0.99999,0 2.00001,-0.99998 2,-2 z"/>
+  <circle cx="-546.79797" cy="-423.57144" style="fill:#11d116;stroke-linecap:round;stroke-linejoin:round;stroke-width:2" r="1" id="path4292-3" transform="matrix(0 -1 -1 0 0 0)"/>
+  <rect width="45.999985" x="385.57144" y="499.798" height="2.999989" style="fill:url(#linearGradient4650);stroke-linecap:round;stroke-linejoin:bevel;stroke-width:6.2" id="rect4642"/>
+ </g>
+</svg>
diff --git a/www/assets/images/blenderbim-ifcglobalid.png b/www/assets/images/blenderbim-ifcglobalid.png
new file mode 100644 (file)
index 0000000..376fcf2
Binary files /dev/null and b/www/assets/images/blenderbim-ifcglobalid.png differ
diff --git a/www/assets/images/revit-export-dialog.png b/www/assets/images/revit-export-dialog.png
new file mode 100644 (file)
index 0000000..0ab36e9
Binary files /dev/null and b/www/assets/images/revit-export-dialog.png differ
diff --git a/www/assets/images/revit-params-ifcglobalid.png b/www/assets/images/revit-params-ifcglobalid.png
new file mode 100644 (file)
index 0000000..6f6e974
Binary files /dev/null and b/www/assets/images/revit-params-ifcglobalid.png differ
diff --git a/www/assets/images/revit-settings-ifcglobalid.png b/www/assets/images/revit-settings-ifcglobalid.png
new file mode 100644 (file)
index 0000000..217962a
Binary files /dev/null and b/www/assets/images/revit-settings-ifcglobalid.png differ
diff --git a/www/assets/kopete.svg b/www/assets/kopete.svg
new file mode 100644 (file)
index 0000000..2dd991e
--- /dev/null
@@ -0,0 +1,23 @@
+<svg width="48" xmlns="http://www.w3.org/2000/svg" height="48">
+ <defs>
+  <linearGradient id="a" y1="20.985" x1="23.719" y2="30.733" x2="33.466" gradientUnits="userSpaceOnUse" gradientTransform="matrix(.99522.0977-.0977.99522 385.61 496.52)">
+   <stop/>
+   <stop offset="1" stop-opacity="0"/>
+  </linearGradient>
+  <linearGradient id="b" y1="44" y2="4" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(-1 0 0 1 432.57 499.8)">
+   <stop stop-color="#2f74c8"/>
+   <stop offset="1" stop-color="#4699d7"/>
+  </linearGradient>
+  <linearGradient id="c" y1="522.8" y2="492.8" x2="0" gradientUnits="userSpaceOnUse" gradientTransform="translate(31 10)">
+   <stop stop-color="#7cbaf8"/>
+   <stop offset="1" stop-color="#f4fcff"/>
+  </linearGradient>
+ </defs>
+ <g transform="translate(-384.57-499.8)">
+  <path fill="url(#b)" fill-rule="evenodd" d="m428.57 503.8v30h-20l-11 10v-10h-9v-30z"/>
+  <g stroke-linejoin="round" stroke-width="2">
+   <path opacity=".2" fill="url(#a)" d="m413.6 508.31l-1.093.898c0 0 3.067 4.093 3.066 9.09 0 1.043-.142 2.028-.337 2.958l-3.662-4.459h-4.07l-4.929-6h-2.999l-.002 3 16.429 20.01h12.565l.008-8.01-13.218-15.737c-.433-.522-1.757-1.748-1.757-1.748m-11.03 14.486h-3v2.999h.897v.459c-.249.532-.897.542-.897.542l-.002.999 7.05 7.373 1.944-1.369 3.041.002z"/>
+   <path fill="url(#c)" d="m413.6 508.32l-1.093.897c0 0 3.066 4.094 3.062 9.09-.004 5-2.838 9.02-2.838 9.02l.897 1.093c0 0 4.934-3.107 4.939-10.11.005-7-4.967-9.993-4.967-9.993m-11.03 2.481h-2.999l-.003 3h3zm8.997 6.01l-6-.005v3l5.999.005zm-9 5.993h-3v2.999h.999c-.001 1-.999 1-.999 1l-.002.999 1 .002c2 .001 2-1.999 2-1.999z"/>
+  </g>
+ </g>
+</svg>
diff --git a/www/assets/v0.6.0.atom b/www/assets/v0.6.0.atom
new file mode 100644 (file)
index 0000000..cf94f4b
--- /dev/null
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en-US">
+  <id>tag:github.com,2008:/IfcOpenShell/IfcOpenShell/commits/v0.6.0</id>
+  <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commits/v0.6.0"/>
+  <link type="application/atom+xml" rel="self" href="https://github.com/IfcOpenShell/IfcOpenShell/commits/v0.6.0.atom"/>
+  <title>Recent Commits to IfcOpenShell:v0.6.0</title>
+  <updated>2019-11-07T06:59:37Z</updated>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/609ef5f3a782e4063097937951221b38b9efa9f2</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/609ef5f3a782e4063097937951221b38b9efa9f2"/>
+    <title>
+        Add support for exporting survey points geometry
+    </title>
+    <updated>2019-11-07T06:59:37Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Add support for exporting survey points geometry&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/0477910fc066d3d3cc3067d3566b3ecc62d4ef30</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/0477910fc066d3d3cc3067d3566b3ecc62d4ef30"/>
+    <title>
+        Add support for export of imperial units
+    </title>
+    <updated>2019-11-07T05:40:57Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Add support for export of imperial units&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/85a3a97d13814db43763e02f1dfaa5be9706b2fb</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/85a3a97d13814db43763e02f1dfaa5be9706b2fb"/>
+    <title>
+        Fix import of conversion based units
+    </title>
+    <updated>2019-11-07T03:20:54Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Fix import of conversion based units&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/9eb035e6f5bf54d7ca0b17d1f77233d0a0a318c5</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/9eb035e6f5bf54d7ca0b17d1f77233d0a0a318c5"/>
+    <title>
+        Fix export bug with uncast attribute data types
+    </title>
+    <updated>2019-11-06T22:11:25Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Fix export bug with uncast attribute data types&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/2a407f007cac5cda704af837c15ad3d41398291a</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/2a407f007cac5cda704af837c15ad3d41398291a"/>
+    <title>
+        Document fontconfig dependency for occt 7.4
+    </title>
+    <updated>2019-11-06T13:05:05Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Document fontconfig dependency for occt 7.4&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/5992cdfdafc0450d0cc2cd9157703749a6de13af</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/5992cdfdafc0450d0cc2cd9157703749a6de13af"/>
+    <title>
+        Build script changes for occt 7.4
+    </title>
+    <updated>2019-11-06T11:03:32Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Build script changes for occt 7.4&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/0d7d843fc99189371d10a5daed5e14f9f2c42b7d</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/0d7d843fc99189371d10a5daed5e14f9f2c42b7d"/>
+    <title>
+        Support extruded vector curves and tilts
+    </title>
+    <updated>2019-11-06T06:37:51Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Support extruded vector curves and tilts&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/fae405bfe0d2c2f0eced09b80496659745a0e967</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/fae405bfe0d2c2f0eced09b80496659745a0e967"/>
+    <title>
+        Add support for importing curves, such as for survey point curve sets
+    </title>
+    <updated>2019-11-06T00:10:51Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Add support for importing curves, such as for survey point curve sets&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/c59c74aeed98333bdbb9607560468934cac814e4</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/c59c74aeed98333bdbb9607560468934cac814e4"/>
+    <title>
+        Confitionally select num_bytes, see #699
+    </title>
+    <updated>2019-11-05T16:23:13Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Confitionally select num_bytes, see #699&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/e36357d38196532f44d4a0b875b4f13afb83521c</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/e36357d38196532f44d4a0b875b4f13afb83521c"/>
+    <title>
+        Log error about missing triangulation
+    </title>
+    <updated>2019-11-05T14:47:02Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Log error about missing triangulation&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/8d96f40934a12483eaec47fb90e9a36dcd81f62d</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/8d96f40934a12483eaec47fb90e9a36dcd81f62d"/>
+    <title>
+        Check for inner wires before reinitializing face builder
+    </title>
+    <updated>2019-11-05T14:27:39Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Check for inner wires before reinitializing face builder&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/a1253b004d66406ecc457c46cedd1adf0b86fca7</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/a1253b004d66406ecc457c46cedd1adf0b86fca7"/>
+    <title>
+        Fixes for closed/non-periodic nurbs curve edges #586
+    </title>
+    <updated>2019-11-05T14:13:34Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Fixes for closed/non-periodic nurbs curve edges #586&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/ee79401a34232d7fdce697db5ad7ee8f4797c270</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/ee79401a34232d7fdce697db5ad7ee8f4797c270"/>
+    <title>
+        Correct attribute_filter notice
+    </title>
+    <updated>2019-11-05T13:43:37Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Correct attribute_filter notice&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/37990310eb0abd5c1c8cee51a2eeb77c1c75381c</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/37990310eb0abd5c1c8cee51a2eeb77c1c75381c"/>
+    <title>
+        Experimental half-broken support for curves added
+    </title>
+    <updated>2019-11-05T10:49:17Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Experimental half-broken support for curves added&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/d806c6ab551c9e319bf3c2ab386326bf72f7c16f</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/d806c6ab551c9e319bf3c2ab386326bf72f7c16f"/>
+    <title>
+        Cull-backfaces and cache geometry creation in IfcDoc
+    </title>
+    <updated>2019-11-02T09:08:34Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Cull-backfaces and cache geometry creation in IfcDoc&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/ed013db0119aaf8bb8ddbdbde6ac1cc2417fc00f</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/ed013db0119aaf8bb8ddbdbde6ac1cc2417fc00f"/>
+    <title>
+        throw exception on invalid nested aggregates
+    </title>
+    <updated>2019-11-01T15:11:46Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;throw exception on invalid nested aggregates&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/5fcee9dfe5ff1eca8e8d63ba1c613fe2e1e4f5d3</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/5fcee9dfe5ff1eca8e8d63ba1c613fe2e1e4f5d3"/>
+    <title>
+        spherical toroidal surface
+    </title>
+    <updated>2019-11-01T15:11:26Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;spherical toroidal surface&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/159ce931b4dc9cc8a4841f142baed759bc41462d</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/159ce931b4dc9cc8a4841f142baed759bc41462d"/>
+    <title>
+        Break up sweeps along adjacent non-linear segments.
+    </title>
+    <updated>2019-11-01T14:06:04Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars1.githubusercontent.com/u/1096535?s=30&amp;v=4"/>
+    <author>
+      <name>aothms</name>
+      <uri>https://github.com/aothms</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;Break up sweeps along adjacent non-linear segments.&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/2d0d0ed7862b2224b4b21b42c583b58ec636062f</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/2d0d0ed7862b2224b4b21b42c583b58ec636062f"/>
+    <title>
+        New UI to add and remove classifications
+    </title>
+    <updated>2019-11-01T06:44:10Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;New UI to add and remove classifications&lt;/pre&gt;
+    </content>
+  </entry>
+  <entry>
+    <id>tag:github.com,2008:Grit::Commit/635ad552d32e380457e9718846426ce6a901a6d5</id>
+    <link type="text/html" rel="alternate" href="https://github.com/IfcOpenShell/IfcOpenShell/commit/635ad552d32e380457e9718846426ce6a901a6d5"/>
+    <title>
+        New UI to create, edit, and save aggregates
+    </title>
+    <updated>2019-11-01T05:32:11Z</updated>
+    <media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/88302?s=30&amp;v=4"/>
+    <author>
+      <name>Moult</name>
+      <uri>https://github.com/Moult</uri>
+    </author>
+    <content type="html">
+      &lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;New UI to create, edit, and save aggregates&lt;/pre&gt;
+    </content>
+  </entry>
+</feed>
index a017374456e706a50412a58a4e154daa6091b366..d47b64418f2160b6d4c3fc8d97c3bc13ed7b9eb8 100644 (file)
@@ -128,6 +128,24 @@ footer {
     margin-top: 0px;
 }
 
+article {
+    margin: 20px;
+    display: inline-block;
+    border-top: 1px solid #CCC;
+    margin-bottom: 20px;
+}
+
+.third {
+    float: left;
+    width: 33%;
+}
+
+article h3 {
+    /*border-top: 2px solid #93A8AC;*/
+    border-left: 5px solid #93A8AC;
+    padding-left: 20px;
+}
+
 .note {
     font-size: 0.8em;
     color: #777;
@@ -165,6 +183,10 @@ footer {
     width: 48%;
 }
 
+article {
+    
+}
+
 td, th {
     padding: 10px;
 }
@@ -193,7 +215,7 @@ td.partially-supported {
     background-color: #fbeea2;
 }
 
-@media only screen and (max-width: 600px) {
+@media only screen and (max-width: 800px) {
     .left-half { float: none; width: auto; }
     .right-half { float: none; width: auto; }
     h1 { float: none; height: 50px; line-height: 50px; }