Sunday, March 5, 2017

BANKING ON FORMIT

It's strange really how we develop loyalties to brands.  I took an interest in the Mac very early on, when it was still a funny little box with a monochrome screen, (and Windows didn't really exist yet). But based in Africa as I was, I could never afford one and gradually I grew tired of all the hype, the smug superiority and ultimately developed something of an aversion to all things Apple.  It was a similar story with Archicad. I dabbled very early on, long before Revit came on the market, and could so easily have become a faithful devotee. But life took a different turn and ended up a Revit junky.

I was a bit late to jump on the touch screen band wagon and when the time came I opted for a "Windows ecosystem" I took to Windows 8 from the beginning, and never really understood the fashion for Microsoft bashing. But it's no good complaining about other people's prejudices if I'm not willing to tackle my own.  So early last year ago I bought myself an iPad.  Three birds with one stone: a new sketching device, access to Autodesk apps, put my prejudices to rest.  The apple pencil has been a bit disappointing, but there are many positives.  Ironically, the Microsoft apps are especially good.



Emboldened by this I recently replaced my work Blackberry with an Android version.  I still love my Windows phone, but not enough people agree with me to support a full range of So I am enjoying having feet in all 3 camps, and this weekend I found myself taking another look at the iPad Formit app.  It started off as something to do as I lay in bed with a dose of flu.  I downloaded site imagery for the Bank of England and started to mass out Soane's Bank from memory.  This was more by accident than design, but I soon realised it was a very positive learning experience, making me think harder about proportions and relationships, testing my understanding, raising new "WHY" questions.



To record these observations, I decided to open One Note on my Blackberry.  It seemed less disruptive to my train of thought than switching apps, kind of a poor man's version of the dual screen.  All the while I was learning on two fronts simultaneously: gaining fluency with the iPad user interface for Formit while probing my understanding of the basic massing of the bank.  This was something I tried to do when I first started Project Soane, but it's very different coming back to it almost two years later.  The difference between sketching to explore something totally new, and sketching to crystallise, summarise long familiar material.

So as I worked at my dual problem, all kinds of remembrances flashed by.  All the time I spent hand-sketching and painting as a schoolboy.  My many previous reflections on what it means to sketch in a BIM world.  The foreword I wrote for Paul Aubin's book. Memories of using Sketchup 15 years ago



If Renaissance Revit was about symbiosis (the positive feedback loop of two intertwined explorations) Project Soane has become an entire ecosystem. Architecture, Social & Economic History, BIM tools & Processes, Soane himself, the Industrial Revolution, the functional organisation of the bank.  The interaction between these mental domains has been very exciting for me.  So why can't the world of push-pull modelling become another element in the mix?



Of course there is a downside.  All those awkward little wedges that have to be cleaned up for example.  How well I remember those. And I find myself asking why am I doing this in Formit? It's less precise than Revit. I'm drifting away from the "single source of truth" approach. So how will this help me?  Isn't it duplication of effort?  What is the point of sketching in a BIM world? 


But practice makes perfect. And of course there is value in starting from scratch, in rebuilding something from memory.  The guessing game is revealing. I have talked before about the insights that come from playing a guitar song on the piano. There's something of that in this exercise. 


Working from memory I make mistakes, and the nature of those mistakes can be revealing. Sketching is about keeping things loose, letting subconscious intuitions come to the fore.  But those intuitions are also honed by practice.   I am rediscovering lost skills: the ability to judge proportions by eye, for example, instead of forever typing in a dimension.



Sadly my attempts to hand sketch over exported images from Formit are rather disappointing.  Not sure what value this is adding.  Still, let's soldier on, Rome wasn't built in a day after all.  Try to learn from my mistakes.  Loose sketching isn't always the answer that the situation demands.


When I was a teacher, I was always looking for activities, to create opportunities for "learning by doing".  Drawing from memory was one of my favourites: a way to stimulate deeper questioning by setting up a kind of game.  You soon find out whether you have really grasped a concept if you try to encapsulate it in a diagram.


Some years ago, when I was travelling regularly to Mozambique, Malawi & Botswana I started playing this game with the Map of Africa. So it occurred to me that it would be fun to try this out on the iPad. This was around the same time as the Sketchup work I showed earlier, and I hadn't attempted it since, so I was quite chuffed with the results.  So I thought "why not do a second version by tracing over an actual map?"


This turned out to be quite a useful way of practising control of the tools, and I was inspired to process the result in a number of ways: inverting the image and filling the boundaries to highlight countries in different colours.  Using layers to isolate the elements and export alternative versions.  Finally I decided to make a second sketch from memory.


Aided by the simplest of grids, dividing the sheet into 4 quarters, I was able to draw a much better outline, fresh as I was from the tracing exercise.  I tested this by overlaying the traced fill. This reveals where my mental image is still wavering, but on the whole, the relative sizes and proportions are pretty good.  So why not take a similar approach to Project Formit.  Take a plan exported from Revit and make a second, more accurate model of the Bank.


For this I switched to the Web version of Formit and took notes as I went along using my Windows phone. Might as well make the most of this idea of switching toolsets and approaches to gain fresh insights.  I started with a simple extrusions, applied a translucent material and switch to a top view to begin tracing the internal structure.  As the work progressed it was useful to add opaque colours to the completed elements so I could see the form more clearly.



So what did I learn? The simpler, more abstract form highlights the contrast between Taylor's set pieces and Soane's intricate jigsaw puzzles.  It's partly a difference in temperament of course, but also I think of the complexity of the planning issues they faced. Another thing that comes out quite clearly in the green zone, is the increasing intensity as you approach the directors parlours.  That was really the nerve centre of the Bank, so it's quite satisfying to see it expressed in a diagram like this.


Clearly there is a lot of value in abstraction: in drawing & modelling something repeatedly and boiling it down to its essence.  This also showed up when I started to map out the rhythms of the Screen Wall Elevations.  They are rather easier to understand when you strip away the excess detail.  Once again I am reminded of my desire to do this kind of analysis right at the beginning of my efforts.  But of course it's not so easy to do when you haven't yet come to grips with your subject matter.



Once again it was revealing to compare the first effort, (purely from memory and using the touch interface) with the second more controlled attempt (traced over an image from my Revit model, using the extra capabilities of the web version of Formit)



And so I continue to ask the question of how to bring a more intuitive, free-flowing approach to the world of BIM.  So far, Formit has been an occasional diversion, rather than a regular counterpoint to Revit (my trusty BIM pencil) but maybe that can change.  Maybe I can find useful bidirectional workflows. 

Digital sketching also remains tantalising & elusive. Perhaps it will never be "just the same" as drawing on paper, but it doesn't have to be.  However I do need to find ways of more quickly and easily achieving results that I find deeply satisfying.  It needs to become a more transparent medium for visual thinking. 

Saturday, February 25, 2017

DEHOSTING

Via Project Soane I have come into contact with a young gentleman called Karam Baki who began using Revit as a teenager. He is an architecture student, based in Jordan, and you can get a feel for the breadth and energy of his enthusiasms at this link.

Karam's Gallery



I was particularly impressed with his model of Gerrit Reitveld's Schroder House, a building that has fascinated me for about 50 years now. I did start to model it on 2011, but didn't get very far.


Karam appears to have captured it in the most exquisite detail. I would love to talk about this topic at length, but that will have to be another day.  Here is Karam's version



I did write a short piece about the house in 1991 as a History assignment when I was a "mature student" in Joburg, returning to Architecture after a 16 year detour through bricklaying and education. Here is my analysis of the site (hand drawn though I had started to use AutoCAD by then). Mrs Schroder was a young widow, living on the edges of middle class society, both literally and metaphorically. She an Reitveld collaborated to create a very unusual house for a single parent.  It turned it's back to the conventional world, looking out over open fields and catching the sun through open corners.



A second, hand-drawn diagram describes the planning: a dense, cellular ground floor, with an open-plan, flexible living space above.  As I remember, she rented out the guest room at the back to a lodger for extra income, which is why it is isolated from the rest of the house with its own entrance.



I couldn't resist including the concluding paragraph of my assignment here, which conveys the significance I attached to this project at that time when I was coming in from the wilderness to rejoin the profession, somewhat reluctantly after an extended period of teenage rebellion.



But back to Karam. He has developed a method for switching the hosting style of Revit families which is well worth a look. I first became aware of this via a post by Luke Johnson. It's based on a  hack that's been around for many years which allows you to create loadable families that belong to system categories.

What Revit Wants

You start by creating an in-place family. Let's say you choose to make it a ceiling. If you make a group within that family, that group will appear in the Project Browser (under Groups). Now you can save a group out to an external file, and normally this would be a project. This is the basis of the "binding" workflow that allows you to convert links to groups and vice versa.

But, if you save the group while in edit mode, it becomes an RFA file, with the same category as the in-place family from which it originated. Voila! A most ingenious trick with unknown and potentially dangerous consequences.
Karam has created 4 such families and nested them into a generic model template.


Now if you load a ceiling hosted family, it will attach itself to the ceiling object. Delete the other 3 system elements, adjust the origin and save. You now have an un-hosted version of your original hosted family. You can watch Karam's video for further clarification.

Kconvert Video

It's very useful if you want a window to lie in the plane of a sloping wall or roof, for example.  The down side is that you have to link through all the parameters (something that Karam does at lightning speed in his video) and of course you get an extra layer of nesting, plus the fact that this is an unsupported hack. 

Actually you get two extra layers of nesting if you want it to be face based.  The saved "Kconvert" with the wall-hosted object trapped inside will come in perpendicular to whatever face you place it on.  Haven't quite figured out the logic of this, but Karam recommends nesting this into a face-based template and adding a void extrusion to cut your hole.  More linking of parameters, and it will insert itself into almost anything.  Quite neat.


Give it a go and see what you think. It may come in handy if you have a number of families that you really don't want to remake from scratch.  Let's say they are wall-hosted windows that you want to convert to roof lights.

Just in passing, my own approach to flexible hosting is to make families as un-hosted elements in the first place, then nest these into whichever template you need. There are two solutions to the parameter linking chore. You can make your nested component a shared family, or you can develop a system of standardized parameters and fixed naming of nested elements.


This is the basis of my modular door families which I  presented as a lab in Porto and will also be sharing at BiLT Asia in Singapore.

Returning to Karam's method, I wondered if this would help me to unhost the Duravit families I reviewed recently. You might not want these to be wall hosted. Let's say you want to mount them on timber panels for example. Or maybe you want to nest them into a family that incorporates a concealed system, boxed out with a tile facing and a marble shelf.


Unfortunately the Duravit families have dozens of text parameters, which would be very laborious to link. My first thought was to make the nested component shared, but that resulted in some rather odd behaviour. The nested component becomes invisible when shared. I guess the logic is that it is actually a wall-hosted element, but you have made it's host invisible. If you disable the visibility of an element from within family editor, you are basically excluding it from the project. It won't schedule for example. If you delete a wall, you will also delete any hosted elements. So Revit is refusing to recognize a wall-hosted element that has no host.

Now both Luke and Karam mention another hack for switching hosting behaviour. This uses the Copy-Monitor feature, and was described by Dave Baldaccino way back in 2014

http://do-u-revit.blogspot.ae/2014/03/creating-non-hosted-families-from.html

This turned out to be a very simple way of converting my  Duravit content because I already have a collection file. Simply link this into a blank project and run copy-monitor in batch mode for the plumbing category only. This creates a new collection file where all the wall-hostel elements have become face-based.


Now for the magic part. Dave mentioned in his post that if you delete the extrusion in a face-based family, it becomes a normal unhosted element. You can see this immediately in the properties dialogue which sprouts two new parameters. (tick boxes for workplane based and always vertical)


This set me off on a little adventure, cleaning up one row of my collection to make them "how I would have done it ". There are several steps.

 1. Delete the extrusion
 2.  Adjust the origin
 3. Standardise layer names
 4. Shorten family names



For the families that are already un-hosted I only needed steps 3 & 4. Similarly for the face based"vanity basins" which have a void in them to cut a hole into whatever surface they are placed on. I saw no reason to make a second version of these without the extrusion.

Just for fun, I took one of the unhosted families and nested it into a wall based template, making the nested element shared so that you get all the parameters. Seems to me that's how they should all be made. Then you can have wall hosted and free-standing versions in the same project that schedule correctly as being the same item. You could even make a third, floor hosted version if you really wanted. Perhaps you might need to place several of them on areas of raised flooring, split level bathrooms if you like.


Since I developed my modular door families I have started to see other applications for the same principles. Windows, obviously, but also classical columns where you might want to mix and match shafts and capitals, switch between different templates (architectural v structural, one level v two level) That's another post I think. Probably several. There will be another soon about classical columns, but also I think I should develop a modular approach to plumbing families.
Let's just set the scene with a little teaser.

Aaron Maller has weighed in with his firmly held belief that all symbolics are bad. Not sure if he extends this as far as door swings, that may be the one exception that puts his rule "to the test". (the original meaning of proves)

I agree with him that native geometry should be used for plans and elevations wherever possible. Don't spray masking regions and symbolic lines all over the place for no good reason. The geometry will always give you more predictable results. You won't see the front when it should be the back for example.

Using the geometry will work for relatively simple geometry and sharp edges. It won't look so good with smooth, rounded forms and complex curves. These are common shapes plumbing fixtures and soft furniture, resulting in lines of variable thickness that fade away to nothing in places. Your client on the other hand may be expecting crisp, even lineweights.


Another advantage of symbolics is the level of control you get for different scales. You can express a narrow groove as a single line at medium scale, and as two lines at fine. In the geometry, that groove is probably not a separate element. You can't control it's graphics independently for different scales. The whole thing is either on or off.

I doubt that I have convinced Aaron yet and I'm open to learning how to further reduce the need for symbolics, but here's  a diagram of my idea for modular plumbing families.


You separate out the geometry and the symbolics as two nested families. That way it's easy to switch off the symbolics if you prefer. For the geometry you can have different versions that you swap out depending on need and preference. Heavyweight v Lightweight, Mesh v Solid, CAD import v Native Revit, fixed v parametric.  The resultant plumbing family can stand on its own, or you could choose to nest it into a hosted template.  This hosting family would be a kind of ghost object, not counted in schedules.


I intend to develop this further in a future post. The idea is to make families more flexible, easy to change the hosting behaviour, easy to switch between lightweight and heavyweight versions, respond to individual preferences & project requirements.

So thankyou Karam, and all the other guys who contributed to this thought process which has progressed my understanding of hosted families considerably and occupied me productively, playing with Revit for a couple of days.  What joy!

I will sign off with a compilation of pictures from my only visit to Jordan, which was in 2011.  I really enjoyed the city of Amman, although my stay was far too brief.  It has a sense of history and culture that is harder to find here in Dubai.


Sunday, February 19, 2017

STANDARDISED IDEALS

This is an older, dormant post from last year. I am posting it now as a follow-on to last week's discussion of Duravit families.  It's about the largest sanitary ware group in the UK who have made a huge commitment to BIM. Brands include Ideal Standard, Armitage Shanks & Twyford.  This post is mostly about Ideal Standard.


There are three distributions available, one through the NBS, one through BIMobject and one through bimstore.  The differences are minor but interesting. All the objects cite the manufacturer as Author.  The NBS versions also carry an NBS Certification number.  The bimstore versions carry a "distributed by" label.

They are all sourced from the same geometry, most of which is not native Revit.  The exceptions are the accessories (eg flush button & seat)  I am guessing that the curved geometry was created using Inventor, but it could be from Rhino or some other software.  Whatever the case, it came into Revit as a CAD import.  The main difference between the two versions is that bimstore have exploded the import to create freeform geometry. 



This makes the file slightly heavier, but removes some unsightly seams.  This makes for much cleaner elevation views, which can be very important on projects with an Interior Design component.



It would also make it possible to apply material parameters, but this opportunity has not been taken up.  In both versions, the material for the pan and cistern is baked in to the family.  Rather oddly, it is named "Snow".  I thought this might have been a manufacturer's euphemism, but the catalogues actually list the colour as "white (01)" 


That's the only colour option that is available so baking it in seems reasonable.  Except that the seat and the flush button have been given material parameters in some cases, and the material naming conventions are quite varied.  It's not obvious to me why you would need so many different material names for what is basically the same white glazed porcelain in different fittings from the same manufacturer.



Both versions have a detail item placed in floor plan view, which is also based on a CAD import.  This makes for crisp floor plans, but if you want to use over-rides it can be tricky.  Changing the colour of the category (Plumbing Fixtures) has no effect.  You have to go to "imports in families" and choose the subcategory "0"  If you want to control the lineweight or colour for plumbing fittings, you don't expect to go detail items or "imports in families" to do it.  Even worse, making changes in these other locations might effect objects in completely different subcategories.



The other point to note is that there is no masking region in the detail item, so tile patterns will show through.  That may be what you want, but it's not the way that I like it.  Also, because the symbolic work is in a nested detail item, graphics control gets complicated.  You have to look in 3 places to check on lineweights and colours.  Furthermore, in elevation views we see the solid geometry (not drafting) This results in uneven line quality, as well as visible seams.



Ideal Standard are quite right to boast "Ready When You Are".  They have released a very extensive range of products as Revit families and a lot of care and skill has gone into the preparation.  But of course it's not perfect, and I make these comments in the belief that a third party review is always helpful.


While I'm on this topic I should mention that the National BIM Library website is improving every time I visit it.  It's now very easy to see which families you have downloaded before, and whether or not there is an update available.  Selecting multiple objects to download as a single zipped package is also well implemented.  They are obviously in for the long haul, and committed to the idea of careful review and improvement based on user comments. 



The WC objects are packaged up so that the whole object reads as a WC pan, with cistern and seat as shared, nested families.  So you can schedule these separately.



I don't really understand why these families have been made as "Face Based"  Nor why the symbolic lines are nested as "Detail Items"


I would prefer to have a family that sits at floor level, rather than having to search for the correct "nominal height" then check that each instance in the project is correct.  I know there can be problems with wall-hosted families when copy-monitoring between disciplines.  I would be inclined to make all my plumbing families free-standing.  After all, you can always make it shared, then nest it into a blank face-based (or wall-hosted) template if you really want to.



Some of the families have visibility switches to allow for different combinations: optional configurations. Full pedestal v Half pedestal for example.


One of the big differences between these families and the Duravit collection is that these are based on solid geometry, rather than the surface meshes employed by Duravit.  Strangely, I have previously downloaded solid geometry from the Duravit website (SAT files) and used it to build families of my own.  Solid geometry tends to be heavier, especially if you round off all the edges.  Possibly this is why the Ideal Standard families contain sharp edges.  Even so, the average file size is higher than for Duravit.  Of course you get smoother curves, no faceting at all.  But perversely there are more unsightly seams.  So it's an interesting comparison but I think I'm inclined to go for the mesh.


I did some simple tests with 1500 instances of a WC family, timing the process of selecting them all with a window, and moving them by a few metres with two picks of the mouse.  The Ideal Standard families and Duravit families gave very similar results: about 35 seconds to select, and another 35 to move.  Setting the view to coarse scale had very little effect, despite the fact that the Duravit families display only a simple cuboid.  Also the results were almost the same, whether in plan view or default 3d.  The third test was made with a simple generic WC family.  It contains native Revit geometry: extrusions softened by void sweeps.  I made it two or three years ago and am very proud of it, but have never tested it's performance systematically before.  The results were dramatic.  About 1 second to select, 2 seconds to move.
 
These tests reinforce my suspicions.  Coarse scale representations are very useful in making drawings legible different scales, but much less effective in improving performance.  I don't see much point in the use of boxes to represent a WC at coarse scale.  Simple, generic, placeholder families however, do seem to be very effective.  In other words, the families we have been examining for Duravit and Ideal Standard are all very well, but in a large hotel or hospital project with hundreds of instances, it may be better to use a simple placeholder, with appropriate embedded data. 

Of course the geometrically accurate families would be really useful for Interior Design studies, detailed development of typical room layouts, and of course for any project where large numbers of fittings are not required.

But a word of caution.  Are these tests really meaningful?  Out of interest, I placed 20 instances of the Duravit family into a blank family template, loaded this into a project and copied it out 70 times.  When grouped like this 1400 instances respond almost as rapidly as my simple generic placeholder.  So maybe the tests say more about the behaviour of very large selection sets than the usefulness of these detailed families.



Finally I did a close study of one particular fitting, comparing the three versions in some detail.  Undoubtedly they are all based on the same geometry.  NBS and BIMobject simply organised their product data slightly differently, whereas bimstore chose to eliminate seams by exploding the CAD imports.



The naming conventions for the parent families vary somewhat, but the nested components retain their original names, which seem to match the NBS convention.  I added suffixes so that they would not overwrite each other. This could cause some confusion if you mixed families from different sources. The shared nested components could have the same name but different geometry (exploded in the case of bimstore)  Could be a toilet seat or a pedestal, any component that is common to several different products.  Seems to me it would be good to have a three letter code in the name of all families indicating the source.  This would protect against cross-contamination of shared nested components.  


When it comes to naming of materials and render appearances, once again there are long elaborate conventions.  Seems to me if you have a 3 letter code for the manufacturer (ISI) you don't need to follow up with the full name.  As you can see the names end up far too long to fit in the default dialogue boxes.  Then, just for a laugh, most of the white porcelain is just called "snow".  Wouldn't it make sense to have a target length for names, 32 characters perhaps?


Taking the bimstore families as an example, I have drawn out a full nesting diagram.  It's surprisingly complex.  I'm not sure why it was necessary for have separate detail items for the sub-components, basically duplicating the information in the parent family which has a detail item for the entire assembly.  Personally I wouldn't use detail items at all, nor would I use 2d CAD imports.  I would rather have a plumbing family with 2d symbolics inside, nested into the parent just as the detail item is.  Keep everything under the Plumbing Fixtures category to simplify graphics control.


The "fine print" in this diagram shows a set of jpegs contained in the bimstore package, including the suffix "bragbox".  I take this to mean they are proud of the better appearance resulting from exploding the CAD imports.

Final comment?  Everyone involved might reflect on the complications arising from three different organisations distributing the same content with minor variations.  I'm not blaming anyone, just saying that we need to acknowledge the learning curve still facing us all in the effort to create truly consistent content.


Oh, and the file sizes.  Solid geometry seems to result in almost double the file size, when compared to mesh.  Exploded geometry doubles the size again.  I'm voting for mesh.