Jump to content

Hello Community!

This Saturday, April 11, from 9am – 1pm EDT we will be performing maintenance on the Vectorworks Community Board. During this time, the site will be unavailable.

Samuel Derenboim

Member
  • Content Count

    247
  • Joined

  • Last visited

Community Reputation

26 Great

About Samuel Derenboim

  • Rank
    Journeyman

Personal Information

  • Occupation
    Architect
  • Location
    United States

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi Everyone, Just curious, wanted to get a consensus on the forum, are there many here that use Vectorworks parametric capabilities to do zoning analysis and building code analysis as a tabulated resource? or do people generally do them by hand? The reason I'm asking this question is because the tools vectorworks provides, seem to me, are unlike any other in terms of the tools provided for custom parametric integration (i.e. custom records/fields via simple geometry or the like). I have been using these features for zoning, building code and energy code independently for the past 3 years, and i have found alot of benefits as well as a few difficulties in using systemic parametric integration for code or zoning analysis. For example, one of the difficulties i've faced is the way New York jurisdictions requires us to calculate zoning areas vs building code areas. Zoning areas, they ask us to provide area diagrams that are simple in geometry (i.e. squares, rectangles, trapezoids, etc..). If you have a few tenants, or many, rather than calculating each area and each space independently, one can use large geometric areas to describe a floor plate. I have used this for general zoning calculation. When analyzing for building code, however, it would be recommended to show every tenant space for analysis purposes. The building code isn't as closely monitored as zoning in terms of areas is in NYC, but they should be equal in area to avoid notice in deviations. Because larger buildings, especially with tenant build-outs can be asked by the client, having to separate building code analysis and zoning could prove to be tricky due to the different methods of analyzing the information simultaneously. That is the reason why I have separated them into separate area categories. Getting the floor plates to equal can sometimes be a pain because there can sometimes be elements that do not match, and troubleshooting the problems can be tedious. So I thought id bring up the question to the trusty vectorworks community, see if anyone else have found interesting techniques to perhaps marry the two components? Out of curiosity, has anyone tinkered with analyzing code and / or zoning using Vectorworks? what are you experiences like?
  2. Totally agree with this. It is impossible to separate master BIM file with worksheet file referencing it for elevations, sections, etc.... even in plans it would be useful to callout doors, objects, windows, walls, etc...
  3. Hi everyone, I noticed that the getlocation within a space name or space number works perfectly for any record that needs to be called out thats within a space. VW did a great first to show the space location for symbols located in a space....However, locating objects in space is half the battle until you need to calculate allowable wattage per room, or allowable illuminance, circuitry, or any information within a particular space entity. I noticed tags like =Getifcproperty() or =GetCOBieProperty(), but i don't know how to define them to call out areas. If it doesn't exist, would it be possible to include it in future generations of VW? Also, is it possible to do the same with basic geometry? i.e. getobjname, getobjproperty, etc.... ? Below is an example worksheet where i would need to show the location and area of the location. The location column uses=GETSPACENAMEFOROBJ, the next column would ideally show area - then i can say whether or not that space is in compliance for wattage allowance based on the energy code.
  4. First Attempt. Procedure FillCountsRecord; Var H1 :Handle; H2 :Handle; LocName :String; LocName2 :String; RecName :String; RecName2 :String; FieldName :String; FieldName2 :String; CriteriaString :String; CriteriaString2 :String; S1 :String; S2 :String; TheCount :LongInt; Procedure Execute(H3:Handle); {This is the procedure called by the ForEachObject command} Begin SetRField(H2,RecName,FieldName)); SetRField(H1,RecName2,FieldName)); {Store the count in the record} End; Begin H1:=FSActLayer; LocName:=GetName(H1); If ((H1<>Nil) & (H2<>Nil) & (LocName<>'') & (LocName2<>'')) then Begin RecName:='!Ltlegend'; {Enter the Record Name you want to store} SetRecord(H1, RecName); FieldName:='Zone'; RecName2:='!Lights'; {Enter the Record2 Name you want write to} SetRecord(H2, RecName); FieldName:='LZone'; CriteriaString1:='(((R IN ['!LtLegend']) & (ALL)))'; {Us the Criteria builder to generate the criteria string you want and store here} CriteriaString2:='(((R IN ['!Lights']) & (T=SYMBOL)))'; {Do not include the LOC criteria as that is defined by the named object} {selected when the script is run} S1:=Concat('((LOC=', LocName, ') & ', CriteriaString, ')'); {Do not change this line, only change Criteria String} ForEachObject(Execute,S1); S2:=Concat('((LOC=', LocName, ') & ', CriteriaString, ')'); ForEachObject(Execute,S2); End Else AlrtDialog('Something went wrong. Either no object was selected or the LOC object was not named in the OIP.'); SetDSelect(H1); {Forces Refresh of OIP} SetSelect(H1); SetDSelect(H2); {Forces Refresh of OIP} SetSelect(H2); {Resets to original selection state} End; Run(FillCountsRecord);
  5. Wow, this is beautiful. Works like a charm. In order for this script to have integrated information, it would be easier to simply copy the zone information in an attached record from the boundary onto all symbols in that zone rather than counting the objects. That way, i know if the zone matches between the objects and the zone itself, they could be aligned in the worksheet easily and specify any required specific information about that zone (like wattage, lumens, etc..) there was a script you wrote once regarding counting the number of people in a space object by using the space object area and dividing it by a separate record. maybe that can give me a hint as to how to take information from one record and copy it to all the objects (or symbols) with the LOC of the boundary.
  6. I think i understand. Sounds like LOC function would be easier to use using a marionette of scripting function rather than a worksheet callout. Seems like keeping track of the names of the boundaries can prove to be a hurdle. I'm trying to use that script you made to study it a bit, but i get this error : Would the right parenthesis go somewhere in here? S1:=Concat('((LOC=', LocName, ') & ', CriteriaString, '))');
  7. Pat, that's exactly it. it is a duplicate object, that wasn't renamed, but the object name was not there. VW picked up that it was the same name and it didn't rename it, it left it blank instead. It however, was in the same exact location as another LOC object, hence why it picks up the information. but i'm guessing this might lead to some problems down the road? Should i submit a bug report? Note - i duplicated the layer, and it didn't copy the name. If i copy and paste the object, then it auto renames
  8. I think i accidentally found a bug. i just noticed in the file attached above - the geometry was duplicated from one floor to the next. However, the name of the boundary was not modified, yet it still calculates the correct number of objects on the 2nd story when moving the fixtures from one boundary to another correct me if I'm wrong? the downside to doing everything by LOC function , turns out that every boundary object has to be unique in the entire building, and then create a nested conditional script that computes all of them, unless of course, yes, certain operations would be done by class or operation. The kicker is this, i often use id's that can be identical to different spaces that use the same id tag so long as it is subdivided by the =story condition. so ID=1 between one and another story will be printed separately if I invoke the =story command that separates their conditions. Here, you cannot do this. but it accidently worked when a boundary object is duplicated. don't know why. ☹️ Update: Followup question - is it possible to simply list all the LOC zones and their names?
  9. I wrote the nested script in a matter of minutes once i figured out that i have to create a reference name for the zone name in the conditional statement... I'm thinking of just using an excel script to create a script for me that includes the maximum amount of zones the building house in one story. Turns out, it works on multiple stories !! I'm thinking about how i can do this in a simple manner and... will this crash VW? attached file below. Also, do you know if referencing the object name (=N) with a record using the datamanager would eliminate all these complications? count by zone nested-working.vwx
  10. Update : Here is a nested working version. Question, why can't i call out the object name? by =N, but rather have to create a conditional statement if N=zone 1, then print zone 1, rather than printing it altogether? PS - notepad ++ really helps out with these conditionals count by zone nested-working.vwx
  11. yes, creating several database tables is possible for each zone. I thought it would be easier putting this in the criteria of the database, however, it isolates zones from the light fixtures in the space. So yes, the only other choice is to create a separate database for every zone, and thats only for one story. if i wanted to include a worksheet with all stories, and they had a different number of zones, thats when the worksheet will get a bit cumbersome to read as some stories that have less zones would return a blank record (unless database tables would be specified for every zone, and every floor). right now im working on a 5 story, 80 thousand square foot building, approximately 6-7 tenant spaces per story, and probably upwards of 5-6 lighting zones per tenant. it would be easier to match the name record between light fixtures and zones than to do it this way. or not use LOC altogether unfortunately. file attached is my second attempt. I tried to list all zones in one database row, and reference them for the zones and light fixtures in another. It separates the rows and the zones in the database row in the 1st one. count by zone test2.vwx
  12. I can see what you mean. With lighting you can have 10-20 zones easy (if i were to use the criteria energy code for example) per story, which is why i wanted to use a nested value rather than sorting it by different columns. Same goes for other criteria i wanted to list for 'building code' objects that would be located in separate tenant spaces. Those criteria can also exceed 20 objects per LOC.... the way i wanted to get around it was to create a zone that didn't have anything in it and say LOC<>'Zone 3' to include all objects in all other zones, but alas it still reports an incorrect number. I'm guessing the script is the only other way to go? or to create a separate database table for each zone....which is also cumbersome
  13. regarding LOC='' in worksheets - the function only allows me to select one zone by name in the criteria selection, not all of them. Is there a criteria that can include all objects that have a record, and then print out all objects within them? i've tried multiple variable condition (if) statements without success. i've included a sample file with lighting zones with object names as Zone 1, 2, & 3, but the count reports the incorrect number of fixtures in each after moving them around. count by zone test1.vwx
  14. Wow, Pat, thank you so much ! I'm going to study this, will try to get as much out of it as I can. I have some pretty ambitious goals because of the LOC functions existence. PS - I'm loving the notes you have up there 🙂

 

7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114

 

© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

×
×
  • Create New...