Sunday 27 February 2011

Revit & Novell Woes

Ok, this one is a little off-piste. We've had a few problems running Revit on Windows 7 (64-Bit) through a Novell Network. The information out there is a bit piecemeal, so the aim of this post is to summarise the problems and solutions in plain english and add some context



  • Scenario 1



User 1 opens a local copy of a workshared Revit file and starts working. User 2 opens their local copy. User 2 hits 'Synchronise with Central'  and bang, BSOD (Blue Screen of Death) with 


APC_INDEX_MISMATCH 


This error was resolved by installing Novell Client SP1 for Windows


Deep breath, and carry on



  • Scenario 2



With Scenario 1 sorted, work rolls on, 'Synchronise with Central'  functioning fine. Pause work for a second to stare out of the window and bang, BSOD again with 


NCCache.sys


This error was resolved by turning off the 'Client File Caching Enabled' & 'Level 2 OpLocks Enabled' options, server & client side


Ok, surely third time lucky



  • Scenario 3



Plugging away fine, No trace of the problems in Scenario 1 or 2. Finish working, exit from Revit and yes, you've guessed it, bang, BSOD with


System_Service_Exception


On restart, Revit is now unable to acquire a license with a '[-5.412.0] error'


This was resolved by firstly, installing Novell Client 2 SP1 for Windows (IR5). This dealt with the BSOD error.  To sort the license issue, make sure Revit is exited. Browse to C:\ProgramData\Autodesk\Adlm and rename the 'cascadeinfo.cas' file to something else. Restart Revit; the program will now re-aqcuire a fresh license file


So far, fingers crossed, everything seems to be running ok. If we get any more issues, I'll append this post. (Apparently, there are still ongoing issues according to Novell). Next post, no more network stuff; normal service will resume.



Tuesday 22 February 2011

Create a Manhole - A Method

This post describes a method for creating a manhole cutout for a slab. Whilst this is not a particularly complex family, the aim is to demonstrate nested families, reporting parameters and formulas working together


Brief:


Create a manhole cutout for a slab, complete with recess for a cover. Add symbolic representation that will automatically change from a Pit to  a Hole when the void punches through the slab


Shopping List:


  1. Detail Item Family for Hole Symbol
  2. Detail Item Family for Pit Symbol
  3. Profile Family for Recess Void
  4. Generic Model Family for Manhole


  • Detail Item Family for Hole Symbol





  • Create a new Detail Item Family from the Metric Detail Component template
  • Add Reference Lines in a box and dimension to the Reference Planes. Use of Reference lines in this way is neater with shape handles than Reference Planes
  • Add 'Width' & 'Depth' parameters and set to 'instance'. 
  • Draw Symbolic Lines corner to corner and lock off to the Reference Lines


  • Detail Item Family for Pit Symbol





  • Open the 'HoleSymbol' Detail Item Family and save a copy as 'PitSymbol'. This is because the parametric 'rig' is identical. Delete the Symbolic Lines
  • Add a triangular Filled Region and lock of to the Reference Lines as shown. Whilst in sketch mode, dimension the short edge and add the parameter 'Symbol Depth'. Set parameter to 'instance'. Finish the Filled Region
  • Mirror the Filled Region across the diagonal as shown. Select the copy and hit 'Edit Boundary'. Select the dimension and add the parameter 'Symbol Width'. Set parameter to 'instance'.  Lock the sketch lines off to the Reference Lines
  • Create a new number parameter called 'PLock' and group under 'Constraints. In the formula box, enter 1. 
  • In the 'Symbol Width' parameter formula box, enter (Width*0.2)*PLock. While not strictly necessary in this example, this is a good method for preventing the values looping back. It is desirable for the 'Symbolic Width' to be driven by the 'Width' value. Without the second 'PLock' parameter, the value for Symbolic Width is left open, making the reverse true, which may produce an undesirable result. Do the same for the 'Symbolic Depth' parameter

  • Profile Family for Recess Void





  • Create a new Profile family from the Metric Profile template
  • With the centre origin to the top left, add two new Reference Planes for the bottom and right of the rectangle. Dimension and add parameters 'Width' & 'Depth'. Set parameters to 'type'
  • Use the pick tool to add the Profile lines to the Reference Planes and lock off
  • Save as 'Rectangle'




  • Generic Model Family for Manhole





  • Create a new Generic Model family from the Metric Generic Model Floor Based template
  • On the plan view, create a rectangular Reference Line 'rig' in the same way as the Detail Item symbolic families earlier. In this case however, add the 'Width' and 'Depth' parameters as 'shared' and set to 'type'. This is to allow the manhole to be scheduled/tagged
  • In an elevation view, add a Reference Plane and set to 'Bottom'. Dimension and add a shared parameter 'Thickness'. Set as 'instance'
  • Add a void extrusion. Lock the void off to the Reference Lines/Plane. Hit the 'Cut' command and cut away the slab
  • Load the 'Rectangle' Profile family. Add two new shared parameters, 'Rebate Width' & 'Rebate Depth'. On the type properties of the Profile Family, link the 'Width' & 'Depth' to these respectively
  • Create a new Void Sweep. For the path, select 'Pick Path', then select 'Pick 3D Edges' and pick the edges of the hole. For 'Profile', select the 'Rectangle' Family. Finish the sweep, then use the 'Cut' command to cut away the slab





  • Now to the symbol parameters. In an elevation view, dimension the slab and add a parameter, 'Floor Thickness'. Set to 'instance' and check the 'reporting parameter' box. This will report the in-place thickness of the slab for use in the formulas to follow
  • Create 2 new Yes/No parameters named 'Hole' and 'Pit. Set to 'instance'
  • Load the Detail Item families 'HoleSymbol' and 'Pit Symbol'. Insert the 'HoleSymbol' and lock off to the Reference Planes.  Pick the symbol and under the instance properties, connect the 'Width' and 'Depth' to their respective parameters in the family, and connect the 'visible' parameter to 'Hole'. Repeat the process for the 'PitSymbol', connecting the 'visible' parameter to 'Pit'
  • Add a new text parameter 'Penetration Type' and set to instance. In the formula box, enter if(Hole,"HOLE","PIT"). In plain english, this says 'If 'Hole' is checked, the text is Hole, otherwise its Pit'. The text value returned can be tagged and scheduled.
  • To determine whether the cut goes right through the slab or not, in the 'Hole' formula box enter  or(Thickness>Floor Thickness,Thickness=Floor Thickness). In plain english, this says 'If the hole is equal to or greater than the slab depth, tick the box'
  • In the 'Pit' parameter formula box, enter not(Hole). In plain english, 'if 'hole' isn't checked, check this box'
  • As the visibilty parameters of the symbolic families are linked to the 'Hole' and 'Pit' parameters, they will display respectively depending on the formula result. This can be seen in action in the final video below: 


Saturday 5 February 2011

Create an Angled Wall End - A Method

This outlines a method for creating an angled wall end. This involves creating a wall-based Generic Model family which cuts away the end of the wall. The video is broken down into 3 parts:
  1. Creating the Profile family for the cut-out
  2. Creating the Wall-Based Generic Family
  3. Applying the family to the project
  • Creating the Profile Family for the Cut-Out



  • Go to 'R' Button and select 'New', 'Family' and select 'Metric Profile'
  • Draw a right-angled triangle. align and lock the vertical and horizontal lines to the reference planes
  • Dimension the vertical line and add an angle dimension between the horizontal and the angled line
  • Select the vertical linear dimension. Select 'add parameter' from the options bar and create a new type parameter 'Wall Thickness'
  • Select the angular dimension. Select 'add parameter' from the options bar and create a new type parameter 'Angle'

  • Creating the Wall-Based Generic Family


  • Go to 'R' Button and select 'New', 'Family' and select 'Metric Generic Model Wall Based'
  • Load the Profile family onto the Generic Model family
  • Add a reference plane over the top of the wall. Name the 'Top' and set 'Is Reference' to 'Top'
  • Add a reference plane at the bottom of the wall. Name the 'Bottom' and set 'Is Reference' to 'Bottom'. Align this to the reference level and padlock.
  • Add a reference line from the bottom to the top. Align and padlock the end points
  • Pick the reference line. Select 'Edit Workplane' and set to 'Reference Plane: Back'
  • Select 'Void Sweep'. For the path, select 'Pick Path' and click the reference line. Under 'Select Profile', pick the profile family
  • Run a dimension across the width of the wall. Select 'add parameter' from the options bar and create a new instance parameter 'Wall Thickness'. Set this as a reporting parameter.
  • Go to the profile family in the project browser and select properties. Link the 'Wall Thickness' parameters together.
  • Go to family parameters and create an instance parameter called 'Angle'. Link the 'Angle' parameter from the profile family (note: in the video, this stage is shown at the start of part 3; I'd forgotten it when I was recording)
  • Add a dimension between the 'Top' and 'Bottom' reference planes. From the options bar, select 'add parameter' and create a new instance parameter 'Wall Height'
  • Under the 'Annotate' tab, pick 'Symbolic Line' and select 'Invisible Line' type. Use the pick line command and select the angle line on the void cut and padlock. This is required so the angle can be dimensioned
  • Go to the 'Modify' tab and select 'Cut' and cut the wall to the void sweep

  • Applying the family to the project



  • Load the family into the project
  • Insert a new wall
  • From the project browser, under 'Generic Model', pick the family and drag onto the required face of the wall in a 3D view
  • In a section view, align the top and bottom and padlock. Align the vertical to the end of the wall and padlock. Now when the wall is adjusted, the cut will adjust to suit