Dynamo Barrel Vault Brace 03

Dynamo Barrel Vault Brace 03

Welcome back, today’s post will complete the Barrel Vault Brace family.  If you’re just finding this post today, look at the previous posts to start at the beginning. If you’ve been following along and doing your homework, you should be ready to begin. The best way to learn is to do the work yourself, but if you ran into problems or just haven’t had the time, you can download the catchup file here.

Now that we’ve created the top and bottom chords, its time to add the diagonal bracing members. You did flex the family right? It’s important at each step, to be sure the pipe radius behaves and moves with the adaptive points. If you haven’t flexed it, please do. Did your pipes remain consistent from end to end? If you got a bulge anywhere in the pipe, you must not have constrained the profile shape to the ends. If your family is good, then its time to work on the diagonal bracing. Let’s make it easy on ourselves, select the two diagonal reference lines and isolate them temporarily.

IsolateLet’s get started!

  • Click the component tool and use the type selector to set the family and type to Circle_Profile_AC:BraceRadius
  • Hover over the adaptive point at the bottom left of the brace, tab until the end point option is selected and the working plane is perpendicular to diagonal reference line.

diagonalEnd

  • Place the BraceRadius and while still selected, Add a family type parameter labeled BraceRadius and associate it to the BraceRadius radius parameter.

DiagonalParameter

Repeat this process at the other end of the diagonal reference line.

  • Change the value of the BraceRadius parameter in each type and flex it. Do the profile family circles get larger? Good.

endptandorientation FlexDiag

  • Create the form element by selecting the reference line and the two profile family insertions. Click Create form.
  • Now flex the resulting geometry. Does the brace form element behave? Good, add the remaining diagonal elements by repeating steps 3 ,4, & 5. Flex the family. Do both diagonal elements flex properly?
  • Click your temporary visibility tool (sunglasses) and Reset temporary hide/isolate visibility. Select each of your adaptive points and move them using the ucs gizmo. Do the form elements follow and flex properly?

FlexDiag2

  • Add a material property and assign it to diagonal brace form element.
  • Repeat this process for the other diagonal vector.
  • Flex your family again and ensure it behaves. Did you add different materials to your test types?

Final_Brace

Does your family look like the above image?  We’re almost ready for Dynamo.  See you next post, when we’ll create our insertion adaptive family and begin working in Dynamo.

Dynamo Barrel Vault Brace 02

Dynamo Barrel Vault Brace 02

In the previous post, we created our flexible AC profile family.  Today we will begin creating the brace family.  We will use the previous family in our work today, so if you didn’t create the family yet, go ahead and do it or just download mine.  Ready now? Let’s go.

Second Family: a GMA Bracing family with a nested GMA family containing a constrained adaptive point, a model line circle, and two types and an instance based radius parameter. Today we’ll create the constraints, subcategories, materials, and top and bottom chord. Don’t forget to save your family.

  • New Family – Generic Model Adaptive
  • Click Manage – > Object Styles and add two subcategories Generic Model in the family as shown below:
    • Horizontal Chord
    • Diagonal Brace

SubCATs

  • Click OK to close the Object Styles Dialog box
  • In the drawing window, Select the Center (Front/Back) plane to activate the work plane
  • Click the reference point tool
  • Place 4 reference points on working plane two at ref level and two above ref level as shown in the image below

Brace4pts

  • Window select all four points and make them adaptive placement points as shown below

Brace4pts_makeAdaptive

  • Move them off the reference plane to get Revit to automatically connect to the AC point when drawing ref lines in the next step
  • Draw 4 reference lines two horizontally with end points on each adaptive point and two diagonally connecting each adaptive point. The shape should resemble an x with a top and bottom horizontal member but no vertical members. If you have issues getting the node to highlight, use the tab key and watch your status bar and the tool tip to make sure you are pre-selecting the correct element.

DrawingLines

  • Flex the adaptive points to make sure the reference lines remain connected as shown in the image below. They should with no problems, it’s why I chose reference lines.

Flexing Points

  • Load the Circle_Profile_AC.rfa family into the bracing family.
  • Click the Component tool and hover over the lower left adaptive point and watch the circle orient itself to the ref level, click tab until the vertical plane of the adaptive point highlights and the circle orients to vertical with the circle oriented to become a loft or extrusion along the length of the bottom horizontal model line.

PlacingProfiles

  • While the family is selected, use the type selector to ensure its type name is set to PipeRadius
  • Repeat this process at the opposite end of the same line and at both ends of the upper ref line as shown in the image below.

Horizontal Profiles Added

  • Add a Length parameter and label it PipeRadius, set its value to 4′-3”. Select the Circle_Profile_AC:PipeRadius type or filter and select your inserted profile shapes as shown in the image below

FilteredSelectProfiles

  • Associate the radius parameter to your new PipeRadius parameter.

AssociateParameter

  • Note: if you don’t see the Radius Dimension in the properties palette when the family is selected, its because the parameter in that nested family is a type. Open and change it to an instance based parameter. Hint: select the dimension and toggle instance on the options bar as shown in the image below.

instance property

  • Now reload into your brace family and choose the bottom option to update the parameters. Select the profile families as before and look at the properties palette. Can you associate now?
  • Flex your PipeRadius parameter – do the circles adjust accordingly? Good, well done.

Flex_Profiles

  • Tab select the reference line connecting the two profile circles at the bottom. Tab again if all the ref lines highlight until just the bottom horizontal line is selected, hold the control key down and tab select the Circle_Profile_AC families at each end of the reference line.

SelectionForm

  • With all three objects selected, choose “Create Form” from the ribbon to generate the pipe shape along the bottom of the bracing family.

SelectForm

  • Select the form as shown above and set the subcategory to “Horizontal Chord” in the properties palette.

subcatassign

  • While you have the form selected, why not associate a material parameter to the material property for the form element you just created?
  • Create two temporary types in your bracing family with different values for PipeRadius. Set each active to flex your new form element, does the form element flex properly? Does the pipe flex consistently along the length of the form? If you got a bulge in your form, then you probably didn’t get the profile associated with the plane of the adaptive point correctly. Fix it and flex again. Also select your adaptive points at each corner and move them using the UCS gizmo. Does your new form element adjust with them? If not, go back through the above steps until your family is behaving.
  • Repeat steps 9-21 to create the top pipe for the bracing family and flex it. This assumes that the bottom and top chords of the brace will have the same radius. If not, you can duplicate the Circle_Profile_AC type to size the bottom and top chords differently. You’ll need to add an additional set parameter node to the dynamo graph if you choose to do this.

I think that is enough for this post.  Save your family and come back next time to complete the diagonal bracing forms and get started with Dynamo.

Dynamo Barrel Vault Brace 01

Over the next few posts, I’ll build some families, a dynamo graph and use it to dynamically adjust the number of braces as well as the radius of each member type used in the example image shown below.  The original problem was presented as a request for a bracing family that could be rotated in 3D space.  I saw this as an opportunity to dive once again in to Dynamo.  In the image below, you see the finished brace family as inserted by dynamo.

AC Brace Dynamo

In order to complete this example, we will need a few generic model adaptive families (3) and a dynamo graph.  Todays post will focus on creating the first family that we will use to control the radius of the form elements within the brace family.

First Family: a GMA family with a hosted constrained adaptive point, a model line circle, and two types and a parameter

We will create a circle profile that will allow us to set a continuous length radius for our bracing tubes.

  • Create a New Family – Use this template: Generic Model Adaptive
  • Add a reference point

ACPoint

  • Click to activate the Ref Level work plane
  • Add a model line using the circle draw option
  • Click on the circle and convert the radius dimension to a parameter labeled “Radius”

ACPoint_Profile

  • Add two types with different radius values
    • PipeRadius
    • BraceRadius
  • Save the family as Circle_Profile_AC.rfa

Next time, we’ll use this profile family to set the shape and size for our brace members.

Confused about Revit 2015 Builds?

Have you upgraded your Revit 2015 to the latest build? Confused about UR2 versus R2?  What order should I install the builds? Can I skip a UR or two?  With 7 updates to Revit 2015, its enough to make your head spin…I can help.

Download and extract this small executable and run it on any machine without waiting to launch Revit and click help -> about. The program will report back on what your build number is and what you need to install to get it to UR7.

Hope you find it helpful. If you have any difficulties with the program, let me know and I’ll recompile it.

~Richard

 

New versions of IFC Exporter and UI available

Are you running the IFC Exporter for Revit 2014 or Revit 2015?  Did you know new versions were released yesterday?  If not, consider yourself “in the know” now.  To really get up to speed, continue reading.

Download links:

IFC Exporter for Revit 2014 (v3.13):

IFC Export Alternate UI for Revit 2014 (v2.13.0.1)

IFC for Revit 2015 (v15.3.0.1):

Learn more – read below


 

What’s new for IFC for Revit 2015 v15.3.0.1:
New Export Functionality:

  • Allow IfcLongName to override the “LongName” attribute for levels.
  • Rooms can now be exported from 3D views even when exporting only elements visible in view.  If the option is chosen to export rooms, then all rooms inside or bordering the bounding box of the section box will be exported.  If the section box isn’t active, all rooms will be exported.
  • Work in progress: users can now opt to export files according to the IFC4 Reference View MVD.  This will result in IFC4 files that use IfcTriangulatedFaceSet instead of IfcFacetedBRep, resulting in significantly smaller IFC files.  There are still some cases where IfcFacetedBReps show up in these files, and there are some cases where the tessellation isn’t optimized for the reference view; this will be improved in upcoming releases.

Export Bug Fixes:

  • Fix export of files with a project north value different than true north that would cause a slight shift in elevation.
  • Fix export of some IfcCurveBoundedPlanes with more outer loops than inner loops.
  • Fix the location of some assemblies on export.
  • Fix the base quantities export for walls and columns when they are split by level.
  • Improve splitting of walls in some cases when they are split by level on export.
  • Improved the export of some entities with extruded surface geometry with clippings and openings where some clippings and openings were not being exported.
  • Properly scale the volume of columns when base quantities are exported for non-imperial projects.
  • Update the French resources file that prevented IFC export from working on computers with a French OS.

New Import Functionality:

  • Add ElevationWithFlooring and InteriorOrExteriorSpace/PredefinedType for IfcSpaces.
  • Add IfcContainedInHost parameter for doors and windows to contain the name of the hosting wall.
  • Add IfcElevation parameter for Levels.
  • Add IfcElementAssembly parameter for elements inside assemblies.
  • Add IfcSystem parameter for elements inside systems.
  • Add material thickness to the IfcMaterial parameter for elements who have an associated IfcMaterialLayerSetUsage.
  • Better handing of nameless grid lines.
  • Heal some curves with short curve segments, small gaps between segments, and vertices that are too close and better log file error reporting of the above problems.
  • IFC4: Import IfcTriangulatedFaceSets, generally created for the IFC4 Reference View MVD.
  • Import Box (i.e., the bounding box) representation for elements that have it, but only if they have no Body representation or it contains no visible geometry.
  • Import IfcAssemblies.
  • Import Construction Type and Operation Type for IfcDoorStyles.
  • Import IfcPorts.
  • Import IfcSystems.
  • Import IfcZones.

Import Bug Fixes:

  • Accept “Profile” as an alternate name for “FootPrint” when reading in entity representations.
  • Force some entities to have a default name if Revit requires them to, even if there is no name in the IFC file.
  • Improve processing of faceted BReps with gaps and short edges.
  • Improve processing of walls and slabs whose geometry is defined by IfcMaterialLayerSetUsage.
  • Properly scale IfcCompositeCurveSegment trim parameter for non-imperial files.
  • Use gray, not black, as the default material color for materials with no color assigned.

 

What’s new for IFC Exporter for Revit 2014 v3.13:
New Export Functionality:

  • Allow IfcLongName to override the “LongName” attribute for levels.
  • Rooms can now be exported from 3D views even when exporting only elements visible in view.  If the option is chosen to export rooms, then all rooms inside or bordering the bounding box of the section box will be exported.  If the section box isn’t active, all rooms will be exported.
  • Work in progress: users can now opt to export files according to the IFC4 Reference View MVD.  This will result in IFC4 files that use IfcTriangulatedFaceSet instead of IfcFacetedBRep, resulting in significantly smaller IFC files.  There are still some cases where IfcFacetedBReps show up in these files, and there are some cases where the tessellation isn’t optimized for the reference view; this will be improved in upcoming releases,

Export Bug Fixes:

  • Fix export of files with a project north value different than true north that would cause a slight shift in elevation.
  • Fix export of some IfcCurveBoundedPlanes with more outer loops than inner loops.
  • Fix the location of some assemblies on export.
  • Fix the base quantities export for walls and columns when they are split by level.
  • Improve splitting of walls in some cases when they are split by level on export.
  • Improved the export of some entities with extruded surface geometry with clippings and openings where some clippings and openings were not being exported.
  • Properly scale the volume of columns when base quantities are exported for non-imperial projects.

 

What’s new for IFC Export Alternate UI for Revit 2014 v2.13.0.1:
New Export Functionality:

  • Rooms can now be exported from 3D views even when exporting only elements visible in view.  If the option is chosen to export rooms, then all rooms inside or bordering the bounding box of the section box will be exported.  If the section box isn’t active, all rooms will be exported.
  • Work in progress: users can now opt to export files according to the IFC4 Reference View MVD.  This will result in IFC4 files that use IfcTriangulatedFaceSet instead of IfcFacetedBRep, resulting in significantly smaller IFC files.  There are still some cases where IfcFacetedBReps show up in these files, and there are some cases where the tessellation isn’t optimized for the reference view; this will be improved in upcoming releases.

Export Bug Fixes:

  • Update the French resources file that prevented IFC export from working on computers with a French OS.

Download links (repeat):

IFC Exporter for Revit 2014 (v3.13):

IFC Export Alternate UI for Revit 2014 (v2.13.0.1)

IFC for Revit 2015 (v15.3.0.1):

 

 

Update to Chainlink Fence (Railing)

Update to Chainlink Fence (Railing)

I’ve updated the Chainlink as Railing example to utilize the latest railing styles and modified the construction to allow for displaying in a site view with x’s as the post.  I’ve also added a material that renders as chain link.  So now you get the easy creation method of the rail object, with surface patterns, render material, and you can control visibility in your site view to show as a traditional linework.  Since its a railing, it will also allow curves.Here is a site view of the “fence” in action:

Here is an elevation view in realistic mode:

Here is an elevation “hidden line” view showing the surface pattern:

Here is a rendered view:

Here is how it is constructed.

Continuous Chain Link Fence_2014

 

ACA: Automating workstation counts per squarefoot

ACA: Automating workstation counts per squarefoot

We have been successfully using ACA rooms to meet program needs for one of our primary clients. Their requirements are based on a specific square footage formula for determining how many workstations should exist within certain room types.  Recently they added additional room types beyond “Office” that also require workstation counts.  In addition to the increase in room types, they also increased the workstation counts per square foot.  On top of the those requirements, there is always a need in this business to override an automated value based on room geometry or other constraints, so the automation had to be flexible.  The current workflow for overriding the count involved deleting the default room tag and replacing it with an alternate tag containing an attribute. Because I had to revisit the formulas, I took an opportunity to streamline the workflow while adjusting the formulas.  I reduced the workflow for overrides from 12 clicks to 5 and eliminated the alternate room tag in the process.The original room tag had values being constructed via a formula, in a custom property set definition (psd) field called WS_Count.  It was set up to always display the rooms square foot value by reading the gross area field from the RoomObjects psd.  A relatively simple formula was used to check the space name and when “office” was in the name, the WS_Count value was concatenated to include a workstation count.  The tag looks like this in operation:

As you can see from the image above using the same tag for both spaces results in a workstation count being displayed in office types and just the square footage for other type of rooms.  This is accomplished with some simple statements inside the object based psd.  Note the Space name is standardized and controlled by pulling from a list and is style based.  To create something similar, you could introduce the following function in a psd field.

The logic within the above sequence first checks to see if the list based style name contains the word “office” if it does not, it will skip all the down to the Else statement and simply return a string containing the “GrossArea” automatic property of the room object which is concatenated with a space and the letters “SF”.  If the space type contains the word “office”, then the value of the “GrossArea” automatic property is checked from smallest to largest using a “less than” comparison.
This tag was working well for this clients projects, but based on the previous mentioned changes, I introduced two new fields into the psd (WS_Override & WS_Detect) to eliminate the non coordinated overrides and to reduce the multi-view block count by 1. Because I wanted the value of the workstation count to always get calculated, I added a simple “less-than” function to calculate the count in the new property field titled: WS_Detect as shown below.

This function checks the string value from the property WS_Count to see if “WS” is found, meaning that the room type required a workstation count, and checks the new property WS_Override to see if its value is defaulted to 0 representing no override.  If both prove true, then the square footage is calculated based on the square footage program requirements set by the client using a similar “less-than” approach.  If either value is false then the manual integer based property value of WS_Override is used.

With the two new properties in place, anytime an override is needed because of space geometry, pilasters, or other obstructions that might require a deviation from the program, the designer simply places a positive value in the WS_Override property of the space. With the calculated value being tracked in a separate property, the original WS_Count property formula was modified as follows:

The original space type check was modified using the boolean “Or” to check for “Office” as well as the new space types that also get workstation counts.  If no workstation count is required, then the formula skips to the Else statement and simply presents the Square footage value as before.  If a workstation count is required, then the logic begins to check for a positive value in the WS_Override property.  When a positive value is found, the formula concatenates the square foot value with the workstation count from the WS_Override property.  If no override is in place, the original program based workstation count is used by concatenating the square foot value with the WS_Detect property.

The room tag multiview block was created using the following psd properties within an attributed block as shown below.  This block is used as a display block within the multi view block.

Client_SPACESTYLES:Client_DESIGN_TYPE
Client_SPACESTYLES:LENGTH x Client_SPACESTYLES:WIDTH
Client_ROOMOBJECTS:WS_COUNT

Note: in the above attributed block definition the middle line contains a simple text object with the letter “x” to allow the length and width size to be displayed.  I set the Length as right justified and the width to be left justified.  The first and third lines are middle center justified.

To give visual feedback to the designer as they are placing the spaces, I added a display theme to color the spaces based on workstation count.  I also added a room based schedule to display the workstation counts and provide a running total.  This schedule is set to automatically add new spaces and to search within blocks so that it is always up to date.  This setup is estimated to save approximately 10 – 15 minutes per project every time the plan is created or changed.  This is projected to save the company more than 80 man hours per year. It also eliminates counting errors and inaccuracies which may be introduced through human error.  The image below shows the original space layout on the left with the new display theme based layout and legend displayed on the right.

An image of the schedule that maintains tracking of Workstation Count is shown below.

The image below shows the settings used for the display theme.

Finally, the formula used in the Workstation Count Schedule is provided for reference.

The above formula checks the psd property WS_Count for the string “WS” indicating a workstation count is being calculated based on the space type.  If the formula doesn’t find the string then the workstation count is set to a value of zero. If it finds the string “WS”, then the value of the property WS_Override is checked. If it is greater than zero, its value is used directly, if not, then the value of WS_Count property is parsed using the split function.  The split is based on a space value and the third element of the resulting array is returned, which is the workstation count.

Let me know if this helps in your work. Here is a tip, you can cut and paste formulas like these shown in this blog post into the editor in ACA, but you’ll need to highlight any values found within square brackets and double click to replace the property set data using the interface. I frequently do this when working with a long formula.  I’ll copy it out of a working example into notepad, add the necessary logic, and then paste back into the formula editor. When you paste it back in, look for any bracketed properties that do not display the dark background.  You’ll need to replace those by highlighting them and then double clicking on the property from the object list below the code area. Use the sample results area as a check.

When the sample results area displays a proper sample value you are ready to use it.  Below you’ll see an example of the property formula editor in both working and non-working order.  Remember if you see the formula in the sample results area, you still have some replacements to make.

AutoCAD Layfrz: Nested Entity Selection

I was asked recently how to fix the workstation blocks that were placed in a floor plan drawing.  When I opened the file, I quickly surmised that a short lesson on layfrz would solve the issue.  Using the layfrz command, sometimes requires different settings depending on how the selected entities are created. In this example, a simple “entity” option setting allows for attribute layer freezing within the block.  Watch this video to learn how.