Jump to content

Samuel Derenboim

Member
  • Posts

    471
  • Joined

  • Last visited

Posts posted by Samuel Derenboim

  1. Hi again. 

    I've been curious as to how the Mtextur plugin works (in the import menu). Currently it is not working for VW2024, however, im sure it will be fixed. 

    In the meantime, While the Mtextur plugin only works with textures, is it possible to do the same with any other VW objects from a remote website? namely materials, symbols, and other objects?

    I've recently discovered the ShowwebDLg script command....and am very interested in taking advantage of it. However, whenever I access a website, I cannot download any files into VW (naturally).

     

    What would need to be done in order to do so?

     

    Note: i've noticed mtextur uses zipped files with text files for potential database fields. Can this be implimented so that a texture can be imported as a material with fields extracted from the text file? that would certainly be awesome

  2. Hi VW Team and Community, 

    Thought I'd share an idea (or wish i've had for quite some time) 

    Below are a few screenshots of what that dream might be. Simple, but probably complicated too.

     

    The idea is to integrate plugin object properties into the resource manager. Editing properties for all Plugin objects would be so much easier and faster!!!

    Anyways, just a thought. Upvote if you agree i'm not the only one who thinks this way ;)

     

     

    image.thumb.png.e0a07797c613593ec292f4f13bb0e313.png

     

    image.thumb.png.78b53ebf534e8e9fe88d81fe99e414c1.png

     

    image.thumb.png.f33fb9826e3f828199b711f3f928ef28.png

    • Like 2
  3. I know its a bit of an odd request, but I was curious, is it possible to count the same number of materials in a wall type using a tag?

    Lets say I have a wall type - 2 layers of gyp bd, framing and 2 layers of sheathing

    So far I have used the conditional statement : #MATPROPERTYBYNAME(COMPONENTMATERIAL(1), 'Materialkeynote')# line by line to describe each material. 

    Is there a way to count the material in order to use 1 line to say 2 layers of gypsum board or etc...? 

     

  4. You need to create a custom record. This isnt a wall or plugin object, its simply geometry. Once you make the custom record and fields, use the record format element in that drop down to call out the fields you need. It will be empty at first, so in the data info box you can enter it, or via the tag

    • Like 2
  5. On 9/12/2023 at 7:11 PM, E|FA said:

    I just did this for the exact same purpose a few weeks ago.  I found the quickest - though probably not best - way for me to get it done was to use the Extract Tool's extract surface mode on each of my exterior walls, which generates a closed polyline of the exterior surface area.  Once I had all the exterior wall surface poly lines, I selected all and got the total area from the OIP.

     

    I'm sure there's a much better way to do this, but if you're on a permit intake deadline and need to get it done, it will work.

    I did the same exact thing 2 years ago on a very complex project to calculate UA values for energy code requirements. Seems its the easiest method, and you can disconnect it from the master Bim file as well to create a separate set dedicated to a particular subfield

    • Like 1
  6. 1 hour ago, Ramon PG said:

     

    Not sure I get it. Would it show in plan view?

    The paint finish wouldn't have a thickness, it would be for elevation purposes, however, it could be tagged, so in plan view you can tag the geometry that has the appropriate paint color. In elevation, you can tag it as well, and depending on your viewport layers, it would render the paint with shaded options, or you can set a specific hatch if need be for the different types of paint. You would have to experiment with that. However, the tag information would be the most imporant as it would extract all the information necessary for your schedules, elevations and FF&E plans

    • Like 1
  7. In worksheets you can use =getspacenameforobj

     

    This will return all room names in the worksheets that your light fixture is located in.

     

    I used to do the same thing before i discovered these functions. Note - it will use your databade query to populate the space names.

     

    There are alot of functions in vw. If you want to learn more about more functions - go to the insert menu in the worksheet and click insert function...there will be a useful (looong) list of functions on how to use them

  8. So i have been browsing the VW function reference and noticed some interesting things

    https://developer.vectorworks.net/index.php/VS:AddSubMtrlToMtrl

    https://developer.vectorworks.net/index.php/VS:UpdateSubMtrlInMtrl

     

    there is a function to add, update and remove submaterials in a material. No functions (at least that i see) have the ability to get the name or the properties of the submaterials. What is, however, interesting is that these vectorscript functions have a handle called subMtrlName. I've used it as a function of objectdata, and have some interesting results.

    For reference I used this material in the library CMU 8x16 w/Mortar MT

    =OBJECTDATA(B3, subMtrlName, 1) - returns N/A for a compound object (based on material data sheet worksheet)

    =COMPONENTMATERIAL(B3, 1) = does not return anything - is blank

    =MATERIALPERCENT(T=MAT, 'Mortar MT') - returns 0 (Type=material i figured could have extracted something, but unfortuantely did not)

    =MATPROPERTYBYNAME(B3, submtrlName) - returned #PARMS? - which is interesting because submtrlName would become a handle that can actually be processed in the worksheets.

     

    @TomW Thought Id share in case you're experimenting

     

     

  9. 4 minutes ago, Tom W. said:

     

    I think we need @Nikolay Zhelyazkov's help on this...! There is a MaterialPercent() function but I have never used it before + testing it now can't get it to work on a Slab for example, only an Extrude... I think this is because it's not a component-specific function like all the ComponentMaterial ones.

     

    What I do is report on the quantities of the Simple Materials inside a component's Compound Material using MaterialSurfaceArea() MaterialVolume(). But this is the total quantity in the model (less anything in particular I need/want to exclude). I am less interested in the percentage because a reinforced concrete slab for example will be set up to return 100% of the surface area (for the mesh) + 100% of the volume (for the concrete) but I don't need to report these percentages, they perform an under the hood function.

     

    As regards returning this data from a component:

    I basically include this info in the Description field for a Compound Material: not the specific data you list because I don't want the Material name to appear or the percentage, but info about what the compound material is e.g. 'RC28/35 concrete with A393 steel reinforcement mesh in bottom (75mm cover)'. I know this isn't what you want though! You want to pull out data that is already there, not reenter it in a different field...

     

    @Tom W. You're right on the money. Essentially I am using the properties to create a parametric 'description' of materials, walls, slabs, etc... as well as volumetric, area and weight properties. For example - would it be possible to calculate the weight of a compound object? Theoretically you have the density of the compound objects and their respective thicknesses. When multiplied by the percentage of material the part makes up - i believe you can calculate the weight that way.

    Weight would be super terrific for load calculations for engineers. This in turn would help them design better and more effective structural systems that are more precise rather than the conservative values they may place per object. This can in turn save on steel.

     

    I know the differences would be negligible, but still, would be an effective decision making tool. (this is just one use case of extracting sub component materials)

     

    @Nikolay Zhelyazkov help please ! 😂

  10. @Tom W. & @Nikolay Zhelyazkov

     

    Here is a bit of a tougher question -- is it possible to call out the sub materials of a composite material in a tag - and / or their respective properties?

    i.e. If you have 2 materials in a composite material - Metal studs and Batt insulation - and you want them to be call out like :

     

    Composite material name

    Sub material 1 - Submaterial Tag / Description / percentage of composite material

    Sub material 2 - Submaterial Tag / Description / percentage of composite material

    etc...

     

    Again, thank you in advance!!

  11. @Nikolay Zhelyazkov Pardon the delay, Wanted to ask how to get the name of the material via #WS_MATPROPERTYBYNAME(COMPONENTMATERIAL(2), 'materialmark')#

     

    I've tried #WS_MATPROPERTYBYNAME(COMPONENTMATERIAL(2), 'material')#

    #WS_MATPROPERTYBYNAME(COMPONENTMATERIAL(2), 'materialname')#

    #WS_MATPROPERTYBYNAME(COMPONENTMATERIAL(2), 'name')#

    etc... cant seem to get it. 

    Could you please assist?

  12. HI everyone,

     

    I've come across multiple marionette scripts that use rest api to retrieve json information. The caveat - they use python, that require additional libraries to use the GET function.

    my question - can vectorscript do something similar without additional libraries? I am looking to use an API to extract records from a remote web based json api. As it appears, vw script can open a web browser using the showwebdlg function. I was looking to see if I can pull records from json using vectorscript.

     

    Thank you in advance!! 

     

    here is an example from 

     

    @Marionette.NodeDefinition
    class Params(metaclass = Marionette.OrderedClass):
    #APPEARANCE
        #Name
        this = Marionette.Node( 'Pass' )
        this.SetDescription( 'Do nothing node. It just passes the input to the output: y = x' )

        #Input Ports
        x = Marionette.PortIn( [], 'item' )
        x.SetDescription( "input" )

        #OIP Controls

        #Output Ports
        y = Marionette.PortOut('item')   
        y.SetDescription( "output" )

    #BEHAVIOR
        #this.SetListAbsorb()
        
    def RunNode(self):
        import requests
        
        #script
        api_url = "https://jsonplaceholder.typicode.com/todos/1"
        response = requests.get(api_url)
        vs.Message(str(response.json()))
        x = 0

        #outputs
        self.Params.y.value = x

     

  13.  @shorter , quick question, is uniclassformat linked to a specification system in europe? Much akin to masterformat in america? The reason I ask is because omnivlass table 22 (or 23 ) is basically the copy of the masterformat system translated into BIM. Fun fact, all tables included were also originally created by csi including masterfomat                  

  14. @heikolistische

    Thank you ! Was hoping you could explain how can they be used? is it possible to transfer properties from a custom record to a material record? i.e. if an object has a material attached and has a custom record attached that I wanted to link to each other, could I use the nodes to transfer the information from the record to the material property?

×
×
  • Create New...