-
Posts
11881 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Everything posted by Joe_Carrick
-
Yep, Labels are "Owned" by their object. the Rafter is the "Owner" and that's the object that has the length. You could use a context of None but then you would need to specify owner.length instead of just length.
-
Wherever a dialog is when you close it will normally be where it is when you open it the next time. There might be something in Preferences that would change that but I don't think so.
-
Justin, I'm totally in agreement with you on the use of macros. There is so much power available by using them - it just takes some time to get it set up. You could further simplify your macro to: (length/24).ceil*2 You don't need anything more than that.
-
Does anyone have a "Fixed Font" similar to Arial? I really don't like Courier New (looks like typewriter output) but I don't know of any other font that I can use to insure nice neat columns of text and numbers.
-
Your CAD Blocks were created at "Real World Size" so if you want them to appear at a scale of 1/2"=1'-0" you would need to reduce the size to 1/24. An easier way to deal with this is to place your details in CAD Detail Windows in a Plan File and then just send to Layout at 1/2"=1'-0" Scale. I never use the Library for Details.
-
Even that's not really correct since the finish_floor_elevation is likely not 0.00 even on the 1st floor. If you really want the finished ceiling height you need to used both attributes. There really is no reason to take a short cut - the macro if written correctly will work for all floors.
-
Thanks Alan. I don't do much remodel work but using multiple Plan Files is also my preferred method.
-
For those of you who do a lot of remodel work. Have you considered using 2 or even 3 Plan Files to show: 1. Existing and Demolition 2. New or 1. Existing 2. Demolition 3. New IOW, having 2-3 Plan Files with one Layout File? It would seem this could really simplify the ConDocs by avoiding having to show New and Demo at the same time. It would also make it easier to determine the existing areas vs the finished areas.
-
What Project Area Data Do You Need For Permit Submittals?
Joe_Carrick replied to Joe_Carrick's topic in General Q & A
Thanks Joey and Alan. That will help me put together a demo that will cover your type of work. BTW Alan, the "Building Coverage %" in your example doesn't appear to be correct. That's one thing that I want to prevent. -
I'm trying to put together as comprehensive a set of Building and Site Data as I can. What do you show on your Permit Submittals? Site Area ? Buildable Area ? Livable Area per Floor ? Total Livable Area ? Site Coverage ? 1st Floor Area 1st Floor % of Site Area? Floor Area Ration (Total Livable Area vs Site Area)? Paved Area ? ....anything else ? Pics of the Plan Data section of your ConDocs would be a real help.
-
There are additional settings for RO and Trimmers.
-
Make sure you review the Ruby tutorial and experiment with it to see what is available. It would also be a good idea to go back to the 1st post in this thread and read carefully what it says about "Context". Labels are "Owned" by their object - so in the case of a macro used in a Label (room. door, cabinet, window, wall, etc) the context must be "Owner". Labels are the only thing that I know of at this time that uses the "Owner" context. Text Blocks that connect to Polylines or other CAD objects via an arrow require a "Referenced" context. Macros that do not rely on any Chief Object to retrieve data - such as general notes, etc. do not need to be any context other than "None". The Text in these macros can be typed and/or the values contained in "Ruby Global Variables".
-
No! No! No! That is an absolute elevation measured from 0.00 (aka Level 1 floor). So using that attribute will only work on the 1st floor. On any other floor it will not give you the ceiling height. Chief has the information and it can be used to advantage only if you use it correctly. You must use (finish_ceiling elevation - finish_floor_elevation) to get the finish ceiling height.
-
Ray, 1. The context must be set as "Owner". 2. You must add the macro in the "Default Room Label". That's the only place it will work. 3. Probably not what you wanted to hear.
-
What do you mean by wall artifacts? We can't read your mind.
-
That would be the best way to do it. You could copy all the columns, etc to the second floor by Copy/Paste Hold Position or just adjust the ceiling height in the warehouse area so that the second floor in that area becomes a zero ceiling ht.
-
Place the Library Microwave in your Plan as a Free Standing Object (not in a cabinet). Now resize it as needed and add it to your User Library. It will now be the size you need to place in a cabinet.
- 2 replies
-
- built-in appliances
- kitchen
-
(and 1 more)
Tagged with:
-
My method is a little different than Gerry's (I allow the specification of the fractional denominator and I format the output differently when the value is less than a foot) but essentially the answer to your question is yes - but only by adding a macro to the Default Room Label. Using Gerry's basic code the macro would need to be: arr = (ceiling_elevation-floor_elevation).divmod(12) inch_frac = ((arr[1]-arr[1].floor)*16).round.quo(16) result = case inch_frac when Rational(1.0) "#{arr[0]}'-#{arr[1].ceil}\"" when Rational(0.0) "#{arr[0]}'-#{arr[1].floor}\"" else "#{arr[0].floor}'-#{arr[1].floor} #{inch_frac}\"" end result + "CLG" I modified Gerry's code mainly by using (ceiling_elevation-floor_elevation) so that it would give the right value. The basic problem with this is that it will just be added to the Room Label on the same line and at the same text size as the Room Name.
-
Thanks Gerry, My mistake adding the last line. I should have left that off. begin result = owner.area rescue result = referenced.area end "Area = " + result.round(0).to_s + " Sq.Ft." would be correct as would your syntax of: "Area = #{result.round(0)} Sq. Ft." It's easier for me to read the way I show it but both give the same output. IAE, the point of this was to indicate how to have a macro work with either context. Something you pointed out in another thread.
-
Avoiding Evaluation Errors Sometimes we need to check the output of a macro while in edit mode but the object selected is one that doesn't have a Label so our context will need to be "Referenced". However, if we have selected a "Close Polyline" then while we are in the Text Macro Management dialog the context will in fact be "Owner". In order to make our macro work without an error we need to use a "Block of Code" to handle the error smoothly. Here's an example: begin result = owner.area rescue result = referenced.area end result = "Area = " + result.round(0).to_s + " Sq.Ft." return result This code will work with either context.
-
Ruby Console Chief provides a Ruby Console which allows you to inspect what attributes are available for an object and also check the values of those attributes. There is a basic tutorial on using the Ruby Console which should be reviewed. You can do this by opening the Ruby Console and typing tutorial. Here are some basics: When you have an object selected in Chief and then in the Ruby Console type owner.names.sort you will see a list of all the attributes available for that object. Let's say that you have a room selected: Some of the attributes will be name, standard_area, internal_area, type_name You can then type owner.standard_area and Ruby will display that data. Note that Ruby is case sensitive. Ruby recognizes data as String, Integer, Floating Point, Logical, Array or Hash. Here are some basic methods that can be used to modify the data: .to_i converts string or floating point value to an integer .to_f converts string or integer value to a floating point .to_s converts an integer or floating point value to a string .round(n) rounds a floating point value to n places .gsub(str1,str2) substitutes str2 for str1 in a string To use a method you simply add the method after the data. For example if the room is 247.68342 sq.ft. owner.standard_area.round(0).to_s will return a string with no decimal places displayed. ie: 248 owner.standard_area.round(0).to_s + "Sq.Ft." will return 248 Sq.Ft. So far it's just the Ruby Console. Anything you do there is not going to effect anything displayed in your Plan - but it is a good place to experiment with the modifiers and any calculations that you want to impose to get a result. Text Macro Management - New To create a macro so we can access and display data requires that the macro knows it's "Context". There are 3 possibilities: None ........... The data is independent of any Chief Object (It's just text or numerical data typed in the macro). Owner ......... The attribute is from a Chief Object via it's Label (the macro has to b included in the Default Label Referenced . The attribute is from a Chief Object (usually CAD) that is connect to a Text Box by an Arrow. So, using the example above we can add to the Room Label by having an "Owner Context" macro named Room Standard Area which consists of "Standard Area = " + owner.standard_area.round(0).to_s + "Sq.Ft.". In the Default Room Label we would then add %Room Standard Area% and Standard Area = 248 Sq.Ft. would be added to the Room Label. Actually the number would be different for each room but the data would be displayed in all Room Labels. For objects like Closed Polylines we have to use a Text Box with an arrowhead connected to the Polyline. In that case our macro would be: "Area = " + referenced.area.round(0).to_s + "Sq.Ft." By using a Text Box, we can get a note with multiple lines and if it's a Rich Text Box we can get additional formatting. The return value of any macro is the last line of the macro. So if you want to use a macro to perform a calculation and store it in a global variable ($MyVariable) but display nothing you just add 2 single quote marks as the last line. This can be very handy for use in Default Labels, allowing a calculation to be made and the data store where we can use it later without changing the displayed Labels. There are a lot of additional things that can be done, but I hope the above provides a little better understanding.
-
Scott, My system doesn't require any arrows to disseminate different floor areas. I am not using Polylines with arrows pointing to them so there isn't any confusion. Using my system the areas are automatically summed and available to use for calculations and display of the data as needed. The only caveat is that you must use room types and unique names for each room that's to be included. I do this simply by giving each room a number. Rooms on the 1st Floor are the 100's, 2nd Floor the 200's, 3rd Floor the 300's, etc. For the "Basement" I use "001", "002", etc. Using just a single Ruby Macro my system: 1. Gets and stores the following attributes for each room: name, type_name, standard_area, internal_area, floor #, included_in_living_area (T/F) 2. It sums the areas of all: Balconies, Courts, Decks, Garages, Porches, Bedrooms & the Master Suite 3. It gets the Living Area of each Floor, Sums them and also stores the total area of each floor (including Garage Areas) which provides the "Lot Coverage" Using another Ruby Macro - this time with Arrows my system identifies and stores the following: Property Area SetBack (Buildable) Area Road Area Totals Driveway Area Totals Terrain Path Area Totals There are a series of "Display" macros that can be used to put together a Rich Text Box formatted as needed. If there are special sub-totals or totals needed for any specific set of rooms (there needs to be a unique common word in the room names) I can easily provide a macro to provide those sub-totals or totals as well. I have not found a single case where the data was inaccurate in any way and I do not get any "evaluation errors". All of the data is live and only requires that each Floor and the Site Plan be displayed for any changed to be reflected in the displayed results. Due to the complexity of doing the above I do not expect that CA will provide for it at any time in the foreseeable future. It has taken me a lot of time to put it together and I don't see CA putting this on a priority list.
-
Gerry, I would not presume that I could copyright a concept that anyone else demonstrated. However, having put together a specific way of obtaining and using the information in a Chief Plan and writing detailed macros and subroutines - I have every right to copyright that specific implementation. I have asked you from time to time about how to do something using Ruby. You have been most generous in assisting me in that manner and I truly appreciate that. You have provided code snippets and other information that has helped me a great deal. What I've alluded to is naturally general in its description but the implementation is very specific - and innovative. It is not the same - or even close - to anything that I've seen demonstrated and I believe is quite different from other solutions that have been described. I have in the past and will in the future continue to provide content to the users of these forums. Most of the time the effort required to do so takes very little time but sometimes it is a much larger project and when that's the case I believe I have the right to be compensated and to protect myself from anyone improperly giving my work product to anyone else. "chosen"? Please..... that's a cheap shot and you know it. I, along with several others, volunteered to assist and provide feedback on some things that CA is doing. None of us consider ourselves "special" for having been accepted for this job. It's an honor and IMO a duty to do what we can to make Chief better for everyone.
-
I would like to clear up a few things about these items. 1. Room Labels generally are limited to the macros the Chief provides but they can use Ruby "Owner" macros if the macro is included in the "Default Room Label" 2. It is possible to use a Ruby Macro within the Default Room Label to accumulate the areas of all the rooms in the Plan as well as the individual Floor Living Areas. It is also possible to accumulate the areas of Decks, Balconiess, Courts, Porches, Garages, Bedrooms, etc. 3. Rich Text Boxes can be used as Room Labels to customize the way they appear. The text in such a "Label" can be formatted, have additional text added and have a border and fill as desired. If the center of such a Text Box is within or in contact with the room perimeter it will execute the Chief Room Macros. Otherwise, an arrow can be added and when the arrowhead is within or in contact with the room perimeter it will also work. 4. I have been working on a comprehensive system of Ruby macros and Rich Text boxes using Ruby Global Variables to fill in Project Data including Site Area Analysis. This is almost completed and I am able to sum various room types based on both the type and/or the name of the rooms. One example is to total all the room areas within a Master Suite. There is very little that can not be done using my system. 5. X7 has improved the bond between a polyline and a Text Box Arrowhead so that Site Area Macros are much more reliable. By using the properties available for various Site objects it is not only possible but I have put together a macro that recognizes the object for what it is and stores it's area for use in Site Analysis. 6. The output of a Ruby Macro can be formatted into rows and columns and can be word-wrapped as desired. 7. Ruby can read and write to external text files so Project Data that Chief doesn't currently provide for such as consultants, etc can be automatically placed where needed in a set of ConDocs. Some of the above is not trivial and I would not recommend anyone without programming experience attempt it on their own. I will be making my system available for a fee to those interested - copyrighted of course and only for single use. I can if needed make some customized macros for displaying the data in ways that might be slightly different than my own. IAE, Don't be discouraged by those who say it can't be done or that it's not worth the trouble. There are many ways to retrieve data and utilize it with Ruby macros and there is more available within Chief's attributes than is apparent at first glance. More would be nice of course - but we are not handcuffed.
-
Alan, What is the "Context" of your macro? It should be "Referenced" since you are using an arrow to connect to the object.