Jump to content

linking polygon area to worksheet


Recommended Posts

Probably there is an easy way to do this, but I haven't figured it out.

Is there a way to link the area of a polygon (as it appears in Obj info) to a cell in a worksheet?

What I need to do is a chart showing the areas of the subdivisions in a urbanization plan.

Thanks

Link to comment

If you have Architect, you should check out the Space tools in the OIP. They might work for what you are doing.

The only way to automatically get data from an object into a worksheet is to set up a database row. That means you need to have some kind of identifier you can use to set the criteria for the database.

Try either putting the polygons into a class and setting the criteria to the class, or naming the polygons and use a unique beginning that you can use as the criteria.

Once you get them into the database, the formula to get the area is =Area()

Type that into one of the cells in the database header row. You might also want to go into the small black triangle pulldown menu and format the cell to be an area dimension so it will display the units.

Pat

Link to comment
  • 2 weeks later...

Hello all...related question here, I've been trying to figure this out alone but it's like hitting your head to a concrete wall.

I have build my drawing so that on surface layer I have all the surfaces...everything assigned to a different class...the class names follow the pattern surface-asphalt, surface-concrete paving, surface-gravel etc.

I made a worksheet where I listed all the surface materials and then calculated the areas for each surface, for example (=AREA((C='surface-asphalt'))

So far working well...but then I thought that there must be a way that I can list automatically the surfaces I have used in the drawing. I mean I don't always use asphalt and now that I've listed it in the worksheet that means that I have to hide the rows when I don't need it.

Anywayyyy... I tried to list the objects automatically but I can't get it to work. I used a database header and used the criteria List all objects whose Layer is surfaces. It works so far that it understands that there are 6 objects on the layer...but it doesn't give the names of the classes...

What am I doing wrong? or do I have to name the objects too somehow? Since they are already in classes can I use the classnames somehow?

Link to comment

Here's a few simple formulas to enter in the database row of your worksheet :

=C > returns the class of the object(s)

=L > returns the layer of the object(s)

=T > returns the type of object(s)

=N > returns the name of the object(s)

Suppose your criterium now is "Layer" "is" "Surfaces".

Next, enter =C in the first cell of the database row, and =Area in the second.

Finally, select one of the subrows - notice the tiny SUM box in the top area of your worksheet : drag-and-drop it on the column header that has the =C formula, and your surfaces will be added by class.

Link to comment

Because I have assigned the classes so that it's easier for me to pick the right one through Object Info (using "subclasses" or whatever they are called..Surfaces-asphalt, Surfaces-gravel etc)

The problem I have now is that it lists the materials as those names (with "Surfaces" in the front) Is there a way to list only the subclasses so that it lists only "asphalt", "gravel" etc?

Or should I just get rid of the "surfaces" in the front...? (Which I find hard to do because I think it's much easier to toggle inside classes when you have subclasses)

The second problem that I noticed is that sometimes you need to write extra info to the material lists...now that I have this Database header it doesn't let me to select individual cells where I could type just text. Is there a way?

Link to comment

For the class name:You can do this with IF((C=Surfaces-asphalt);'Asphalt';'Gravel').

If your class name is Surfaces-asphalt, then you'll get the word Asphalt in your cell, if your class is not Surfaces-asphalt, you'll get Gravel.

Just look in the manual and search for the formula IF(criteria;TRUE;FALSE). You can replace the FALSE part with an other IF(criteria;TRUE;FALSE).

Short schematic example: IF(1;'one';IF(2;'two';IF(3;'three';'an other number')))

IF your criteria is 1, then you'll see one in your cell. If it isn't 1, 2 or 3, then you'll get an other number in your cell. If it's 2, you'll get two in your cell... and so on.

Link to comment
Because I have assigned the classes so that it's easier for me to pick the right one through Object Info (using "subclasses" or whatever they are called..Surfaces-asphalt, Surfaces-gravel etc)

The problem I have now is that it lists the materials as those names (with "Surfaces" in the front) Is there a way to list only the subclasses so that it lists only "asphalt", "gravel" etc?

Or should I just get rid of the "surfaces" in the front...? (Which I find hard to do because I think it's much easier to toggle inside classes when you have subclasses)

There is no way in the worksheet to manipulate the text to get just the subclass. The easiest way would be to use a shorter name for the primary class so it is less distracting. Another possibility would be to write a VectorScript that would get just the subclass and store it in a user defined record. See below for more on records.

The second problem that I noticed is that sometimes you need to write extra info to the material lists...now that I have this Database header it doesn't let me to select individual cells where I could type just text. Is there a way?

The database rows can only display "Record" data. This can be data generated directly by the object (fields in a PIO) or a user defined record attached to the object. There is no way to just add a "Note" field into a database section of the worksheet.

You could create your own record (I will call it MyNote here) and use that to store the information. Create a Record Format and add a couple of text fields (Note1, Note2). Attach the record to the objects you want to be able to put notes on in the worksheet.

The formula in the worksheet for the cells would be =MyNote.Note1 If you used spaces in your record name or field name, you would need to use quotes ='MyNote'.'Note 2'

Now the downside to this is that you have to manually attach the record to each object before a note you type into the worksheet will be remembered. And if someone deletes the record from the object, the note goes away. And if you Duplicate the object, the note will be duplicated as well.

Pat

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...