আরকব্যাপের চেয়ে আরকপাই ব্যবহার করে আরকম্যাপে ওপেন অ্যাট্রিবিউট টেবিলটি রিফ্রেশ করছে?


11

আমি আরকিপ্যাটে আরকিপি থেকে ক্যালকুলেট ফিল্ড জিপি সরঞ্জামটি চালাচ্ছি। যখন একটি সারি মান আপডেট করা হয়, ততক্ষণ পর্যন্ত আমি পুনরায় লোড ক্যাশে সরঞ্জাম (সারণী বিকল্পগুলি> পুনরায় লোড ক্যাশে) ব্যবহার করি না। আমি আরকোবজেক্টগুলি ব্যবহার না করে কীভাবে স্বয়ংক্রিয়ভাবে বিশিষ্ট টেবিলটি রিফ্রেশ করব?

@ ব্লাহ 238 অজগর ব্যবহারের পরামর্শ হিসাবে আমি সংজ্ঞা ক্যোয়ারীটি আপডেট করার চেষ্টা করেছি , কীভাবে আপনি একটি খোলা অ্যাট্রিবিউট টেবিলটিকে "ক্যাশে পুনরায় লোড করবেন" , তবে এটি কোনও লাভ করে না। ডেটা উত্সটি পুনরায় সেট করা কোনও বিকল্প নয় কারণ বৈশিষ্ট্য শ্রেণিটি সম্পাদনা সেশনে থাকতে পারে এবং উত্সের ডেটার সাথে সংযোগটি হারাতে চাই না।


আপনি আরকিজিআইএস 10.1 ব্যবহার করছেন? যদি তা হয় তবে আপনি গণনা ক্ষেত্রটি চালনার জন্য পাইথন অ্যাড-ইন বা পাইথন স্ক্রিপ্ট সরঞ্জামটি ব্যবহার করছেন?
পলিজিও

1
আসলে কি এটা কোন ব্যাপার? আমি পাইথন অ্যাড-ইন থেকে ক্যালকুলেট ফিল্ড জিপি সরঞ্জামটি কল করছি, তবে পাইথন উইন্ডো থেকে জিপি সরঞ্জাম চালানোর সময় একই জিনিসটি লক্ষ্য করা যায়।
অ্যালেক্স তেরেশেনকভ

1
আমি সর্বদা অনুমান করি যে আমি যদি কোনও সমস্যা চেষ্টা ও পুনরুত্পাদন করতে যাচ্ছি, তবে আমি সবচেয়ে সম্ভবত যে উপায়টি দেখতে পাচ্ছি তা হল যদি আমি ঠিক একইভাবে (বা যতই কাছে যেতে পারি) একই কনফিগারেশনের একই পদক্ষেপগুলি হয়েছে তবে আগে দেখেছি.
পলিজিও

উত্তর:


4

আপনি আর্কিবজেক্টসের অনুপস্থিতিতে আরকপাইয়ের সীমাবদ্ধতার দিকে লক্ষ্য করছেন বলে মনে হচ্ছে।

আর্কপাই.ম্যাপিংয়ের সীমাবদ্ধতাগুলি এখানে বিস্তৃতভাবে বর্ণনা করা হয়েছে :

আরকিপি.ম্যাপিং আরকোবজেক্টসের জন্য প্রতিস্থাপন নয় বরং বিভিন্ন পরিস্থিতিতে এটি সমর্থন করে এমন একটি বিকল্প। সূক্ষ্ম শস্য বিকাশ এবং অ্যাপ্লিকেশন কাস্টমাইজেশনের জন্য আরকোবজেক্টস এখনও প্রয়োজনীয়, অন্যদিকে আরকিপি.ম্যাপিংটি বিদ্যমান মানচিত্রের নথি এবং স্তর ফাইলগুলির বিষয়বস্তু স্বয়ংক্রিয় করার জন্য for

যদি @ blah238 এর আরকপাই থেকে আরকোবজেক্টগুলি ব্যবহারের অন্য পরামর্শটি আপনার জন্য বিকল্প না হয় তবে আপনি এই কার্যকারিতাটি আরকপাইয়ের সাথে প্রকাশ করার জন্য একটি আর্কজিআইএস আইডিয়া জমা দিতে পারেন সেরা । আপনি যদি এখানে যেমন একটি আর্কজিআইএস আইডিয়াতে একটি লিঙ্ক পোস্ট করেন তবে আমি এটির জন্য ভোট দিয়ে খুশি হব।


ধন্যবাদ পলিজিও, করুণা আমরা সম্পাদনার সেশনের বাইরে ক্ষেত্রের মান গণনা করার সময় অ্যাট্রিবিউট টেবিলটি রিফ্রেশ করার কোনও উপায় খুঁজে পাই না।
অ্যালেক্স তেরেশেনকভ

1
আপনি ইএসআরআই প্রযুক্তি সহায়তাতে বর্ধনের অনুরোধ জমা দিতে পারেন। আমি ম্যানুয়ালি বন্ধ না করে এবং খোলার ছাড়াই পরিবর্তনগুলি দেখানোর জন্য টেবিলটি রিফ্রেশ করার জন্য কেবল একটি বোতাম, মেনু বিকল্প বা এফ কী থাকার সক্ষমতাটির অনুরোধ করেছি। আমাকে বলা হয়েছিল যে টেবিলটি নিজেরাই আপডেট করা উচিত এবং বিষয়টি স্থানীয়ভাবে পুনরুত্পাদনযোগ্য না হওয়ার কারণে বন্ধ হয়ে গেছে। সাধারণত তারা সহায়ক। আমি বুঝতে পারি তারা সীমাবদ্ধতা সম্পর্কে অবগত নয়।
জনস

আমি উপরোক্ত উভয়টিই করার পরামর্শ দিচ্ছি তবে আর্কজিআইএস আইডিয়াস আপনাকে স্থানীয় সমর্থনগুলির তুলনায় জনপ্রিয়তা এবং বাস্তবায়নের অগ্রগতি আরও সহজে পর্যবেক্ষণ করতে দেয়।
পলিজিও

1
@ জনস, আপনি কি জানেন যে এটি পুনরায় রিফ্রেশ করার জন্য আপনাকে অ্যাট্রিবিউট টেবিলটি বন্ধ এবং খুলতে হবে না? এটি করার বর্তমান উপায় হ'ল টেবিল বিকল্প বোতামে ক্লিক করুন> ক্যাশে পুনরায় লোড করুন। আর একটি জিনিস যা কাজ করে তা হ'ল সম্পাদনা মোডে ক্যালকুলেট ফিল্ড অপারেশন চালানো, তারপরে অ্যাট্রিবিউট সারণীতে মানগুলি অবিলম্বে আপডেট করা হয়।
অ্যালেক্স তেরেশেনকভ

1
@ অ্যালেক্স, পরামর্শের জন্য ধন্যবাদ; এটি আমাকে আরও সমস্যাটি পরীক্ষা করতে ফিরে যেতে বাধ্য করেছে। আমি পুনরায় লোড ক্যাশে ব্যবহার করেছি তবে এটি ব্যর্থ হয়েছে / ব্যর্থ হয় যখন আমি বিন্যাসের সীমাটি পেতে অ্যাডিন ব্যবহার করে বিন্যাস ভিউতে সম্পাদনা মোডে বহুভুজ যুক্ত করেছি। যখন ডেটা ভিউতে এবং আমি একই অ্যাডিন ব্যবহার করি, তখন পুনরায় লোড ক্যাশে কাজ করে। সুতরাং এটি একরকম লেআউট ভিউ জড়িত।
জনস

3

আপনার নির্দিষ্ট কার্যপ্রবাহের জন্য এটি আপনার পক্ষে দরকারী বা নাও হতে পারে। আমি খুঁজে পেয়েছি যে আপনি যদি আপনার স্তরটিতে নির্বাচন পরিবর্তন করেন তবে বৈশিষ্ট্য সারণীটিও আপডেট হয়।

তাই আমি প্রায়শই ব্যবহার করি

arcpy.SelectLayerByAttribute_management("MY-LAYER","CLEAR_SELECTION")

অবশ্যই যদি আপনার কাছে এমন কিছু নির্বাচিত থাকে যা আপনি ট্র্যাক লুজ করতে চান না তবে এটি কোনও ভাল নয়। সেক্ষেত্রে আপনি স্তর নির্বাচন করতে পারেন যেখানে বর্তমানে নির্বাচিত বৈশিষ্ট্যগুলি থেকে ওআইডি ওআইডিদের তালিকায় রয়েছে (মূলত ইতিমধ্যে নির্বাচিত যা কিছুতে নির্বাচন পরিবর্তন করুন)। এটি ব্যবহারিকভাবে হতে দীর্ঘ হতে পারে, আমি এটি বাস্তব জীবনের দৃশ্যে কখনও চেষ্টা করি নি।


1

আপনি চেষ্টা করেছেন:

arcpy.RefreshCatalog(target) # Set the target to your layers data source

অথবা

arcpy.RefreshActiveView() # Refreshes the map

অথবা

arcpy.RefreshTOC() # I highly doubt this will do anything, but you never know

আমি মনে করি এর মধ্যে একটি কাজ করবে, তবে আমি জানি মাঝে মাঝে আরকম্যাপে আমাকে নিজেই বিশিষ্ট টেবিলটি বন্ধ করতে হবে তারপরে কিছু সম্পাদনাগুলি দেখতে এটি পুনরায় খুলতে হবে। আমি নিশ্চিত না যে টেবিলটি বন্ধ করা এবং খোলার কাজটি আরকিপির সাহায্যে করা যেতে পারে তবে এটি একটি বিকল্পও হবে।


থানস্ক, কোডি, দুর্ভাগ্যক্রমে, এই কিছুই কাজ করে না। অ্যাট্রিবিউট টেবিলটি ম্যানুয়ালি বন্ধ করা এবং খোলার কৌশলটি কার্যকর করে, তবে আমি এমন কিছু সন্ধান করছি যা প্রোগ্রামিকভাবে এটি করবে। পাইথনের সাথে বিশিষ্ট টেবিলটি খোলার এবং বন্ধ হওয়ার উপায় নেই।
অ্যালেক্স তেরেশেনকভ

এগুলির কোনওটিই বৈশিষ্ট্য সারণী রিফ্রেশ করার জন্য ডিজাইন করা হয়নি।
রাডার

1

এইটা কাজ করে:

    import arcpy

    definition_query = layer.definitionQuery
    # Change the Definition Query into something different
    if definition_query == '':
        oid = arcpy.ListFields(dataset = layer, field_type = 'OID')[0]
        layer.definitionQuery = '{} > 0'.format(oid.name)
    else:
        layer.definitionQuery = ''
    arcpy.RefreshActiveView()

    # Restore the Definition Query
    layer.definitionQuery = definition_query
    arcpy.RefreshActiveView()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.