GerryT

Members
  • Posts

    422
  • Joined

  • Last visited

Posts posted by GerryT

  1. On 3/11/2020 at 12:21 PM, Dermot said:

    When you place the sink directly into the cabinet, we only store a minimal subset of the sink data.  For most people, this is the most efficient way of doing things and avoids extra plan bloat.  For an advanced user who is trying to get more control, placing the sink as a free standing sink will allow them to do the customization that they want.

     

    I think Mr. Dermont's response is a little misleading. And, at the very least, I believe we can agree to disagree.

    When a symbol is brought into a plan, only the GUID ( or some form of it) is stored in plan within the Ruby class within the Ruby namespace. The attributes are not stored in the Ruby Namespace but are just class function calls to the plan data. This keeps the data private and read only. Therefore, it does not matter whether the sink is in open plan or within a cabinet. The memory is the same. You can test this by setting the sink's owner to a global, than equating that to a custom attribute of the cabinet, which then gives you access to all of the sink's attributes in any cabinet schedule for that cabinet.

     

    The problem is that if you then delete the sink before deleting all of the macro references, the program will throw a uncaught memory error and you will lose all your work. You are essentially trying to address deleted memory. Chief has been aware of this for years and has been very clear that they will never fix this problem for whatever reason?

     

    My point is, i see no technical reason not to allow access to the child data of a parent ( they do this already with rooms) and I find Mr. Dermont's explanation to be a little insulting? But I do agree that Chief has the perfect right to structure its software as it sees fit.

    • Downvote 1
  2. It certainly is a part of Arial, etc.. which,if you do a web search of Arial code points, you'll see it listed. It does not show up in character maps because it is a non-printable control character. (Control set #1). Character maps usually only show printable characters.BTW: just because Ruby supports control set #2 doesn't mean Windows does.By definition control set #2 is optional depending on the software.

  3. Just checked --

    Text boxes use the font selected. If the macro uses a code point out side of the font set, it returns a blank as expected. Labels use the chief blueprint font which about the same as Arial.

    It would nice if we could get the definitive answer from Chief instead of guessing? There is noway, AFAIK, for macros to select a font set or size, they only pass through code points.or encoded text.

     

    Still hoping that the MM will let us select font size?

     

    EDIT:

    It appears that the MM only uses Arial but will pass through the correct code point. This will be a problem if one is copy/paste from another font ifrom another language -- Should be fixed. as what font  one is coding as it may look different then what is displayed.in MM

  4. IOW: upgrade to X12 and it should work OK.

     

    However, there is still a problem. Not all Fonts (Most Not) support all code points.It appears that If the font you are using does not support the UTF-8 code point that Chief will default to its Chief Blueprint font which is close to Arial in code point support. If not.it should, in that case return either a space or question marl, but instead, it does default to another font  which can be confusing..  At any rate, in X12, you can cut/paste or use the alt keys or use Ruby -- all should work fine except for the missing code point thing which might get you a font character appearance that you do not want.

     

    I talked to TS and he guessed that Chief Blueprint was defaulted to, but wasn't sure and said he could not tell me if he knew. Perhaps Dermot has the authority to tell us how X12 functions??

     

    Bottom line: its not going to work in X9 but should work OK in X12 -- Great improvement and worth the upgrade. It appears to work there uniformly across all fields and macros..Note: that if you are using a foreign language you are better off using that language keyboard, otherwise you will have to input upper level code points individually which is impractical.

  5. From reading your posts, I haven't the slightest idea of what your trying to accomplish.

     

    Trying to understand why you don't just put the file in your scripts directory and let Chief handle the path automatically for the MAC or PC.

     

    File.read ($LOAD_PATH[0] +"test_1.txt") Eliminates need for any path.

     

    Note that macs do not use letter drives

    • Upvote 1
  6. best option is to just create a framing schedule -- gives everything you want

     

    If you want to differentiate studs in a material list. you have to create a difference between stud objects and material skin is not recognized by the material list as a parameter.

    so you have to use the ruby objects. such as line type or some other unimportant parameter. Select all your new studs and change something into something. Add a object macro into the material list in one of the unused fields Referencing the changed parameter.. Right click and select "divide into multiple values"

     

    Michel can help with that.

     

  7. 3 hours ago, Renerabbitt said:

    to make a label that automatically numbers sequentially?

    Not in practicality ?

     

    This is only possible in X10 but if you close the plan and reopen the sequence will re-number in a different order.

     

    So -- more trouble than its worth.

  8. There is no attribute for wall height in Chief as of now. You can check the available attributes for any object by selecting the object and using the macro 'ObjectProperties'. ( or load a custom list macro - easier.

    Generally wall heights are determined by using the room attribute finished_floor_elevation and ceiling_elevation etc.

     

    There is no default method to load or save Globals with the plan in Chief -- as of now.

    There are several workarounds -- depending on your preference & effort. The easiest to just put your Globals in a Script to be automatically loaded on the start of Chief.

    However, if you change a Global than you have to manually change the script. You can also load and save a text file.

     

    You can also load and save Globals in a hash using Marshall - Which is beyond the scope of a few paragraphs here  -- several other options based on your level of desired effort.

    Happy to do a "goto meeting" with you to explain/explore options if you want to explore further & think it's worth while? Otherwise just put them in a macro to be executed within a object or the MM or the OIP of a object.

     

  9. 20 minutes ago, ACADuser said:

    OK I figure it out.

    Set Context to OWNER and do not use owner.area just use area.

     

     

    You can use either

    if you use owner.area, you do not need to set Context and can leave it at none. As always, the object must be selected or the macro must be in a label.( assuming reference is not used)

  10. You can't use 'puts' in a CA macro as it writes a string to the console and there is no console to write to. CA transfers the output of a macro to their display internally.

     

    Use 'p' instead. It returns 'inspects' instead of string.

     

    Also macros only return the last known value so using multiple 'p' or puts will not give a multiple line output.

     

     

    Your last string is the correct method of chaining strings for output  although Using expression substitution , #{} is a cleaner method.

    You might consider using a polyline with label (avoids using reference) as a more reliable method. to stop it's output to the label -- just end with a nil

  11. This topic is sooo common that i assumed you did a search beforehand. Both Joe and mike  sell macros to do this and have been doing so for years.

     

    This is extremely simply to do and if your interested in doing it yourself and want to invest in some "gotomeeting" time -- just PM me -- most would rather go the easier route.

  12. 45 minutes ago, tdroes82 said:

    ....... But is there a way to accomplish this in 1 text box, reading each area respectively. What about adding 2 porches into 1 total porch area?.......

    Absolutely -- not more than 10 minutes work!! Just call Joe or Mike.

  13. Quote

     

    It's not a big secret that GRAPHISOFT is already working on an official Python API. - Tibor Lorantfy - Graphisoft

     

     

     

    Revit, Rhino, Vectorworks and Allplan all have Python support. Form-Zis working on Python. Sketchup does ruby.

     

    Although i do think that Python may integrate better, I still think Ruby is a easier language to learn for the novice. And ruby 3 will have some advanced features.

     

    Wonder where Chief is and what is their position is now? -- With a few improvements and a keyboard interface using Chief's hotkeys, I think Chief's Ruby API could quickly rival the above in versatility? Are Chiefer's going to be left behind? What do you think? Open up Data Access in CA.

  14. Just looked at your response and have to say that I did not realize that you could have a condition with or without a > sign (optional??)on the end?

     

    in that case, the proper code would be:

     

    x = owner.supplier.gsub(/(>[0-9]*>?)|\n/,'') --(note the ? mark) -- only if the optional > is always on the end. If the optional > might also be in the front - a different macro is needed if that number is not to be removed?

     

    Your solution looks OK though, you can get too cute in putting everything in one statement. Many times it's easier to understand with multiple statements in lieu of one.

     

    • Upvote 1
  15. 1 hour ago, Joe_Carrick said:

    Gerry,

     

    Here's the Help file section that applies to that message:

     


     

    Thanks for the effort -- Unfortunately it does not apply, in particular, to the message- only the same topic. As to the Material list macros - found them to be completely worthless for a mired of reasons. Still can't understand how it  ever got through beta?

    Thanks Again

     

  16. Any idea what its usage may be for?

     

    Strange message because you can not  insert  parenthesizes now in a macro title?

     

    Is this something to come in X11? I'm thinking not since they now create/copy macros to singleton methods under the new Macros class. A () on the end would imply parameters.

     

    Maybe their just eliminating any confusion? So much for he ability to pass parameters between macros?