Showing posts with label Autocad Architecture. Show all posts
Showing posts with label Autocad Architecture. Show all posts

Monday, March 24, 2008

Smarter and Greener BIM with ACA 2009

This article might be offensive to those that are fundamentally opposed to the idea of using ACA as a BIM supporting platform, but nevertheless I cannot withhold my enthusiasm for the improvements that have been made with this new and somewhat downplayed release of 2009.

Before I explain the above statement let us for a second focus on the recent publication “BIM Handbook” by Eastman, Teicholz, Sacks and Liston, in which the authors are somewhat specific in outlining the basic minimum requirements that any BIM platform should meet.
According to the authors, the only key point that does not qualify ACA as a BIM tool is presented by this sentence; “Models that allow changes to dimensions in one view that are not automatically reflected in other views”.
To put the above statement into perspective, it might be prudent when discussing BIM to put the emphasis on the information associated with the building process, and on a given platform’s ability to link and mediate access to different information resources, manipulate it in a way that can be, but it does not have to be, object driven and report it in a way that can be either dictated by the future national standard or by a particular project’s requirements.

Personally I have always been drawn to more pragmatic and budget minded interpretations like this one: “BIM is about creating a richer set of project information, about understanding and being able to recall as much of the project as necessary to allow better informed design decision”, Davies 2006.
So what does this have to do with ACA? Well when it comes to information, it is hard to beat this Swiss Army knife of an application, and if Autodesk really thinks that “AutoCAD Architecture is better for architects”, this release will prove this more so than any other in the last 5 years, but to see this one should look behind the scenes, ribbons, endcaps and few other more in your face changes.
With this release think about interoperability, GSA standard project delivery and Carbon Footprint and than take a deep breath of relief, as the ACA team has finally got it.

Let start with the concept of green-washing as it applies to all of those applications whose claims fell short of promises, but not this time and not with ACA 2009.
With ACA 2009 the architect is empowered again as BIM platform has the ability to specify space loads, occupancy, conditions and thermal properties of the envelope. Than one could say so what? What I say! How about being able to deliver this information via gbXML file for analysis in Green Building Studio (recently purchased by Autodesk) or to the upcoming new release of Ecotect. Needless to say, all of it has been accomplished via the clever use of Property Set Definitions, as many of us have been suggesting for quite some time.


Yes, there are other BIM platforms that can deliver this, but then you need to start thinking about a discipline specific platform and another $5000 out of your pocket.
Enough about green: let’s move to BIM standards, and the way the most influential client on the US market defines them. If understanding the minimum BIM compliant project requirements imposed by GSA will ever help you in taking care of your insomnia, go here, but in the meantime the future user of ACA 2009 can peacefully rest knowing that its product has a GSA compliant template with all of the spatial and programmatic classifications built in it.

And, as if this was not enough, the ACA team had to prove how well they can listen and they have linked the object classification and IFC Pset(s) to the IFC Export feature, enabling users to classify ACA objects as IFC compliant classes and associate them with their IFC compliant properties. This means that my Laboratory Casework Library that is made of Doors and Curtain walls can be correctly translated into IFC format and imported and recognized as Furniture with its IFC compliant properties.

Briefly describing these several features does not do any justice to the significance of these quiet changes introduced by the new 2009 release of ACA. In my view it represents a paradigm shift with respect to imaginative handling of objects information and in all honesty extends the shelf life of this platform in ever changing and redefining BIM times. Schematic design in ACA and the related Building Performance Analysis and interoperability are a move in the right direction with the clear goal to award any practitioner that believes in BIM’s well publicized cost/effect curve.

Sunday, February 17, 2008

AutoCAD Architecture 2009 - Green Again!

Without making the argument whether AutoCAD Architecture is a valid BIM platform, or is just “Better for architects”, with this new release one can not but acknowledge the return of the very useful ability to export an ACA based model into gbXML format. This time, unlike with the version 2006 and prior, this is not a third party developed plug-in but is part of this version core functionality.
So why is this a big deal, or is it? Well ACA has one very peculiar object type. The e-space object is probably unlike any other ACA object, in terms of its capacity to serve as a fully customizable data container, as well as in its ability to be shaped with an ease that very closely resembles the functionality of SketchUp or the ease of Ecotect’s zones. Its geometry can be chiseled into almost any conceivable shape, but what really makes it unique in this version is the ability to assign surface enumerator types (analytical surface tags) to any bounding surfaces, including opening types, windows and doors, and export them as such for analysis to Green Building Studio.

Unfortunately, as this platform is being marketed as just a better drafting tool for those architects that still did not cross over to the other side, most e-space features are being underutilized. Their suitability for program evaluation (a minimum BIM compliancy requirement by GSA), FM required data encapsulation, and now the ability to create quick schematic design energy evaluation models places them in the category of objects that have no true competition in any of Autodesk’s offered BIM platforms. Not to exaggerate, but one can literally make e-spaces talk to the user and report any programmed relationship within the BIM model! (This example will be posted soon.)

In the next few weeks I will attempt to evaluate the quality of ACA’s 2009 gbXML file and its compliancy to gbXML schema 0.35, both in the Green Building Studio environment and hopefully with the new release of highly anticipated Ecotect 5.60 that will be able to import gbXML compliant files.
So, for anyone that wants to get their feet wet and evaluate their schematic design energy models at the early stages of their design process, the 2009 line of Autodesk architectural products is bringing some rather interesting improvements.

Friday, November 30, 2007

Autocad Architecture LEED EQ 8.1 update

After some positive feedback and a few constructive suggestion here is the updated LEED EQ 8.1 Daylight Factor interactive schedule that takes into account Net Area and Door/Window Assembly objects.

Thursday, November 22, 2007

LEED EQ 8.1 Credit (Daylight and Views) for ACA 2008

(Real time daylight design tool for AutoCAD Architecture 2008)

In 2005 when my article on BIM and knowledge management was published, I indicated the opportunity within BIM as a methodology that has the potential to capture cumulative knowledge that aggregates within a firm and to implement the same within any BIM compliant platform.As we all understand the need to evaluate the performance of our buildings, the need for this knowledge integration is even more evident, and one avenue via which we can explore this methodology is in the integration of LEED credits compliance within the BIM model.
The Importance of LEED certification and its necessity for the creation of a sustainable built environment can be debated from several perspectives but considering the integration of real time evaluation tools should be a prerequisite for the creation of any expert system that will be used for instantaneous knowledge (code / rule) feedback.

I have to admit that, besides a few scheduling screen shots in Revit Architecture and some in articles that were relevant to AutoCAD architecture, I have not seen any serious attempt to tie in more closely any application with the concept of LEED credits take-offs or any LEED scheduling framework provided by the software manufacturers.

Now some of you could ask the question why this example is not available in Revit Architecture, and the answer to this is quite simple. I do not know how to make it work, and in this instance I will blame this on my own ignorance unless some one out there can actually explain to me why one has to calculate the area property of an room object as a result of volume by unbound height division as this, in spaces that have a sloped ceiling, will produce an unacceptable inconsistency.

So in order to have an interactive real time daylight factor analysis tool one should work with these ingredients:

Window use classification
Window style
Property Set Definition
Space style Property Set Definition
Display Theme for DF (Daylight Factor)
One not particularly customized schedule
And a few lines of VBS code slowly brewing in the background.

First we start by defining a window object classification category that defines any instance of a style as either an EXTERIOR or INTERIOR window, where only those that the user marks as EXTERIOR will contribute to the EQ8.1 calculation.


The second step is to define three different List Property Definitions whose values represent different window factors that are required for DF calculation. Those factors are:
GF – geometry factor
HF – height factor
TVmin – minimum visibility factor
TV – visibility factor


which are all dependent on window type, location and current glazing visibility as presented in this table.This method assumes that values are associated with a particular window style and in order to vary them from instance to instance one should copy and assign style in place and change the style based property definitions in order to accommodate for these variations.


On the other hand the Space Objects Property Set Definition has been modified in order to perform a required DF analysis by querying the current file for all of the windows that have matching location ID with the space objects for which the calculation is executed. The matching ID within every window object is placed within the Window Styles Property Set Definition via Location Property Definition and thereby the logical spatial link between two objects is established.

For the sake of differentiating from the OOTB Property Set Definition I decided to create two new PSD one for Window Styles and the other one for Window Objects.The object based one is labeled as 01_LEEDWindowObject and this is the one where the link to the Space Object is documented through the “WindowSpaceID” property definition while its relevance for DF calculation is established by the “001WinLocation” classification based property definition. The space based PSD is labeled as 01_LEEDWindowStyles and this is where the previously described window variables are hosted.



LEED_GF”, “LEED_HF”, “LEED_TV” and “LEED_TVmin” are all style bound and this is where the associated space object reads the relevant values for its daylight formula.To visualize DF in real time I have included a basic Display Theme that is providing for a graphical feedback based on the calculated DF.
Tying all this together was executed within Space Objects PSD and in particular within the formula property definition that taps into two ADT libraries in order to make this work.

Set acadApp = GetObject(,"AutoCAD.Application.17.1")



Set AecBaseApplication = acadApp.GetInterfaceObject("AecX.AecArchBaseApplication.5.5")
Set SchBaseApplication = acadApp.GetInterfaceObject("AecX.AecScheduleApplication.5.5")
Set ActiveDoc = AecBaseApplication.ActiveDocument
DF_win = 0
DF = 0
PropValue_GF = 0
PropValue_HF = 0
PropValue_TV = 0
PropValue_TVmin = 0
WinArea = 0
For Each obj In ActiveDoc.ModelSpace
objName = TypeName(obj)
If objName = "IAecWindow" Then
Set objPropSets = SchBaseApplication.PropertySets(obj)
Set objPropSet = objPropSets.Item("01_LEEDWindowObjects")
objWinLocation = objPropSet.Properties.Item("_WindowLocation").value
objWinSpaceID = objPropSet.Properties.Item("_WindowSpaceID").value
If objWinLocation = "EXTERIOR" and objWinSpaceID = "[ObjectID]" Then
Set PropSets = SchBaseApplication.PropertySets(obj.Style)
Set PropSet = PropSets.Item("01_LEEDWindowStyles")
PropValue_H = objPropSet.Properties.Item("Height").value
PropValue_W = objPropSet.Properties.Item("Width").value
WinArea = (PropValue_H * PropValue_W) / 144
PropValue_TV = PropSet.Properties.Item("LEED_TV").value
PropValue_TVmin = PropSet.Properties.Item("LEED_TVmin").value
PropValue_GF = PropSet.Properties.Item("LEED_GF").value
PropValue_HF = PropSet.Properties.Item("LEED_HF").value
DF_win=(WinArea/[BaseArea])*PropValue_GF*(PropValue_TV/PropValue_TVmin )*PropValue_HF
DF = DF + DF_win
End If
End If
Next

RESULT = DF * 100

Without going into a lengthy discussion about what this VBS is doing, I just want to point out that the main loop is using SchBaseApplication object to access the property set of each window instance in ModelSpace object and compare its “_WindowSpaceID” property to the [ObjectID] property of the current Space Object.If the match has been confirmed within the first If statement of the outer For Each – Next loop and the examined ModelSpace object is indeed of IAecWindow type, then the second If statement is comparing “_WindowLocation” and “_WindowSpaceID” properties.
When both of these requirements are met than the set of relevant variables is accessed via SchBaseApplication object and are being channeled to DF_win formula that is being compounded within the primary loop to create the final DF value for this given Space Object.

In order to evaluate the final daylight value for a floor plan I have created a schedule that does it, but similar compounding and property extraction code could have been used to calculate the final result within a Space Object.


The prerequisites for this DF real time calculation method are the following:
ACA 2008 or ADT 2007 due to their capabilities to apply classifications to an AEC object and their use of List definitions.
This code can be retrofitted to operate within ADT 2006 and 2005 in a slightly less sophisticated way.
The code within a Space Object can not query window objects within a x-ref file and therefore both the envelope and spaces have to be part of a same construct, or a plain independent file. It is worth mentioning that the code within these customized SpaceObjects is taking a toll on ACA’s performance, but as I have tested it on a 60000 SF project with the acceptable performance the entire process can be even more streamlined during the initial design by having a zonal approach to DF evaluation.

After downloading this sample file the user should try to rescale the windows associated with their spaces and observe the change in color as the DF for this space crosses the threshold of 2%. It is worth noting that in order to create a window with the different performance values the existing style should be copied into a new style and those values should be adjusted within this new style based Property Definitions.

For any of you that have ever driven a certain French car, and you know the connotation, and especially those that were made between 1955 and 1979 by a company which I will not name but whose creation was closely connected with the architecture of Le Corbusier, you will understand my enthusiasm with this, not officially BIM like, Swiss army knife application that is still quite a useful BIM tool if you know which buttons to push. Thanks to the inspiring work of several people, like David Koch, Jimmy Bergmark, Jay Moore, Robin Capper and few others that are not yet ready to give up on the potential of embedded code within BIM compliant objects, this application proves that a good amount of intelligence can be placed behind a comprehensive BIM model.
For myself, I can not but wonder if ADSK is really listening, as I am quite sure that a few skilled programmers, and ADSK has enough of those, can crank out this code in a matter of minutes and have it become an integral part of the AutoCAD Architecture. The bigger picture is that ADSK should at least make an honest attempt to add the tools so needed in this “non BIM” application so that we can really take the full advantage of the outdated “object” technology.

This file includes all of the above described elements and I am encouraging you to test it on your own LEED projects. Being aware that there is a ton of room for improvement to this proposed code as well as that this can be far more efficient code if executed via VBA or VB, I am looking forward to get some constructive feedback.



Tuesday, October 02, 2007

ACA - Ductwork - Part II

Even though there is an excellent tutorial on creating ductwork out of structural elements, posted by Archidigm, I could not resist and give ACA (former ADT) walls a chance to prove their versatility.
With little bit of profiling and sweeps manipulation, one can easily modify a wall style that allows for some rather convenient placement of the proxy ductwork within a BIM compliant model.
As with any other ACA object that employs curve liner shapes, its representational quality will greatly depend on FACETDEV variable setting.
Download the sample file and see if this technique could work for you as well. Needless to say that with some additional classification and the creative use of Property Set Definition, these ducts can go a long way.




Click on the image to launch Design Review

Even though there is an excellent tutorial on creating ductwork out of structural elements, posted by Archidigm, I could not resist and give ACA (former ADT) walls a chance to prove their versatility.
With little bit of profiling and sweeps manipulation, one can easily modify a wall style that allows for some rather convenient placement of the proxy ductwork within a BIM compliant model.
As with any other ACA object that employs curve liner shapes, its representational quality will greatly depend on FACETDEV variable setting.
Download the sample file and see if this technique could work for you as well. Needless to say that with some additional classification and the creative use of Property Set Definition, these ducts can go a long way.


Monday, August 06, 2007

Ameri-CAD Aquired by ITW

Ameri-CAD, the company that has created one of the most comprehensive residential BIM solutions on the market, VisionREZ, has been acuired by ITW. This could be very good news and the validation of ACA as a viable BIM platform. To learn more about VisionREZ check out the following links;
http://www.visionrez.com/
http://www.archidigm.com/Coverpage/cover4-06/lounge-set_vrez_review.htm

Friday, June 01, 2007

Nurbs Surface in Autocad Architecture

Approximating Nurbs Surface in Autodesk Architectural Desktop... the article was published in Hagerman & Co. Technology bulletin in June of 2005

Thursday, February 22, 2007

Parametric Ceiling in ADT 2006/2007

Unfortunately I did not have the pleasure of attending the last AU for various reasons, of which being busy was the most important one, but a presentation handout was delivered to me by a colleague, titled Extreme Architecture.... Interesting concept, almost like Microsoft marketing Word for Extreme Poetry. I just hope that there will be some more thoughtful attempts to depict what we as architect can do when converting an abstract thought into a materialized reality, regardless to which tools we use.

Back on tangent.

Here is an example of a not so extreme but quite useful application of the parametric capability the ADT has. The anchoring tools in conjunction with walls, mass elements and grids will be used to create adjustable (parametric) coffered ceilings.
First I would like to begin by mentioning the AecCellAnchor command which can be used to distribute an AEC object by placing it within the AEC grid object's cells. This turns out to be a quite useful and obscure command that exploits the parametric nature of ADT 's database functionality by enabling the user to link object location and AEC grid location including spacing and scaling. After reading a really interesting tutorial by Archidigm on how to build a coffered ceiling by using the Curtain wall object , I had an opportunity to try this technique on a project with a beautiful cast in place concrete ceiling in an existing historic building. The Client interest in obtaining a rendering of the new program and depicting this ceiling as accurately as possible was essential for us to start thinking about the most flexible and fastest way to create and possibly tweak the new geometry.

The idiosyncrasy of the previously mentioned technique that did not work quite well in this particular case was the rather structured procedure for adjusting a curtain wall based grid to match the irregular grid of the existing building. And then this idea was born...

For a long time I have been using AEC anchor tools for controlled distribution of miscellaneous MV blocks, seating assemblies and parametric relationship between walls in ADT projects.

Combining AEC anchoring tools and extremely versatile Mass Object on non printable layer (s) via interference condition that can be applied to AecWalls became the standard for creating complex volumetric relationships between building skin, partitions and structure.

As this example was written for ADT 2006 it uses a variable with wall object in lieu of slab object that acquired interference capability in ADT 2007, but in 2007 version of this tutorial one can have a multi - material version of a coffered ceiling.

The first step is to create a new wall style and for the sake of this tutorial I
named it AecWallCeiling that should be associated with a new Wall Cleanup Style named AecCeiling.



If the ceiling in your project is at 9' create a wall style that has the Wall Baseline offset set at 9' and default wall height of 10'. When this is accomplished, place a new wall based on the previously mentioned style, in between the walls that are representing room's boundaries, and adjust its width to match the width of a room.

The next step is to create a mass object that will represent a "negative" of the that
particular coffered ceiling that you are working on. For this purpose I have created a relatively simple mass object an in order to control its polygon count and ability to approximate smooth radius I have adjusted the FacetRes Variable to 0.0625.


When this is completed go ahead and align a parametric AEC grid with the location
(height) and boundaries of AecWallCeiling Object.



Now before you anchor the Mass Object negative to the grid, let's stop for a moment and think what could be an added bonus feature of this technique. AEC Grid has the ability to scale the AEC Mass object within the boundaries of the each individual cell, but what if we intend for this object to be just a little bit more interactive and grid independent, let's say that we would like to change its dimensional characteristics and appearance and propagate that change through each object instance within that AEC grid defined pattern.

Here is the point where ADT can surprise you again. Its ability to create a reference of an object in a similar way to VIZ or Max , is quite a tool in your arsenal of ADT skills, and especially when you work with multiple repetitive objects, like trims and moldings.

Locating Mass Element Negative in respect to the grid.



Go ahead and type AecEntRefAdd, use the center (m2p) of your mass object as the insertion point and create a new reference object. This new object will now have to be associated with the AEC grid in the following manner. Type _AecCellAnchor and first select the reference object that will be anchored to a cell within the layout grid, and then select the grid to which we will anchor this object. While the command is still active and after the first cell has been populated, type "C" for copy and again select the the same reference object and then the grid. When prompted whether to skip those cells that are already populated, chose Yes and let ADT will do the rest.




Place the "negatives" in the desired location within the AEC grid. Select the wall
object that is being used as a ceiling slab, chose the interference option from the context short cut menu and select all of the "negative" references of the original mass object. Turn the nonprintable layer that is hosting "negatives" off. The layer approach was the quickest solution for the sake of this tutorial. Better results can be achieved by creating a Mass Object Style whose corresponding material will be invisible in reflected ceiling plan or model view, but that is a topic for another tutorial.




I need to mention that all of these tools have existed as the core functionality of ADT in one way or another since version 3.3, but like with any other application it takes some time and dedication and some creative thinking to make them work. Now if you think that your project requirements have outgrown the capacity of the software you currently use, think again and see if there are some other features or techniques that were neglected over time that are worth implementing, before your reseller tells you that it's shopping time again.

This is the rendering depicting the effectiveness of previously mentioned procedure and if you think that this example is of any use, feel free to download this sample file and test it on one of your projects.




Until next time….

Thursday, June 15, 2006

ADT 2007 (2006) - Project based wall height

Revit is, most arguably,the best BIM platform currently available for architectural professionals working in the US. I think it is intuitive, stable, and well designed software doing everything, or almost everything, that a $4K + something application is supposed to do. Yes it could be better, and as far as I know the Autodesk team is already working hard on
writing a new release packed with new and useful features which will even further establish Revit Platform as the tool of choice for more design professionals. But what if you were an old-fashioned believer in the open source or (almost open source) application that has the potential and the technology to be the BIM platform of choice for those that are not willing to go with an OOTB product, and for those that believe that the power of information lies in its ability to be interpreted and cross-referenced in a way that suits the uniqueness of your way of doing business. So for those of you that still like to use ADT 2006 or for those that feel a little bit more adventurous and are using 2007, here is a workaround that I have cooked up in order to link partition height to Project Level Height and to the Slab thickness associated to that level. I know Revit does this in quite an elegant way, but there is really no reason why ADT should not do it, and do it even better by being able to customize the relationship between AEC entities and ADT project parameters.
To accomplish this I wrote a relatively simple VBA code based on the examples that are part of the Active X help file, created a Property Definition Set in conjunction with a Display Theme that allows me to quickly identify those walls that will follow the dependency rule.
The first and the easiest part was to define a custom Project property and I have labeled it Slab Thickness with a given default value.
Start a new project (or open an existing one), and within the Project Navigator under the Project Tab proceed to Project Edit -> Edit Project Details. For project details add a new category Structural Info (fig.01), and within this category make a new entry for Slab Thickness (fig.02) and assign it a value of 12.

fig.01fig.02


This step has created a new project variable that can be invoked during the wall height adjustment calculation within the Wall Object based Property Definition Set. To have this set function properly our ADT project should have levels defined in order to locate the new partition constructs.



fig.03


For the sake of this exercise the set of three levels (fig.04) has been determined within the project and by doing so we are setting up conditions where Level Height information will be used to determine the height of bound or attached ADT walls.





fig.04

After these project parameters are defined and their values have been assigned, the Wall Object based Property Set Definition with the following Properties needs to be created and assigned to walls whose height property will become bound to the project values. For lack of better ideas I have named this new Property Set Definition as IWall (fig.03) and made it apply just to Wall objects. It is worth mentioning that this technique could be applied to any object or style if desired to do so, with a number of project based values that that will be reused throughout a project.





fig.05

The first property in this set is a Manual Property Definition named Attached (fig.05) of a Boolean type, and it will be responsible for determining which walls will be associated with the project constraints.



fig.06fig.07


The second property that will play a role in determining attached walls’ height is named BoundHeight (fig.06) and its value is retrieved from Project Property Definition set as a Level Height (fig.07) property. We thereby effectively establish the relation between the wall entity and project properties.

Now in order to give some flexibility to the entire system and to show how by, adding a few other variables, this can indeed become a useful “Parametric” tool, we will add two additional properties that will govern the outcome of our Formula Based calculated Property Definition.



fig.08fig.09


Slab Thickness, (fig.08) has been added as a project based property (fig.09), and I have to point out that with just a little bit more creativity and effort this property can be either allocated to individual levels or it can be retrieved from an entity within the model by writing some additional VBA
code.


fig.10

fig.11fig.12

To be able to specify whether the wall is connected to the underside of the slab ToSlab (fig.10) Manual Property Definition in Boolean (True False) format, has been introduced so that user can specify which walls in the model adheres to these rules.
When all of the above properties have been assigned, the Formula Based Property CalculatedHeight (fig.11)(fig.12) will provide for the modification of AecWall BaseHeight property.

This puts us only half way through this exercise and the true engine that drives this is actually placed within these relatively simple lines of VBA code that is mostly based on the examples that came with ADT installation.
To make this work, copy the code below into a new module. From this point on when an event fires it will call this ParaWall Sub which parses the database in search of linked AecWalls and adjusts their height to the one that is associated with the current level where the construct resides. The value is pulled from the Property Set Definition, more precisely, from CalculatedHeight Property Definition and assigned to the AecWall object.

To have this working make sure that it loads with every new document so under the ADT help file look for the following topic: ”Automatically Load and Execute VBA Projects”, and make sure that your VBA project has the following code placed respectively under the “This Drawing” section and in a Module of your choice. In order to simplify the coding and use I decided to call the routine only in two instances; when loading a construct or when the REGEN command has been invoked.


Private Sub AcadDocument_Activate()
ParaWall
End Sub
Private Sub AcadDocument_EndCommand(ByVal CommandName As String)
If CommandName = "REGEN" Or CommandName = "REGENALL" Then
ParaWall
End If
End Sub


Sub ParaWall()
Dim doc As AecArchBaseDocument
Dim wallObject As AecWall
Dim Object As AcadObject

Dim SchedApp As New AecScheduleApplication
Dim cPropSets As AecSchedulePropertySets
Dim PropSet As AecSchedulePropertySet

Dim cProps As AecScheduleProperties
Dim prop As AecScheduleProperty

Dim count As Integer
Set doc = AecArchBaseApplication.ActiveDocument

For Each Object In doc.ModelSpace

If TypeOf Object Is AecWall Then
Set wallObject = Object
Set cPropSets = SchedApp.PropertySets(wallObject)

If (cPropSets.count > 0) Then
Set PropSet = cPropSets.Item("IWall")
Set cProps = PropSet.Properties
If cProps.Item("Attached").Value = True Then
Set prop = cProps.Item("CalculatedHeight")
wallObject.BaseHeight = prop.Value
End If
End If
End If
Next

End Sub



To make all of this just a little bit more effective, I have also created an Display Theme that will allow me to quickly identify those walls in the construct that are bound either to the Level Height or to the adjusted height that takes into account the size of the structure.
This is just a very brief example of what can be accomplished in not only automating ADT, but customizing its database in order to provide for user definable parametric relationships within the project.
For those of us that think that implementing BIM methodology is not about which software tool we use but about how effectively this tool facilitates our need for extracting usable project information, much more can be accomplished if bending the rules becomes the modus operandi.



If you think that this example is of any use, feel free to download this sample file and test it on one of your projects.


Until next time….

Wednesday, May 10, 2006

Dual Line Tag 2006 Update

As I have mentioned in my last post, this Dual Line ADT tag can be used within ADT 2006 as well. The only difference is that ByRoom or BySpace options are available as Space assigned classifications.
So for all of you that are still using ADT2006 this sample file should be helpful.
Enjoy!

Saturday, April 08, 2006

Multi Line Schedule Tag in ADT 2007

Quite often while consulting on projects, my clients ask for the ability to enter text that appears on two lines as the part of an ADT tag, and at the same time shows as one line in their schedule tables.
My reaction for the most part was to refer them to a few posts on ADT discussion groups that give an excellent description for the approach where the user has to manually enter both lines as the part of the tag. What follows is a relatively straightforward string concatenation for the third property definition that will be referenced by the schedule table.
Needless to say, there is nothing wrong with this technique, but like any other problem, this one can be solved by an alternative approach.
Another issue that is relatively common, especially for architectural offices that are engaged in elaborate planning activities, is whether to use a manually declared room name from the RoomObjects PSD or to create a set of space styles and use the SpaceStyle name as a source for the tag value.
So, I decided to embark on creating a multipurpose Room Tag that, instead of concatenating strings, breaks them down into two rows and allows the user to decide how to split them for each instance.
Little bit of reverse engineering, a little bit of new List Definitions, (thank you o’ good people of Manchester), little bit of luck and some strong coffee and a drop of mélange and the new Tagging abomination has finally become One with the inner workings of ADT.

Here are the ingredients;
· One healthy ADT room tag project based
· Two new List Definitions (NameType and WordSplit)
· One new PSD named _ARBA_RoomObjects
· NAME_01, Formula Property Definition
· NAME_02, Formula Property Definition
· FormulaName, Formula Property Definition
· RoomName, Formula Property Definition

When thinking about the best approach to this problem, two parameters are essential for it to function properly. One that deals with the Style type and is used for storing a description for a given space, and a second one that will be in charge of determining after how many words a name string will be divided into two.
And, this brings us to the more enjoyable part connected to the ADT 2007 release.
The List Definition is the new and long awaited data container that allows one to group values into a list. That list than becomes available through the combo box on the properties palette.



For this exercise, I have created the two new lists; NameType and WordSplit. Values that pertain to NameType are ByRoom and ByStyle, and values that are predetermined for WordSplit are Integers from 1 to 9.





Here is the next step, 20 minutes to go, and in no time we will place those previously mentioned ingredients into the hot VBS wok.

From the DOCUMENT-> Scheduling -> Property Set Definitions (AecPropertySetDefine), launch the PSD dialog box and if there is an existing RoomObjects property set, highlight it and copy and paste it under a new name. In this case I have created the new property set under name _ARBA_RoomObjects, that applies to Space Objects. Feel free to name it any way you like as long as you refer to this property within the newly created AEC object tag. If you look back at the ingredients list, you will notice all of Property Definition based ones, are contained within this _ARBA_RoomObjects Definition Set.


I really had no idea or programming knowledge to know how to embed the mtext object and have it preserve its multiline quality when being converted into an attribute, so to cook this up we had to use locally grown ingredients;
The formula property definition that has been somewhat optimized to the best of my ability to parse an input string and look for spaces between words. As long as there are spaces between words and the Count variable is less than the value that is passed from WordSplit, the room name is truncated and concatenated one word at the time. Finally, RESULT determines the current value for this formula based property definition. Feel free to take this code and season it to your taste.

The RESULT generated in FormulaName property is processed by the Name_01 property that compares this RESULT to the actual Room or Space style name. Based on this comparison the first line in the room tag will be populated or left empty.


Finally to make this story short, the Name_02 property will subtract, actually replace the original content of Name_01 within the RoomName by an empty string.


Do not forget that the RoomName property definition is determined by selecting one of the two values in the NameType list, ByRoom or ByStyle .

The Case Select statement will, based the on chosen value, generate the current name for processing within FormulaName definition.
The very last piece of this recipe is creating the room tag with two line entries for the truncated room or space name. So go ahead and create a block with the following attribute content, or you can use the AEC tag wizard with two separate text lines for a new tag definition.


What I did was to modify and existing AEC OOTB Room Tag by changing the pre colon part of the attribute and matching it to the new Property Set Definition named _ARBA_RoomObjects.
After all the cooking is done, lay back, invite your family and friends, and serve this dish slightly chilled in a space or a room of your choice.
To illustrate the effectiveness of this spiced up tag, here are some examples and the sample file that is available for download from the following location.

Sample File