[fdo-users] AutoCAD Map3D and Oracle FDO Issues

Mike Toews mwtoews at sfu.ca
Fri Jun 12 14:20:47 EDT 2009


This issue requires a database-end workaround, which varies depending on 
DB software.

That said, who is at fault? Is it an issue with AutoCAD Map3D or FDO? If 
it is an AutoCAD issue, should FDO be responsible for inserting/updating 
the same geometry type as the feature source? Is AutoCAD intentionally 
mixing single and mixed geometries, and is this allowed among some or 
all providers? I never bothered submitting at ticket on this issue since 
I wasn't sure what exactly the issue was and who to blame.

-Mike

Martin Morrison wrote:
> It's not an AutoCAD/FDO function, it's an Oracle database function.  Read up on the triggers in the Oracle docs.
>
> Martin
>
> -----Original Message-----
> From: fdo-users-bounces at lists.osgeo.org [mailto:fdo-users-bounces at lists.osgeo.org] On Behalf Of Tony
> Sent: Friday, June 12, 2009 1:59 AM
> To: fdo-users at lists.osgeo.org
> Subject: Re: [fdo-users] AutoCAD Map3D and Oracle FDO Issues
>
>
> Mike 
> thanks in millions for answer. could you tell me how to implement the
> trigger from autocad insert. 
> i am new to autocad . 
>
> thanks
> tony
>
>
> Mike Toews wrote:
>   
>> Tony,
>>
>> I think I had a similar problem, although I'm using Map3D 2008/2010 with 
>> a PostgreSQL/PostGIS database. The issue was Map3D was creating and 
>> sending a [single] POLYGON object to a MULTIPOLYGON column, which it 
>> shouldn't, since the column has check constraints to ensure they are all 
>> MULTIPOLYGON geometries. I fixed it by writing a simple BEFORE INSERT OR 
>> UPDATE trigger to check and correct if the polygon is a multi object.
>>
>> I'm no pro with Oracle spatial, but the guts of my PL/pgSQL (with 
>> PostGIS) trigger function look somthing like this:
>>
>>   IF ST_GeometryType(NEW.geometry) IN('POLYGON','LINESTRING') THEN
>>     NEW.geometry := ST_Multi(NEW.geometry);
>>   END IF;
>>
>> I think most of this is portable to your situation, except that 
>> ST_GeometryType() returns different values. I'm not sure if there is a 
>> generic ST_Multi() function, but there are similar casts that you can use.
>>
>> Hope this helps,
>>
>> -Mike
>>
>> Tony wrote:
>>     
>>> i am using fdo (autodesk) as well as used king fdo for getting the CAD
>>> data
>>> write to oracle.   
>>> here is the whole story : i have a polygon shape file i have used FDO2FDO
>>> to
>>> create  oracle table , I want to edit some of geometries in AutoCADmap 3D
>>> as
>>> well as i want to add new polygons there. 
>>>
>>> the issue:  i have createa a closed polygon in autocadmap that have Arc
>>> and
>>> line and i was trying to write this to the above created table.  i am
>>> getting error saying  that geometry type does not match, 
>>> after reading the logs i found out that though my Oracle table has
>>> mpolygon
>>> geometry type i can not write  and polygon with Arc(true arc) in it. 
>>>
>>> any idea how to solve this issue. i have wote to autodesk and still
>>> wating
>>> to get the answer. i wrote to  king fdo no reply yet ... 
>>>
>>> please let me know how to solve this 
>>>
>>>
>>>   
>>>       
>> _______________________________________________
>> fdo-users mailing list
>> fdo-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/fdo-users
>>
>>
>>     
>
>   



More information about the fdo-users mailing list